elf/Makefile: Run IFUNC tests if binutils supports IFUNC
We should run IFUNC tests with --disable-multi-arch if the toolchain supports IFUNCs. For correctness, --disable-multi-arch must not remove IFUNC support from the loader. Tested on x86-64, x32 and i686 with and without --disable-multi-arch. * configure.ac (have-ifunc): New LIBC_CONFIG_VAR. * configure: Regenerated. * elf/Makefile: Run IFUNC tests if binutils supports IFUNC. Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
This commit is contained in:
parent
6bd4d02ee9
commit
92ad88fe72
|
@ -1,3 +1,9 @@
|
||||||
|
2019-02-27 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
* configure.ac (have-ifunc): New LIBC_CONFIG_VAR.
|
||||||
|
* configure: Regenerated.
|
||||||
|
* elf/Makefile: Run IFUNC tests if binutils supports IFUNC.
|
||||||
|
|
||||||
2019-02-27 Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
2019-02-27 Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||||
|
|
||||||
* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c: Define ifunc
|
* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c: Define ifunc
|
||||||
|
|
2
configure
vendored
2
configure
vendored
|
@ -6794,6 +6794,8 @@ if test x"$libc_cv_ld_gnu_indirect_function" = xyes; then
|
||||||
$as_echo "#define HAVE_IFUNC 1" >>confdefs.h
|
$as_echo "#define HAVE_IFUNC 1" >>confdefs.h
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
config_vars="$config_vars
|
||||||
|
have-ifunc = $libc_cv_ld_gnu_indirect_function"
|
||||||
|
|
||||||
if test x"$libc_cv_gcc_indirect_function" = xyes; then
|
if test x"$libc_cv_gcc_indirect_function" = xyes; then
|
||||||
$as_echo "#define HAVE_GCC_IFUNC 1" >>confdefs.h
|
$as_echo "#define HAVE_GCC_IFUNC 1" >>confdefs.h
|
||||||
|
|
|
@ -1804,6 +1804,7 @@ AC_SUBST(libc_cv_gcc_unwind_find_fde)
|
||||||
if test x"$libc_cv_ld_gnu_indirect_function" = xyes; then
|
if test x"$libc_cv_ld_gnu_indirect_function" = xyes; then
|
||||||
AC_DEFINE(HAVE_IFUNC)
|
AC_DEFINE(HAVE_IFUNC)
|
||||||
fi
|
fi
|
||||||
|
LIBC_CONFIG_VAR([have-ifunc], [$libc_cv_ld_gnu_indirect_function])
|
||||||
|
|
||||||
if test x"$libc_cv_gcc_indirect_function" = xyes; then
|
if test x"$libc_cv_gcc_indirect_function" = xyes; then
|
||||||
AC_DEFINE(HAVE_GCC_IFUNC)
|
AC_DEFINE(HAVE_GCC_IFUNC)
|
||||||
|
|
|
@ -321,7 +321,7 @@ modules-names-nobuild := filtmod1
|
||||||
|
|
||||||
tests += $(tests-static)
|
tests += $(tests-static)
|
||||||
|
|
||||||
ifneq (no,$(multi-arch))
|
ifeq (yes,$(have-ifunc))
|
||||||
tests-ifuncstatic := ifuncmain1static ifuncmain1picstatic \
|
tests-ifuncstatic := ifuncmain1static ifuncmain1picstatic \
|
||||||
ifuncmain2static ifuncmain2picstatic \
|
ifuncmain2static ifuncmain2picstatic \
|
||||||
ifuncmain4static ifuncmain4picstatic \
|
ifuncmain4static ifuncmain4picstatic \
|
||||||
|
|
Loading…
Reference in a new issue