On Mon Aug 31, 2026 at 4:40 PM CEST, Peter via lists.openembedded.org Tatrai wrote: > From: Peter Tatrai <[email protected]> > > When SDKMACHINE is set to i686 or i586, nativesdk binaries are compiled > as 32-bit. Without -D_TIME_BITS=64 and -D_FILE_OFFSET_BITS=64, stat() > and time-related syscalls use 32-bit types, causing EOVERFLOW on > filesystems with large inode numbers (e.g. container overlay filesystems) > and Y2038 issues. > > Add SDK_CC_ARCH appends for class-nativesdk:i686 and class-nativesdk:i586 > using GLIBC_64BIT_TIME_FLAGS, mirroring how target architectures are > handled. > > The existing GLIBC_64BIT_TIME_FLAGS:pn-glibc override only matches the > target recipe, not the class extended nativesdk-glibc, so an additional > pn-nativesdk-glibc override is needed here. This is required on > scarthgap but not on master/wrynose, because scarthgap carries glibc > 2.39, which predates glibc commit a4ed0471d717 ("Always define > __USE_TIME_BITS64 when 64 bit time_t is used"). In 2.39 the header > redirect turns sigtimedwait into an alias of __sigtimedwait64, which > then collides with glibc's own weak_alias() and fails to assemble: > > Error: symbol '__sigtimedwait64' is already defined > > Signed-off-by: Peter Tatrai <[email protected]> > Signed-off-by: Richard Purdie <[email protected]> > (cherry picked from commit d9f62a45555673842021d5746437e66c40d3f3cc) > Signed-off-by: Peter Tatrai <[email protected]> > --- > v2: Add GLIBC_64BIT_TIME_FLAGS:pn-nativesdk-glibc = "" to fix the > nativesdk-glibc build failure reported on the autobuilder > ("Error: symbol '__sigtimedwait64' is already defined") with > SDKMACHINE="i686". Verified with "bitbake nativesdk-glibc" for > SDKMACHINE="i686" on scarthgap. Master and wrynose do not need this > (glibc 2.43/2.44 are unaffected). > > meta/conf/distro/include/time64.inc | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/meta/conf/distro/include/time64.inc > b/meta/conf/distro/include/time64.inc > index dd29105db4..242d5bac8e 100644 > --- a/meta/conf/distro/include/time64.inc > +++ b/meta/conf/distro/include/time64.inc > @@ -32,6 +32,20 @@ GLIBC_64BIT_TIME_FLAGS:pn-pulseaudio = "" > # libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp > GLIBC_64BIT_TIME_FLAGS:pn-gcc-sanitizers = "" > > +# Apply the same flags to nativesdk packages when building for a 32-bit SDK > +# host (i686, i586). > +SDK_CC_ARCH:append:class-nativesdk:i686 = "${GLIBC_64BIT_TIME_FLAGS}" > +SDK_CC_ARCH:append:class-nativesdk:i586 = "${GLIBC_64BIT_TIME_FLAGS}" > + > +# Recipes which implement or wrap the libc APIs themselves must not be built > +# with these flags, as the redirections glibc performs would collide with the > +# symbols the recipes define (e.g. "symbol '__sigtimedwait64' is already > +# defined" in nativesdk-glibc, or duplicate creat64/fopen64 in > +# nativesdk-pseudo). The pn- overrides above only match the target recipes, > so > +# the class extended variants have to be listed separately. > +GLIBC_64BIT_TIME_FLAGS:pn-nativesdk-glibc = "" > +GLIBC_64BIT_TIME_FLAGS:pn-nativesdk-pseudo = "" > + > # Caused by the flags exceptions above > INSANE_SKIP:append:pn-gcc-sanitizers = " 32bit-time" > INSANE_SKIP:append:pn-glibc = " 32bit-time"
Hello, I think this patch still causes issues: meta-mingw ubuntu2204-vk-1 scarthgap completed at 2026-09-09 08:53:22+00:00 https://autobuilder.yoctoproject.org/valkyrie/?#/builders/7/builds/3481/steps/15/logs/stdio Can you look into it? Thanks! -- Yoann Congal Smile ECS
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#245455): https://lists.openembedded.org/g/openembedded-core/message/245455 Mute This Topic: https://lists.openembedded.org/mt/121014280/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
