fix glibc (why is it needed anyway?) build

This commit is contained in:
Ari Gato 2024-07-05 15:06:09 +02:00
parent b13b8ad888
commit 65a0d375b2
2 changed files with 193 additions and 0 deletions

View file

@ -1,4 +1,10 @@
final: prev: {
glibc = prev.glibc.overrideAttrs (oldAttrs: {
patches = oldAttrs.patches ++ [
./patches/glibc/revert-string-add-libc-hidden-proto-for-memrchr.patch
];
});
python3 = prev.python3.override {
packageOverrides = python-final: python-prev: {
twisted = python-prev.twisted.overrideAttrs

View file

@ -0,0 +1,187 @@
commit 28eb4fc015d8d5f56845a98596cf0d5c0b05b9a6
Author: Yureka <yuka@yuka.dev>
Date: Tue Oct 10 00:34:54 2023 +0200
Revert "string: Add libc_hidden_proto for memrchr"
This reverts commit 22999b2f0fb62eed1af4095d062bd1272d6afeb1.
diff --git a/include/string.h b/include/string.h
index 659530d1aa..c4d09a02ce 100644
--- a/include/string.h
+++ b/include/string.h
@@ -120,7 +120,6 @@ extern __typeof (memmem) __memmem;
libc_hidden_proto (__memmem)
libc_hidden_proto (__ffs)
libc_hidden_proto (__strerror_l)
-libc_hidden_proto (__memrchr)
#if IS_IN (libc)
/* Avoid hidden reference to IFUNC symbol __explicit_bzero_chk. */
diff --git a/string/memrchr.c b/string/memrchr.c
index 3de5ec691c..b37f2a68c8 100644
--- a/string/memrchr.c
+++ b/string/memrchr.c
@@ -75,6 +75,5 @@ __memrchr (const void *s, int c_in, size_t n)
return NULL;
}
#ifndef MEMRCHR
-libc_hidden_def (__memrchr)
weak_alias (__memrchr, memrchr)
#endif
diff --git a/sysdeps/aarch64/memrchr.S b/sysdeps/aarch64/memrchr.S
index af7d847dab..621fc65109 100644
--- a/sysdeps/aarch64/memrchr.S
+++ b/sysdeps/aarch64/memrchr.S
@@ -123,6 +123,5 @@ L(nomatch):
ret
END (__memrchr)
-libc_hidden_def (__memrchr)
weak_alias (__memrchr, memrchr)
libc_hidden_builtin_def (memrchr)
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c
index 038c5f4532..62e7a12989 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c
@@ -23,13 +23,3 @@ extern void *__memrchr_ppc (const void *, int, size_t);
#endif
#include <string/memrchr.c>
-# if IS_IN (libc)
-# undef __memrchr
-# ifdef SHARED
-__hidden_ver1 (__memrchr_ppc, __GI___memrchr, __memrchr_ppc);
-strong_alias (__memrchr_ppc, __memrchr_ppc1);
-__hidden_ver1 (__memrchr_ppc1, __memrchr, __memrchr_ppc1);
-# else
-strong_alias (__memrchr_ppc, __memrchr)
-# endif
-#endif
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr.c
index fb0d2c0617..8c1385fe6a 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr.c
@@ -17,21 +17,21 @@
<https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
-# define memrchr __redirect_memrchr
# include <string.h>
# include <shlib-compat.h>
# include "init-arch.h"
extern __typeof (__memrchr) __memrchr_ppc attribute_hidden;
extern __typeof (__memrchr) __memrchr_power7 attribute_hidden;
-# undef memrchr
/* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle
ifunc symbol properly. */
-libc_ifunc_redirected (__redirect_memrchr, memrchr,
- (hwcap & PPC_FEATURE_HAS_VSX)
- ? __memrchr_power7
- : __memrchr_ppc);
+libc_ifunc (__memrchr,
+ (hwcap & PPC_FEATURE_HAS_VSX)
+ ? __memrchr_power7
+ : __memrchr_ppc);
+
+weak_alias (__memrchr, memrchr)
#else
#include <string/memrchr.c>
#endif
diff --git a/sysdeps/powerpc/powerpc32/power7/memrchr.S b/sysdeps/powerpc/powerpc32/power7/memrchr.S
index 9f0f17fa46..9c70517d37 100644
--- a/sysdeps/powerpc/powerpc32/power7/memrchr.S
+++ b/sysdeps/powerpc/powerpc32/power7/memrchr.S
@@ -191,6 +191,5 @@ L(loop_small):
blr
END (__memrchr)
-libc_hidden_def (__memrchr)
weak_alias (__memrchr, memrchr)
libc_hidden_builtin_def (memrchr)
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memrchr.c b/sysdeps/powerpc/powerpc64/multiarch/memrchr.c
index 5e7c00fdce..59527a83eb 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memrchr.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memrchr.c
@@ -17,7 +17,6 @@
<https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
-# define memrchr __redirect_memrchr
# include <string.h>
# include <shlib-compat.h>
# include "init-arch.h"
@@ -25,17 +24,18 @@
extern __typeof (__memrchr) __memrchr_ppc attribute_hidden;
extern __typeof (__memrchr) __memrchr_power7 attribute_hidden;
extern __typeof (__memrchr) __memrchr_power8 attribute_hidden;
-# undef memrchr
/* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle
ifunc symbol properly. */
-libc_ifunc_redirected (__redirect_memrchr, memrchr,
- (hwcap2 & PPC_FEATURE2_ARCH_2_07
- && hwcap & PPC_FEATURE_HAS_ALTIVEC)
- ? __memrchr_power8 :
- (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __memrchr_power7
- : __memrchr_ppc);
+libc_ifunc (__memrchr,
+ (hwcap2 & PPC_FEATURE2_ARCH_2_07
+ && hwcap & PPC_FEATURE_HAS_ALTIVEC)
+ ? __memrchr_power8 :
+ (hwcap & PPC_FEATURE_ARCH_2_06)
+ ? __memrchr_power7
+ : __memrchr_ppc);
+
+weak_alias (__memrchr, memrchr)
#else
#include <string/memrchr.c>
#endif
diff --git a/sysdeps/powerpc/powerpc64/power7/memrchr.S b/sysdeps/powerpc/powerpc64/power7/memrchr.S
index 3b0430ccff..56e79f3cd5 100644
--- a/sysdeps/powerpc/powerpc64/power7/memrchr.S
+++ b/sysdeps/powerpc/powerpc64/power7/memrchr.S
@@ -196,6 +196,5 @@ L(loop_small):
blr
END (MEMRCHR)
-libc_hidden_def (__memrchr)
weak_alias (__memrchr, memrchr)
libc_hidden_builtin_def (memrchr)
diff --git a/sysdeps/powerpc/powerpc64/power8/memrchr.S b/sysdeps/powerpc/powerpc64/power8/memrchr.S
index ebe4017968..fec76cf586 100644
--- a/sysdeps/powerpc/powerpc64/power8/memrchr.S
+++ b/sysdeps/powerpc/powerpc64/power8/memrchr.S
@@ -332,6 +332,5 @@ L(loop_small):
blr
END (MEMRCHR)
-libc_hidden_def (__memrchr)
weak_alias (__memrchr, memrchr)
libc_hidden_builtin_def (memrchr)
diff --git a/sysdeps/s390/memrchr-c.c b/sysdeps/s390/memrchr-c.c
index bdf3c7bbe0..ce97bc6714 100644
diff --git a/sysdeps/x86_64/memrchr.S b/sysdeps/x86_64/memrchr.S
index 98a220f3f4..fe33998111 100644
--- a/sysdeps/x86_64/memrchr.S
+++ b/sysdeps/x86_64/memrchr.S
@@ -25,5 +25,4 @@
#include "isa-default-impl.h"
-libc_hidden_def (__memrchr)
weak_alias (__memrchr, memrchr)
diff --git a/sysdeps/x86_64/multiarch/memrchr.c b/sysdeps/x86_64/multiarch/memrchr.c
index 49026538d4..f7db8b4708 100644
--- a/sysdeps/x86_64/multiarch/memrchr.c
+++ b/sysdeps/x86_64/multiarch/memrchr.c
@@ -27,6 +27,5 @@
# include "ifunc-avx2.h"
libc_ifunc_redirected (__redirect_memrchr, __memrchr, IFUNC_SELECTOR ());
-libc_hidden_def (__memrchr)
weak_alias (__memrchr, memrchr)
#endif