summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/glibc/glibc/0030-Improve-IFUNC-check-BZ-25506.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-core/glibc/glibc/0030-Improve-IFUNC-check-BZ-25506.patch')
-rw-r--r--meta/recipes-core/glibc/glibc/0030-Improve-IFUNC-check-BZ-25506.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/meta/recipes-core/glibc/glibc/0030-Improve-IFUNC-check-BZ-25506.patch b/meta/recipes-core/glibc/glibc/0030-Improve-IFUNC-check-BZ-25506.patch
new file mode 100644
index 0000000000..1cb398d2bc
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc/0030-Improve-IFUNC-check-BZ-25506.patch
@@ -0,0 +1,47 @@
+From 87a698a21646b7ee620923ef5ffa9735471a8ddd Mon Sep 17 00:00:00 2001
+From: Fangrui Song <maskray@google.com>
+Date: Tue, 4 Feb 2020 21:55:44 -0800
+Subject: [PATCH] Improve IFUNC check [BZ #25506]
+
+GNU ld's RISCV port does not support IFUNC. ld -no-pie produces no
+relocation and the test passed incorrectly. Be more rigid by testing
+IRELATIVE explicitly.
+
+Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=87a698a21646b7ee620923ef5ffa9735471a8ddd]
+Tested-by: Aurelien Jarno <aurelien@aurel32.net>
+Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure | 2 +-
+ configure.ac | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure b/configure
+index b959d2d988..3b98ec312f 100755
+--- a/configure
++++ b/configure
+@@ -4035,7 +4035,7 @@ if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
+ -o conftest conftest.S 1>&5 2>&5; then
+ # Do a link to see if the backend supports IFUNC relocs.
+ $READELF -r conftest 1>&5
+- LC_ALL=C $READELF -r conftest | grep 'no relocations' >/dev/null || {
++ LC_ALL=C $READELF -Wr conftest | grep -q 'IRELATIVE\|R_SPARC_JMP_IREL' && {
+ libc_cv_ld_gnu_indirect_function=yes
+ }
+ fi
+diff --git a/configure.ac b/configure.ac
+index 49b900c1ed..e20034f301 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -649,7 +649,7 @@ if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
+ -o conftest conftest.S 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
+ # Do a link to see if the backend supports IFUNC relocs.
+ $READELF -r conftest 1>&AS_MESSAGE_LOG_FD
+- LC_ALL=C $READELF -r conftest | grep 'no relocations' >/dev/null || {
++ LC_ALL=C $READELF -Wr conftest | grep -q 'IRELATIVE\|R_SPARC_JMP_IREL' && {
+ libc_cv_ld_gnu_indirect_function=yes
+ }
+ fi
+--
+2.25.1
+