Fix ifunc configure check for 64-bit targets

This commit is contained in:
Andreas Schwab 2012-10-30 21:51:58 +01:00
parent 67f2b51c62
commit 786b0b67a3
3 changed files with 18 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2012-11-18 Andreas Schwab <schwab@linux-m68k.org>
* configure.in (libc_cv_ld_gnu_indirect_function): Use .quad on
64-bit targets.
* configure: Regenerated.
2012-11-17 David S. Miller <davem@davemloft.net>
[BZ #14811]

8
configure vendored
View File

@ -4217,7 +4217,7 @@ $as_echo_n "checking for assembler and linker STT_GNU_IFUNC support... " >&6; }
if ${libc_cv_ld_gnu_indirect_function+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.s <<EOF
cat > conftest.S <<EOF
.type foo,%gnu_indirect_function
foo:
.globl _start
@ -4225,12 +4225,16 @@ _start:
.globl __start
__start:
.data
#ifdef _LP64
.quad foo
#else
.long foo
#endif
EOF
libc_cv_ld_gnu_indirect_function=no
if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
-nostartfiles -nostdlib \
-o conftest conftest.s 1>&5 2>&5; then
-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 || {

View File

@ -577,7 +577,7 @@ fi
# For the multi-arch option we need support in the assembler & linker.
AC_CACHE_CHECK([for assembler and linker STT_GNU_IFUNC support],
libc_cv_ld_gnu_indirect_function, [dnl
cat > conftest.s <<EOF
cat > conftest.S <<EOF
.type foo,%gnu_indirect_function
foo:
.globl _start
@ -585,12 +585,16 @@ _start:
.globl __start
__start:
.data
#ifdef _LP64
.quad foo
#else
.long foo
#endif
EOF
libc_cv_ld_gnu_indirect_function=no
if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
-nostartfiles -nostdlib \
-o conftest conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
-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 || {