aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Dashjr <luke-jr+git@utopios.org>2018-08-23 07:27:36 +0000
committerWladimir J. van der Laan <laanwj@protonmail.com>2021-01-19 14:41:22 +0100
commit798bc0b29a4ad342010f7cd31dd38eeeb5b709db (patch)
tree01a5381ac8e9a0c9a97bdf513f56ae48786869eb
parent43f3ada27b835e6b198f9a669e4955d06f5c4d08 (diff)
downloadbitcoin-798bc0b29a4ad342010f7cd31dd38eeeb5b709db.tar.xz
Support glibc-back-compat on 64-bit POWER
-rw-r--r--configure.ac5
-rw-r--r--src/compat/glibc_compat.cpp6
2 files changed, 11 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 1592ed352f..23a33b8c4f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -813,6 +813,11 @@ AX_GCC_FUNC_ATTRIBUTE([dllimport])
if test x$use_glibc_compat != xno; then
AX_CHECK_LINK_FLAG([[-Wl,--wrap=__divmoddi4]], [COMPAT_LDFLAGS="$COMPAT_LDFLAGS -Wl,--wrap=__divmoddi4"])
AX_CHECK_LINK_FLAG([[-Wl,--wrap=log2f]], [COMPAT_LDFLAGS="$COMPAT_LDFLAGS -Wl,--wrap=log2f"])
+ case $host in
+ powerpc64* | ppc64*)
+ AX_CHECK_LINK_FLAG([[-Wl,--no-tls-get-addr-optimize]], [COMPAT_LDFLAGS="$COMPAT_LDFLAGS -Wl,--no-tls-get-addr-optimize"])
+ ;;
+ esac
else
AC_SEARCH_LIBS([clock_gettime],[rt])
fi
diff --git a/src/compat/glibc_compat.cpp b/src/compat/glibc_compat.cpp
index 6d7a293f9b..8a51f310f7 100644
--- a/src/compat/glibc_compat.cpp
+++ b/src/compat/glibc_compat.cpp
@@ -54,6 +54,12 @@ __asm(".symver log2f_old,log2f@GLIBC_2.2.5");
__asm(".symver log2f_old,log2f@GLIBC_2.4");
#elif defined(__aarch64__)
__asm(".symver log2f_old,log2f@GLIBC_2.17");
+#elif defined(__powerpc64__)
+# ifdef WORDS_BIGENDIAN
+__asm(".symver log2f_old,log2f@GLIBC_2.3");
+# else
+__asm(".symver log2f_old,log2f@GLIBC_2.17");
+# endif
#elif defined(__riscv)
__asm(".symver log2f_old,log2f@GLIBC_2.27");
#endif