On Sun, Aug 7, 2022 at 7:00 AM Martin Jansa <martin.ja...@gmail.com> wrote: > > 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. >
I think, we can also track them until they are baked a bit upstream and backport the final fixes after we have upgraded to 2.36. > Regards, > > On Mon, Aug 1, 2022 at 1:05 PM Martin Jansa via lists.openembedded.org > <Martin.Jansa=gmail....@lists.openembedded.org> 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 >> <Martin.Jansa=gmail....@lists.openembedded.org> 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/20220720213853.1a27184...@busybox.osuosl.org/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 <martin.ja...@gmail.com> >>> --- >>> >>> 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 <martin.ja...@gmail.com> >>> +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 <martin.ja...@gmail.com> >>> + >>> +--- >>> + 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 (#168995): https://lists.openembedded.org/g/openembedded-core/message/168995 Mute This Topic: https://lists.openembedded.org/mt/92871770/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-