Skip to content

Commit 798bc0b

Browse files
luke-jrlaanwj
authored andcommitted
Support glibc-back-compat on 64-bit POWER
1 parent 43f3ada commit 798bc0b

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

configure.ac

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -813,6 +813,11 @@ AX_GCC_FUNC_ATTRIBUTE([dllimport])
813813
if test x$use_glibc_compat != xno; then
814814
AX_CHECK_LINK_FLAG([[-Wl,--wrap=__divmoddi4]], [COMPAT_LDFLAGS="$COMPAT_LDFLAGS -Wl,--wrap=__divmoddi4"])
815815
AX_CHECK_LINK_FLAG([[-Wl,--wrap=log2f]], [COMPAT_LDFLAGS="$COMPAT_LDFLAGS -Wl,--wrap=log2f"])
816+
case $host in
817+
powerpc64* | ppc64*)
818+
AX_CHECK_LINK_FLAG([[-Wl,--no-tls-get-addr-optimize]], [COMPAT_LDFLAGS="$COMPAT_LDFLAGS -Wl,--no-tls-get-addr-optimize"])
819+
;;
820+
esac
816821
else
817822
AC_SEARCH_LIBS([clock_gettime],[rt])
818823
fi

src/compat/glibc_compat.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ __asm(".symver log2f_old,log2f@GLIBC_2.2.5");
5454
__asm(".symver log2f_old,log2f@GLIBC_2.4");
5555
#elif defined(__aarch64__)
5656
__asm(".symver log2f_old,log2f@GLIBC_2.17");
57+
#elif defined(__powerpc64__)
58+
# ifdef WORDS_BIGENDIAN
59+
__asm(".symver log2f_old,log2f@GLIBC_2.3");
60+
# else
61+
__asm(".symver log2f_old,log2f@GLIBC_2.17");
62+
# endif
5763
#elif defined(__riscv)
5864
__asm(".symver log2f_old,log2f@GLIBC_2.27");
5965
#endif

0 commit comments

Comments
 (0)