aboutsummaryrefslogtreecommitdiff
path: root/libsanitizer/configure
diff options
context:
space:
mode:
authorMax Ostapenko <m.ostapenko@partner.samsung.com>2015-10-22 12:47:17 +0300
committerMaxim Ostapenko <chefmax@gcc.gnu.org>2015-10-22 12:47:17 +0300
commit692b1131a7cc0c5bfa3137a6489b4ef9715b635e (patch)
treeb707a17b008e0a523dd80cc5934ebfd02843aad6 /libsanitizer/configure
parenta8fc25795155d4c4d18c8c5b099748a8178b38f6 (diff)
downloadgcc-692b1131a7cc0c5bfa3137a6489b4ef9715b635e.zip
gcc-692b1131a7cc0c5bfa3137a6489b4ef9715b635e.tar.gz
gcc-692b1131a7cc0c5bfa3137a6489b4ef9715b635e.tar.bz2
Fix bootstrap on x86_64-apple-darwin14 after r229119.
libsanitizer/ PR bootstrap/68041 * configure.ac (link_sanitizer_common): Link against librt only if it contains shm_open, required by sanitizers. (CXX_ABI_NEEDED): Remove variable. * configure: Regenerate. * ubsan/Makefile.am (libubsan_la_LIBADD): Do not add -lc++abi anymore. * ubsan/Makefile.in: Regenerate. From-SVN: r229168
Diffstat (limited to 'libsanitizer/configure')
-rwxr-xr-xlibsanitizer/configure116
1 files changed, 97 insertions, 19 deletions
diff --git a/libsanitizer/configure b/libsanitizer/configure
index 80655f0..2701ee7 100755
--- a/libsanitizer/configure
+++ b/libsanitizer/configure
@@ -616,8 +616,6 @@ BACKTRACE_SUPPORTED
FORMAT_FILE
SANITIZER_SUPPORTED_FALSE
SANITIZER_SUPPORTED_TRUE
-USE_CXX_ABI_FLAG_FALSE
-USE_CXX_ABI_FLAG_TRUE
USING_MAC_INTERPOSE_FALSE
USING_MAC_INTERPOSE_TRUE
link_liblsan
@@ -12029,7 +12027,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12032 "configure"
+#line 12030 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12135,7 +12133,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12138 "configure"
+#line 12136 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -15516,7 +15514,51 @@ done
# Common libraries that we need to link against for all sanitizer libs.
-link_sanitizer_common='-lrt -lpthread -ldl -lm'
+link_sanitizer_common='-lpthread -ldl -lm'
+
+# At least for glibc, shm_open is in librt. But don't pull that
+# in if it still doesn't give us the function we want. This
+# test is copied from libgomp.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for shm_open in -lrt" >&5
+$as_echo_n "checking for shm_open in -lrt... " >&6; }
+if test "${ac_cv_lib_rt_shm_open+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lrt $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shm_open ();
+int
+main ()
+{
+return shm_open ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_rt_shm_open=yes
+else
+ ac_cv_lib_rt_shm_open=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_shm_open" >&5
+$as_echo "$ac_cv_lib_rt_shm_open" >&6; }
+if test "x$ac_cv_lib_rt_shm_open" = x""yes; then :
+ link_sanitizer_common="-lrt $link_sanitizer_common"
+fi
+
# Set up the set of additional libraries that we need to link against for libasan.
link_libasan=$link_sanitizer_common
@@ -15534,9 +15576,57 @@ link_libubsan=$link_sanitizer_common
link_liblsan=$link_sanitizer_common
+
+# At least for glibc, clock_gettime is in librt. But don't pull that
+# in if it still doesn't give us the function we want. This
+# test is copied from libgomp.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5
+$as_echo_n "checking for clock_gettime in -lrt... " >&6; }
+if test "${ac_cv_lib_rt_clock_gettime+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lrt $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char clock_gettime ();
+int
+main ()
+{
+return clock_gettime ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_rt_clock_gettime=yes
+else
+ ac_cv_lib_rt_clock_gettime=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5
+$as_echo "$ac_cv_lib_rt_clock_gettime" >&6; }
+if test "x$ac_cv_lib_rt_clock_gettime" = x""yes; then :
+ link_libasan="-lrt $link_libasan"
+link_libtsan="-lrt $link_libtsan"
+# Other sanitizers do not override clock_* API
+
+fi
+
+
case "$host" in
- *-*-darwin*) MAC_INTERPOSE=true ; enable_static=no ; CXX_ABI_NEEDED=true ;;
- *) MAC_INTERPOSE=false ; CXX_ABI_NEEDED=false ;;
+ *-*-darwin*) MAC_INTERPOSE=true ; enable_static=no ;;
+ *) MAC_INTERPOSE=false ;;
esac
if $MAC_INTERPOSE; then
USING_MAC_INTERPOSE_TRUE=
@@ -15546,14 +15636,6 @@ else
USING_MAC_INTERPOSE_FALSE=
fi
- if $CXX_ABI_NEEDED; then
- USE_CXX_ABI_FLAG_TRUE=
- USE_CXX_ABI_FLAG_FALSE='#'
-else
- USE_CXX_ABI_FLAG_TRUE='#'
- USE_CXX_ABI_FLAG_FALSE=
-fi
-
backtrace_supported=yes
@@ -16511,10 +16593,6 @@ if test -z "${USING_MAC_INTERPOSE_TRUE}" && test -z "${USING_MAC_INTERPOSE_FALSE
as_fn_error "conditional \"USING_MAC_INTERPOSE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${USE_CXX_ABI_FLAG_TRUE}" && test -z "${USE_CXX_ABI_FLAG_FALSE}"; then
- as_fn_error "conditional \"USE_CXX_ABI_FLAG\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
if test -z "${SANITIZER_SUPPORTED_TRUE}" && test -z "${SANITIZER_SUPPORTED_FALSE}"; then
as_fn_error "conditional \"SANITIZER_SUPPORTED\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5