This issue is still reproducible in latest 2.36, I've updated: https://sourceware.org/bugzilla/show_bug.cgi?id=29249 and for the new strcpy issue I've bisected where it was introduced and created new ticket upstream: https://sourceware.org/bugzilla/show_bug.cgi?id=29454 we can revert 2 more upstream commits as work around, but lets wait a bit for upstream, maybe there is some simple fix, but I wasn't able to figure it out today (and don't want to spent even more time on it). Reverts included in https://git.openembedded.org/openembedded-core-contrib/log/?h=jansa/master if someone want's to test it as well.
Regards, On Mon, Aug 1, 2022 at 1:05 PM Martin Jansa via lists.openembedded.org <[email protected]> wrote: > 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 (#168992): https://lists.openembedded.org/g/openembedded-core/message/168992 Mute This Topic: https://lists.openembedded.org/mt/92871770/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
