fix glibc (why is it needed anyway?) build
This commit is contained in:
parent
b13b8ad888
commit
65a0d375b2
2 changed files with 193 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
Loading…
Reference in a new issue