diff options
author | Caroline Tice <cmtice@google.com> | 2016-03-25 16:19:29 -0700 |
---|---|---|
committer | Caroline Tice <cmtice@google.com> | 2016-03-25 16:19:29 -0700 |
commit | 41c11c2a743ea85be67d0840dbbb6d5125bb8798 (patch) | |
tree | 4f693e051b138f50cdfad035b29b01f4b6afbe07 | |
parent | ac16f08b86701ecf70e32f4ead8db63d92603808 (diff) | |
download | toolchain_gcc-41c11c2a743ea85be67d0840dbbb6d5125bb8798.zip toolchain_gcc-41c11c2a743ea85be67d0840dbbb6d5125bb8798.tar.gz toolchain_gcc-41c11c2a743ea85be67d0840dbbb6d5125bb8798.tar.bz2 |
Add top-level flag, --enable-libatomic-ifuncs=[yes/no]
This CL adds a top-level configure flag, --enable-libatomic-ifuncs.
IF this is set to 'no', then libatomic will not be configured/built
to use IFUNC.
This is to fix https://buganizer.corp.google.com/issues/22699878
Change-Id: I76741fe854fc9c32a230b67c72920adfb00473ee
-rwxr-xr-x | build-gcc.sh | 1 | ||||
-rwxr-xr-x | gcc-4.9/configure | 19 | ||||
-rw-r--r-- | gcc-4.9/configure.ac | 12 | ||||
-rw-r--r-- | gcc-4.9/libatomic/acinclude.m4 | 5 |
4 files changed, 37 insertions, 0 deletions
diff --git a/build-gcc.sh b/build-gcc.sh index 707ff27..4893461 100755 --- a/build-gcc.sh +++ b/build-gcc.sh @@ -389,6 +389,7 @@ fi cd $BUILD_OUT && run \ $BUILD_SRCDIR/configure --target=$ABI_CONFIGURE_TARGET \ --enable-bionic-libs \ + --enable-libatomic-ifuncs=no \ --enable-initfini-array \ --host=$ABI_CONFIGURE_HOST \ --build=$ABI_CONFIGURE_BUILD \ diff --git a/gcc-4.9/configure b/gcc-4.9/configure index b209bc9..186f52f 100755 --- a/gcc-4.9/configure +++ b/gcc-4.9/configure @@ -785,6 +785,7 @@ with_debug_prefix_map with_build_config enable_vtable_verify enable_bionic_libs +enable_libatomic_ifuncs enable_serial_configure with_build_time_tools enable_maintainer_mode @@ -1485,6 +1486,7 @@ Optional Features: Objective-C runtime --enable-vtable-verify Enable vtable verification feature --enable-bionic-libs Use bionic libstdc++ libraries + --enable-bionic-libs Enable/disable IFUNCs in libatomic library --enable-serial-[{host,target,build}-]configure force sequential configuration of sub-packages for the host, target or build machine, or all @@ -7240,6 +7242,23 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_bionic_libs" >&5 $as_echo "$enable_bionic_libs" >&6; } +# Use same top-level configure hooks in libatomic. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-libatomic-ifuncs" >&5 +$as_echo_n "checking for --enable-libatomic-ifuncs... " >&6; } +# Check whether --enable-libatomic-ifuncs was given. +if test "${enable_libatomic_ifuncs+set}" = set; then : + enableval=$enable_libatomic_ifuncs; case "$enableval" in + yes) enable_libatomic_ifuncs=yes ;; + no) enable_libatomic_ifuncs=no ;; + *) enable_libatomic_ifuncs=yes;; + esac +else + enable_libatomic_ifuncs=yes +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_libatomic_ifuncs" >&5 +$as_echo "$enable_libatomic_ifuncs" >&6; } + # Record target_configdirs and the configure arguments for target and # build configuration in Makefile. target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'` diff --git a/gcc-4.9/configure.ac b/gcc-4.9/configure.ac index e04fdfe..b78629a 100644 --- a/gcc-4.9/configure.ac +++ b/gcc-4.9/configure.ac @@ -2556,6 +2556,18 @@ AC_ARG_ENABLE(bionic-libs, [enable_bionic_libs=no]) AC_MSG_RESULT($enable_bionic_libs) +# Use same top-level configure hooks in libatomic. +AC_MSG_CHECKING([for --enable-libatomic-ifuncs]) +AC_ARG_ENABLE(libatomic-ifuncs, +[ --enable-bionic-libs Enable/disable IFUNCs in libatomic library ], +[case "$enableval" in + yes) enable_libatomic_ifuncs=yes ;; + no) enable_libatomic_ifuncs=no ;; + *) enable_libatomic_ifuncs=yes;; + esac], +[enable_libatomic_ifuncs=yes]) +AC_MSG_RESULT($enable_libatomic_ifuncs) + # Record target_configdirs and the configure arguments for target and # build configuration in Makefile. target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'` diff --git a/gcc-4.9/libatomic/acinclude.m4 b/gcc-4.9/libatomic/acinclude.m4 index a86e52b..34db650 100644 --- a/gcc-4.9/libatomic/acinclude.m4 +++ b/gcc-4.9/libatomic/acinclude.m4 @@ -197,6 +197,11 @@ AC_DEFUN([LIBAT_CHECK_IFUNC], [ void *foo_sel(void) { return foo_alt; } int foo(void) __attribute__((ifunc("foo_sel")));], [return foo();], libat_cv_have_ifunc=yes, libat_cv_have_ifunc=no)]) + + if test $enable_libatomic_ifuncs = no; then + libat_cv_have_ifunc=no + fi + LIBAT_DEFINE_YESNO([HAVE_IFUNC], [$libat_cv_have_ifunc], [Define to 1 if the target supports __attribute__((ifunc(...))).]) ]) |