glibc/S390-Fix-building-with-disable-mutli-arch-BZ-31196.patch
liqingqing_1229 ddb1b4b4a4 backport patch from glibc upstream 2.38 branch.
here is the bugfix:
- x86_64: Optimize ffsll function code size
- S390: Fix building with disable mutli arch (BZ 31196)
- sparc: Fix broken memset for sparc32 (BZ 31068)
- sparc: Remove unwind information from signal return
- sparc: Fix sparc64 memmove length comparison (BZ 31266)
- sparc: Remove unwind information from signal return stubs (BZ 31244)
2024-02-05 14:46:39 +08:00

67 lines
2.1 KiB
Diff
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 18876c9ff52c3d9aefe2c663b1a287589bebedc0 Mon Sep 17 00:00:00 2001
From: Stefan Liebler <stli@linux.ibm.com>
Date: Tue, 30 Jan 2024 09:34:32 +0100
Subject: [PATCH 2/6] S390: Fix building with --disable-mutli-arch [BZ #31196]
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Starting with commits
- 7ea510127e2067efa07865158ac92c330c379950
string: Add libc_hidden_proto for strchrnul
- 22999b2f0fb62eed1af4095d062bd1272d6afeb1
string: Add libc_hidden_proto for memrchr
building glibc on s390x with --disable-multi-arch fails if only
the C-variant of strchrnul / memrchr is used. This is the case
if gcc uses -march < z13.
The build fails with:
../sysdeps/s390/strchrnul-c.c:28:49: error: __strchrnul_c undeclared here (not in a function); did you mean __strchrnul?
28 | __hidden_ver1 (__strchrnul_c, __GI___strchrnul, __strchrnul_c);
With --disable-multi-arch, __strchrnul_c is not available as string/strchrnul.c
is just included without defining STRCHRNUL and thus we also don't have to create
the internal hidden symbol.
Tested-by: Andreas K. Hüttel <dilfridge@gentoo.org>
(cherry picked from commit cc1b91eabd806057aa7e3058a84bf129ed36e157)
---
sysdeps/s390/memrchr-c.c | 4 +++-
sysdeps/s390/strchrnul-c.c | 4 +++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/sysdeps/s390/memrchr-c.c b/sysdeps/s390/memrchr-c.c
index bdf3c7bbe0..fadd63087a 100644
--- a/sysdeps/s390/memrchr-c.c
+++ b/sysdeps/s390/memrchr-c.c
@@ -25,7 +25,9 @@
# include <string/memrchr.c>
-# if defined SHARED && IS_IN (libc)
+# if HAVE_MEMRCHR_IFUNC
+# if defined SHARED && IS_IN (libc)
__hidden_ver1 (__memrchr_c, __GI___memrchr, __memrchr_c);
+# endif
# endif
#endif
diff --git a/sysdeps/s390/strchrnul-c.c b/sysdeps/s390/strchrnul-c.c
index f6f5bae311..97fbc16edb 100644
--- a/sysdeps/s390/strchrnul-c.c
+++ b/sysdeps/s390/strchrnul-c.c
@@ -24,7 +24,9 @@
# endif
# include <string/strchrnul.c>
-# if defined SHARED && IS_IN (libc)
+# if HAVE_STRCHRNUL_IFUNC
+# if defined SHARED && IS_IN (libc)
__hidden_ver1 (__strchrnul_c, __GI___strchrnul, __strchrnul_c);
+# endif
# endif
#endif
--
2.33.0