FWIW: I was checking if this is still reproducible with 2.36 from khem's branch: https://github.com/YoeDistro/openembedded-core/commit/eec0967b92973b8ed5b2fe98ac652fe0da21493b
and with DEBUG_BUILD it failed elsewhere now: http://errors.yoctoproject.org/Errors/Details/663898/ | /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/12.1.0/ld.bfd: /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0/build-x86_64-oe-linux/elf/librtld.os: in function `_dl_load_cache_lookup': | /usr/src/debug/glibc/2.36-r0/git/elf/dl-cache.c:513: undefined reference to `strcpy' On Wed, Jul 27, 2022 at 1:57 PM Martin Jansa via lists.openembedded.org <[email protected]> wrote: > * work around for build failure with DEBUG_BUILD: > http://errors.yoctoproject.org/Errors/Details/661468/ > > > TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.35-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/11.3.0/ld.bfd: > > TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.35-r0/build-x86_64-oe-linux/libc.a(libc-tls.o): > in function `__libc_setup_tls': > /usr/src/debug/glibc/2.35-r0/git/csu/libc-tls.c:202: undefined reference > to `_startup_fatal_not_constant' > > introduced in: > > https://git.openembedded.org/openembedded-core/commit/?id=50ca0eea5424c89c9b39cf69d8bd73fd65f06e95 > with: > > https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=a2a6bce7d7e52c1c34369a7da62c501cc350bc31 > > Temporary reverting as discussed in: > https://lists.openembedded.org/g/openembedded-core/message/168463 > (it's also reverted in buildroot now with: > https://lore.kernel.org/buildroot/[email protected]/t/ > ) > > instead of revert we can use -fexpensive-optimizations which > will optimize-out the symbol, but that works only with -O1 and > not -Og used by DEBUG_BUILD > > upstream report: > https://sourceware.org/bugzilla/show_bug.cgi?id=29249 > > Signed-off-by: Martin Jansa <[email protected]> > --- > > v2: mention -fexpensive-optimizations and add link to upstream > bug report > > ...lement-a-useful-version-of-_startup_.patch | 128 ++++++++++++++++++ > meta/recipes-core/glibc/glibc_2.35.bb | 2 + > 2 files changed, 130 insertions(+) > create mode 100644 > meta/recipes-core/glibc/glibc/0001-Revert-Linux-Implement-a-useful-version-of-_startup_.patch > > diff --git > a/meta/recipes-core/glibc/glibc/0001-Revert-Linux-Implement-a-useful-version-of-_startup_.patch > b/meta/recipes-core/glibc/glibc/0001-Revert-Linux-Implement-a-useful-version-of-_startup_.patch > new file mode 100644 > index 0000000000..2421a63605 > --- /dev/null > +++ > b/meta/recipes-core/glibc/glibc/0001-Revert-Linux-Implement-a-useful-version-of-_startup_.patch > @@ -0,0 +1,128 @@ > +From 6b8959add09e425df262bf9178b39ca35bc4003c Mon Sep 17 00:00:00 2001 > +From: Martin Jansa <[email protected]> > +Date: Sun, 24 Jul 2022 19:41:41 +0200 > +Subject: [PATCH] Revert "Linux: Implement a useful version of > _startup_fatal" > + > +This reverts commit 2d05ba7f8ef979947e910a37ae8115a816eb4d08. > +Upstream-Status: Inappropriate [temporary work around] > + > +Signed-off-by: Martin Jansa <[email protected]> > + > +--- > + sysdeps/unix/sysv/linux/i386/startup.h | 23 ++++++++++++--- > + sysdeps/unix/sysv/linux/ia64/startup.h | 22 --------------- > + sysdeps/unix/sysv/linux/startup.h | 39 -------------------------- > + 3 files changed, 19 insertions(+), 65 deletions(-) > + delete mode 100644 sysdeps/unix/sysv/linux/ia64/startup.h > + delete mode 100644 sysdeps/unix/sysv/linux/startup.h > + > +diff --git a/sysdeps/unix/sysv/linux/i386/startup.h > b/sysdeps/unix/sysv/linux/i386/startup.h > +index 213805d7d2..67c9310f3a 100644 > +--- a/sysdeps/unix/sysv/linux/i386/startup.h > ++++ b/sysdeps/unix/sysv/linux/i386/startup.h > +@@ -1,5 +1,5 @@ > + /* Linux/i386 definitions of functions used by static libc main startup. > +- Copyright (C) 2022 Free Software Foundation, Inc. > ++ Copyright (C) 2017-2022 Free Software Foundation, Inc. > + This file is part of the GNU C Library. > + > + The GNU C Library is free software; you can redistribute it and/or > +@@ -16,7 +16,22 @@ > + License along with the GNU C Library; if not, see > + <https://www.gnu.org/licenses/>. */ > + > +-/* Can't use "call *%gs:SYSINFO_OFFSET" during startup. */ > +-#define I386_USE_SYSENTER 0 > ++#if BUILD_PIE_DEFAULT > ++/* Can't use "call *%gs:SYSINFO_OFFSET" during statup in static PIE. */ > ++# define I386_USE_SYSENTER 0 > + > +-#include_next <startup.h> > ++# include <sysdep.h> > ++# include <abort-instr.h> > ++ > ++__attribute__ ((__noreturn__)) > ++static inline void > ++_startup_fatal (const char *message __attribute__ ((unused))) > ++{ > ++ /* This is only called very early during startup in static PIE. > ++ FIXME: How can it be improved? */ > ++ ABORT_INSTRUCTION; > ++ __builtin_unreachable (); > ++} > ++#else > ++# include_next <startup.h> > ++#endif > +diff --git a/sysdeps/unix/sysv/linux/ia64/startup.h > b/sysdeps/unix/sysv/linux/ia64/startup.h > +deleted file mode 100644 > +index 77f29f15a2..0000000000 > +--- a/sysdeps/unix/sysv/linux/ia64/startup.h > ++++ /dev/null > +@@ -1,22 +0,0 @@ > +-/* Linux/ia64 definitions of functions used by static libc main startup. > +- Copyright (C) 2022 Free Software Foundation, Inc. > +- This file is part of the GNU C Library. > +- > +- The GNU C Library is free software; you can redistribute it and/or > +- modify it under the terms of the GNU Lesser General Public > +- License as published by the Free Software Foundation; either > +- version 2.1 of the License, or (at your option) any later version. > +- > +- The GNU C Library is distributed in the hope that it will be useful, > +- but WITHOUT ANY WARRANTY; without even the implied warranty of > +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > +- Lesser General Public License for more details. > +- > +- You should have received a copy of the GNU Lesser General Public > +- License along with the GNU C Library; if not, see > +- <https://www.gnu.org/licenses/>. */ > +- > +-/* This code is used before the TCB is set up. */ > +-#define IA64_USE_NEW_STUB 0 > +- > +-#include_next <startup.h> > +diff --git a/sysdeps/unix/sysv/linux/startup.h > b/sysdeps/unix/sysv/linux/startup.h > +deleted file mode 100644 > +index 39859b404a..0000000000 > +--- a/sysdeps/unix/sysv/linux/startup.h > ++++ /dev/null > +@@ -1,39 +0,0 @@ > +-/* Linux definitions of functions used by static libc main startup. > +- Copyright (C) 2017-2022 Free Software Foundation, Inc. > +- This file is part of the GNU C Library. > +- > +- The GNU C Library is free software; you can redistribute it and/or > +- modify it under the terms of the GNU Lesser General Public > +- License as published by the Free Software Foundation; either > +- version 2.1 of the License, or (at your option) any later version. > +- > +- The GNU C Library is distributed in the hope that it will be useful, > +- but WITHOUT ANY WARRANTY; without even the implied warranty of > +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > +- Lesser General Public License for more details. > +- > +- You should have received a copy of the GNU Lesser General Public > +- License along with the GNU C Library; if not, see > +- <https://www.gnu.org/licenses/>. */ > +- > +-#ifdef SHARED > +-# include_next <startup.h> > +-#else > +-# include <sysdep.h> > +- > +-/* Avoid a run-time invocation of strlen. */ > +-#define _startup_fatal(message) \ > +- do \ > +- { \ > +- size_t __message_length = __builtin_strlen (message); \ > +- if (! __builtin_constant_p (__message_length)) \ > +- { \ > +- extern void _startup_fatal_not_constant (void); \ > +- _startup_fatal_not_constant (); \ > +- } \ > +- INTERNAL_SYSCALL_CALL (write, STDERR_FILENO, (message), \ > +- __message_length); \ > +- INTERNAL_SYSCALL_CALL (exit_group, 127); \ > +- } \ > +- while (0) > +-#endif /* !SHARED */ > diff --git a/meta/recipes-core/glibc/glibc_2.35.bb > b/meta/recipes-core/glibc/glibc_2.35.bb > index 96fe39c548..df847e76bf 100644 > --- a/meta/recipes-core/glibc/glibc_2.35.bb > +++ b/meta/recipes-core/glibc/glibc_2.35.bb > @@ -48,6 +48,8 @@ SRC_URI = > "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ > > file://0022-sysdeps-gnu-configure.ac-Set-libc_cv_rootsbindir-onl.patch \ > > file://0023-timezone-Make-shell-interpreter-overridable-in-tzsel.patch \ > > file://0024-fix-create-thread-failed-in-unprivileged-process-BZ-.patch \ > + \ > + > file://0001-Revert-Linux-Implement-a-useful-version-of-_startup_.patch \ > " > S = "${WORKDIR}/git" > B = "${WORKDIR}/build-${TARGET_SYS}" > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#168746): https://lists.openembedded.org/g/openembedded-core/message/168746 Mute This Topic: https://lists.openembedded.org/mt/92744420/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
