From 9400e5bd58cc1e73c2cf4e35ac0829d792e969ad Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Wed, 28 Jun 2023 17:00:43 +0200 Subject: time64.inc: annotate and clean up recipe-specific Y2038 exceptions Additionally: - drop pseudo from INSANE_SKIP for 32bit time API check (pseudo passes the check; it's not clear where the issue may have been) - move rust exceptions to the cargo class, as the problem is common across the ecosystem, and needs to be fixed in the libc crate. (From OE-Core rev: d3d406bf636e579c17708b408e11c12d252533ee) Signed-off-by: Alexander Kanavin Signed-off-by: Richard Purdie --- meta/classes-recipe/cargo_common.bbclass | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'meta/classes-recipe/cargo_common.bbclass') diff --git a/meta/classes-recipe/cargo_common.bbclass b/meta/classes-recipe/cargo_common.bbclass index 1ca0be471c..db54826ddb 100644 --- a/meta/classes-recipe/cargo_common.bbclass +++ b/meta/classes-recipe/cargo_common.bbclass @@ -174,3 +174,15 @@ oe_cargo_fix_env () { EXTRA_OECARGO_PATHS ??= "" EXPORT_FUNCTIONS do_configure + +# The culprit for this setting is the libc crate, +# which as of Jun 2023 calls directly into 32 bit time functions in glibc, +# bypassing all of glibc provisions to choose the right Y2038-safe functions. As +# rust components statically link with that crate, pretty much everything +# is affected, and so there's no point trying to have recipe-specific +# INSANE_SKIP entries. +# +# Upstream ticket and PR: +# https://github.com/rust-lang/libc/issues/3223 +# https://github.com/rust-lang/libc/pull/3175 +INSANE_SKIP:append = " 32bit-time" -- cgit v1.2.3-54-g00ecf