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]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to