mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
glibc: fix new upstream build issue with DEBUG_BUILD build
* refresh 0001-Revert-Linux-Implement-a-useful-version-of-_startup_.patch (just different commit SHA in master and 2.35 branch) * add proposed fixes for build failure with DEBUG_BUILD: http://errors.yoctoproject.org/Errors/Details/663898/ 86_64-oe-linux-gcc -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse --sysroot=TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fmacro-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0=/usr/src/debug/glibc/2.36-r0 -fdebug-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0=/usr/src/debug/glibc/2.36-r0 -fdebug-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0/recipe-sysroot-native= -Wl,-z,relro,-z,now -fuse-ld=bfd -nostdlib -nostartfiles -r -o TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0/build-x86_64-oe-linux/elf/librtld.os '-Wl,-(' TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0/build-x86_64-oe-linux/elf/dl-allobjs.os TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0/build-x86_64-oe-linux/elf/rtld-libc.a -lgcc '-Wl,-)' \ -Wl,-Map,TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0/build-x86_64-oe-linux/elf/librtld.os.map x86_64-oe-linux-gcc -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse --sysroot=TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fmacro-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0=/usr/src/debug/glibc/2.36-r0 -fdebug-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0=/usr/src/debug/glibc/2.36-r0 -fdebug-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0/recipe-sysroot-native= -Wl,-z,relro,-z,now -fuse-ld=bfd -nostdlib -nostartfiles -shared -o TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0/build-x86_64-oe-linux/elf/ld.so.new \ -Wl,-z,relro -Wl,-z,defs -Wl,-z,now \ -Wl,-z,pack-relative-relocs \ TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0/build-x86_64-oe-linux/elf/librtld.os -Wl,--version-script=TOPDIR/tmp-glibc/work/core2-64-oe-linux/glibc/2.36-r0/build-x86_64-oe-linux/ld.map \ -Wl,-soname=ld-linux-x86-64.so.2 TOPDIR/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: TOPDIR/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' collect2: error: ld returned 1 exit status introduced in 2.36 version, with: https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=6b9006bfb0 upstream report with this fix proposed: https://sourceware.org/bugzilla/show_bug.cgi?id=29454 (From OE-Core rev: 57a0e5ebac924015d3059695e731b28067be4568) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
e08a78c453
commit
f24bfd4a3e
@@ -0,0 +1,28 @@
|
||||
From 1d4d09d9dff96f46674262534ce1f0e51a8252cb Mon Sep 17 00:00:00 2001
|
||||
From: Noah Goldstein <goldstein.w.n@gmail.com>
|
||||
Date: Sun, 7 Aug 2022 22:42:30 +0800
|
||||
Subject: [PATCH] x86: Fix `#define STRCPY` guard in strcpy-sse2.S
|
||||
|
||||
`#ifndef STPCPY` is incorrect for checking if `STRCPY` is already
|
||||
defined. It doesn't end up mattering as the whole check is
|
||||
guarded by `#if IS_IN (libc)` but is incorrect none the less.
|
||||
|
||||
Upstream-Status: Submitted [https://sourceware.org/bugzilla/show_bug.cgi?id=29454 https://sourceware.org/pipermail/libc-alpha/2022-August/141289.html]
|
||||
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
|
||||
---
|
||||
sysdeps/x86_64/multiarch/strcpy-sse2.S | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/sysdeps/x86_64/multiarch/strcpy-sse2.S b/sysdeps/x86_64/multiarch/strcpy-sse2.S
|
||||
index e29b411314..d6b9bae5f8 100644
|
||||
--- a/sysdeps/x86_64/multiarch/strcpy-sse2.S
|
||||
+++ b/sysdeps/x86_64/multiarch/strcpy-sse2.S
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
# include <sysdep.h>
|
||||
|
||||
-# ifndef STPCPY
|
||||
+# ifndef STRCPY
|
||||
# define STRCPY __strcpy_sse2
|
||||
# endif
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
From f0e36cf0b348dbc990af9f869196710ca89c28c2 Mon Sep 17 00:00:00 2001
|
||||
From: Noah Goldstein <goldstein.w.n@gmail.com>
|
||||
Date: Sun, 7 Aug 2022 23:54:19 +0800
|
||||
Subject: [PATCH] elf: Replace `strcpy` call with `memcpy` [BZ #29454]
|
||||
|
||||
GCC normally does this optimization for us in
|
||||
strlen_pass::handle_builtin_strcpy but only for optimized
|
||||
build. To avoid needing to include strcpy.S in the rtld build to
|
||||
support the debug build, just do the optimization by hand.
|
||||
|
||||
Upstream-Status: Submitted [https://sourceware.org/bugzilla/show_bug.cgi?id=29454 https://sourceware.org/pipermail/libc-alpha/2022-August/141290.html]
|
||||
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
|
||||
---
|
||||
elf/dl-cache.c | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/elf/dl-cache.c b/elf/dl-cache.c
|
||||
index c02a95d9b5..03a6d236e8 100644
|
||||
--- a/elf/dl-cache.c
|
||||
+++ b/elf/dl-cache.c
|
||||
@@ -513,8 +513,9 @@ _dl_load_cache_lookup (const char *name)
|
||||
we are accessing. Therefore we must make the copy of the
|
||||
mapping data without using malloc. */
|
||||
char *temp;
|
||||
- temp = alloca (strlen (best) + 1);
|
||||
- strcpy (temp, best);
|
||||
+ size_t best_len = strlen (best) + 1;
|
||||
+ temp = alloca (best_len);
|
||||
+ memcpy (temp, best, best_len);
|
||||
return __strdup (temp);
|
||||
}
|
||||
|
||||
@@ -51,7 +51,9 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
|
||||
file://0023-fix-create-thread-failed-in-unprivileged-process-BZ-.patch \
|
||||
file://0024-Avoid-hardcoded-build-time-paths-in-the-output-binar.patch \
|
||||
file://0025-Revert-Linux-Implement-a-useful-version-of-_startup_.patch \
|
||||
"
|
||||
file://0026-x86-Fix-define-STRCPY-guard-in-strcpy-sse2.S.patch \
|
||||
file://0027-elf-Replace-strcpy-call-with-memcpy-BZ-29454.patch \
|
||||
"
|
||||
S = "${WORKDIR}/git"
|
||||
B = "${WORKDIR}/build-${TARGET_SYS}"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user