@@ -3687,7 +3687,7 @@ case ${target} in
;;
*-*-linux* | *-*-gnu*)
case ${target} in
- aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* |
sparc*-* | x86_64-* | loongarch*-*)
+ aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | riscv*-* |
s390*-* | sparc*-* | x86_64-* | loongarch*-*)
default_gnu_indirect_function=yes
;;
esac
@@ -25907,42 +25907,46 @@ else
fi
-case "${target}" in
- riscv*-*-linux*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker ifunc
IRELATIVE support" >&5
+if test $default_gnu_indirect_function = yes; then
+ case "${target}" in
+ riscv*-*-linux*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker ifunc
IRELATIVE support" >&5
$as_echo_n "checking linker ifunc IRELATIVE support... " >&6; }
- cat > conftest.s <<EOF
- .text
- .type foo_resolver, @function
-foo_resolver:
- ret
- .size foo_resolver, .-foo_resolver
-
- .globl foo
- .type foo, %gnu_indirect_function
- .set foo, foo_resolver
-
- .globl bar
- .type bar, @function
-bar:
- call foo
- ret
- .size bar, .-bar
-EOF
- if test x$gcc_cv_as != x \
- && test x$gcc_cv_ld != x \
- && test x$gcc_cv_readelf != x \
- && $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
- && $gcc_cv_ld -o conftest conftest.o > /dev/null 2>&1 \
- && $gcc_cv_readelf --relocs --wide conftest \
- | grep R_RISCV_IRELATIVE > /dev/null 2>&1; then
- enable_gnu_indirect_function=yes
- fi
- rm -f conftest conftest.o conftest.s
- { $as_echo "$as_me:${as_lineno-$LINENO}: result:
$enable_gnu_indirect_function" >&5
+ cat > conftest.s <<EOF
+ .text
+ .type foo_resolver, @function
+ foo_resolver:
+ ret
+ .size foo_resolver, .-foo_resolver
+
+ .globl foo
+ .type foo, %gnu_indirect_function
+ .set foo, foo_resolver
+
+ .globl bar
+ .type bar, @function
+ bar:
+ call foo
+ ret
+ .size bar, .-bar
+ EOF
+ if test x$gcc_cv_as != x \
+ && test x$gcc_cv_ld != x \
+ && test x$gcc_cv_readelf != x \
+ && $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
+ && $gcc_cv_ld -o conftest conftest.o > /dev/null 2>&1 \
+ && $gcc_cv_readelf --relocs --wide conftest \
+ | grep R_RISCV_IRELATIVE > /dev/null 2>&1; then
+ enable_gnu_indirect_function=yes
+ else
+ enable_gnu_indirect_function=no
+ fi
+ rm -f conftest conftest.o conftest.s
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result:
$enable_gnu_indirect_function" >&5
$as_echo "$enable_gnu_indirect_function" >&6; }
- ;;
-esac
+ ;;
+ esac
+fi
gif=`if test x$enable_gnu_indirect_function = xyes; then echo 1; else
echo 0; fi`
@@ -3072,40 +3072,44 @@ Valid choices are 'yes' and 'no'.]) ;;
esac],
[enable_gnu_indirect_function="$default_gnu_indirect_function"])
-case "${target}" in
- riscv*-*-linux*)
- AC_MSG_CHECKING(linker ifunc IRELATIVE support)
- cat > conftest.s <<EOF
- .text
- .type foo_resolver, @function
-foo_resolver:
- ret
- .size foo_resolver, .-foo_resolver
-
- .globl foo
- .type foo, %gnu_indirect_function
- .set foo, foo_resolver
-
- .globl bar
- .type bar, @function
-bar:
- call foo
- ret
- .size bar, .-bar
-EOF
- if test x$gcc_cv_as != x \
- && test x$gcc_cv_ld != x \
- && test x$gcc_cv_readelf != x \
- && $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
- && $gcc_cv_ld -o conftest conftest.o > /dev/null 2>&1 \
- && $gcc_cv_readelf --relocs --wide conftest \
- | grep R_RISCV_IRELATIVE > /dev/null 2>&1; then
- enable_gnu_indirect_function=yes
- fi
- rm -f conftest conftest.o conftest.s
- AC_MSG_RESULT($enable_gnu_indirect_function)
- ;;
-esac
+if test $default_gnu_indirect_function = yes; then
+ case "${target}" in
+ riscv*-*-linux*)
+ AC_MSG_CHECKING(linker ifunc IRELATIVE support)
+ cat > conftest.s <<EOF
+ .text
+ .type foo_resolver, @function
+ foo_resolver:
+ ret
+ .size foo_resolver, .-foo_resolver
+
+ .globl foo
+ .type foo, %gnu_indirect_function
+ .set foo, foo_resolver
+
+ .globl bar
+ .type bar, @function
+ bar:
+ call foo
+ ret
+ .size bar, .-bar
+ EOF
+ if test x$gcc_cv_as != x \
+ && test x$gcc_cv_ld != x \
+ && test x$gcc_cv_readelf != x \
+ && $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
+ && $gcc_cv_ld -o conftest conftest.o > /dev/null 2>&1 \
+ && $gcc_cv_readelf --relocs --wide conftest \
+ | grep R_RISCV_IRELATIVE > /dev/null 2>&1; then
+ enable_gnu_indirect_function=yes
+ else
+ enable_gnu_indirect_function=no
+ fi
+ rm -f conftest conftest.o conftest.s
+ AC_MSG_RESULT($enable_gnu_indirect_function)
+ ;;
+ esac
+fi
gif=`if test x$enable_gnu_indirect_function = xyes; then echo 1; else
echo 0; fi`