$as_echo "#define HAVE_GCC_IFUNC 1" >>confdefs.h
fi
+config_vars="$config_vars
+have-gcc-ifunc = $libc_cv_gcc_indirect_function"
# This is far from the AC_ARG_ENABLE that sets it so that a sysdeps
# configure fragment can override the value to prevent this AC_DEFINE.
if test x"$libc_cv_gcc_indirect_function" = xyes; then
AC_DEFINE(HAVE_GCC_IFUNC)
fi
+LIBC_CONFIG_VAR([have-gcc-ifunc], [$libc_cv_gcc_indirect_function])
# This is far from the AC_ARG_ENABLE that sets it so that a sysdeps
# configure fragment can override the value to prevent this AC_DEFINE.
ifuncmain2static ifuncmain2picstatic \
ifuncmain4static ifuncmain4picstatic \
ifuncmain5static ifuncmain5picstatic \
- ifuncmain7static ifuncmain7picstatic \
- ifuncmain9static ifuncmain9picstatic
+ ifuncmain7static ifuncmain7picstatic
+ifeq (yes,$(have-gcc-ifunc))
+tests-ifuncstatic += ifuncmain9static ifuncmain9picstatic
+endif
tests-static += $(tests-ifuncstatic)
tests-internal += $(tests-ifuncstatic)
ifeq (yes,$(build-shared))
ifuncmain1staticpic \
ifuncmain2 ifuncmain2pic ifuncmain3 ifuncmain4 \
ifuncmain5 ifuncmain5pic ifuncmain5staticpic \
- ifuncmain7 ifuncmain7pic \
- ifuncmain9 ifuncmain9pic
+ ifuncmain7 ifuncmain7pic
+ifeq (yes,$(have-gcc-ifunc))
+tests-internal += ifuncmain9 ifuncmain9pic
+endif
ifunc-test-modules = ifuncdep1 ifuncdep1pic ifuncdep2 ifuncdep2pic \
ifuncdep5 ifuncdep5pic
extra-test-objs += $(ifunc-test-modules:=.o)
test-internal-extras += $(ifunc-test-modules)
ifeq (yes,$(have-fpie))
ifunc-pie-tests = ifuncmain1pie ifuncmain1vispie ifuncmain1staticpie \
- ifuncmain5pie ifuncmain6pie ifuncmain7pie ifuncmain9pie
+ ifuncmain5pie ifuncmain6pie ifuncmain7pie
+ifeq (yes,$(have-gcc-ifunc))
+ifunc-pie-tests += ifuncmain9pie
+endif
ifeq (yes,$(have-textrel_ifunc))
ifunc-pie-tests += tst-ifunc-textrel
endif
#include <config.h>
-#ifdef HAVE_GCC_IFUNC
-
# include <stdbool.h>
# include <stdio.h>
return errors;
}
-
-#else /* !HAVE_GCC_IFUNC */
-
-# include <support/check.h>
-
-static int
-do_test (void)
-{
- FAIL_UNSUPPORTED ("GCC does not support the ifunc attribute");
- return 1; /* Not reachable. */
-}
-
-# include <support/test-driver.c>
-#endif
tst-cpu-features-cpuinfo-static \
tst-cpu-features-supports-static
ifeq (yes,$(have-ifunc))
+ifeq (yes,$(have-gcc-ifunc))
tests += \
tst-ifunc-isa-1 \
tst-ifunc-isa-1-static \
tst-ifunc-isa-1-static \
tst-ifunc-isa-2-static
endif
+endif
ifeq (yes,$(enable-x86-isa-level))
tests += tst-isa-level-1
modules-names += tst-isa-level-mod-1-baseline \