summaryrefslogtreecommitdiff
path: root/libcilkrts
diff options
context:
space:
mode:
authorro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-22 11:44:56 +0000
committerro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-22 11:44:56 +0000
commitabcaf0b8bc258f3d99548bcf963bd6b613729dd3 (patch)
treeecf4f142c4963ac96a87adfd48c7b2b184696bbf /libcilkrts
parent613b17c78107d4ced492b310433dedc63a936d7f (diff)
Only use visibility if supported
* configure.ac (libcilkrts_cv_have_attribute_visibility): Check for __attribute__((visibility)). * configure: Regenerate. * include/cilk/common.h (CILK_EXPORT, CILK_EXPORT_DATA): Only use __attribute__((visibility)) if HAVE_ATTRIBUTE_VISIBILITY. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205254 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libcilkrts')
-rw-r--r--libcilkrts/ChangeLog8
-rw-r--r--libcilkrts/configure31
-rw-r--r--libcilkrts/configure.ac12
-rw-r--r--libcilkrts/include/cilk/common.h2
4 files changed, 50 insertions, 3 deletions
diff --git a/libcilkrts/ChangeLog b/libcilkrts/ChangeLog
index c73b9233850d..abcd198a6359 100644
--- a/libcilkrts/ChangeLog
+++ b/libcilkrts/ChangeLog
@@ -1,5 +1,13 @@
2013-11-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+ * configure.ac (libcilkrts_cv_have_attribute_visibility): Check
+ for __attribute__((visibility)).
+ * configure: Regenerate.
+ * include/cilk/common.h (CILK_EXPORT, CILK_EXPORT_DATA): Only use
+ __attribute__((visibility)) if HAVE_ATTRIBUTE_VISIBILITY.
+
+2013-11-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
* configure.ac (AC_PROG_CXX): Move after AC_PROG_CC.
* configure: Regenerate.
diff --git a/libcilkrts/configure b/libcilkrts/configure
index c510e14c7174..d60ac410a832 100644
--- a/libcilkrts/configure
+++ b/libcilkrts/configure
@@ -4874,6 +4874,33 @@ _ACEOF
fi
+# Check whether the target supports protected visibility.
+save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -Werror"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+void __attribute__((visibility("protected"))) foo(void) { }
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ libcilkrts_cv_have_attribute_visibility=yes
+else
+ libcilkrts_cv_have_attribute_visibility=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+CFLAGS="$save_CFLAGS"
+if test $libcilkrts_cv_have_attribute_visibility = yes; then
+
+$as_echo "#define HAVE_ATTRIBUTE_VISIBILITY 1" >>confdefs.h
+
+fi
+
# Get target configury.
. ${srcdir}/configure.tgt
if test -n "$UNSUPPORTED"; then
@@ -11060,7 +11087,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11063 "configure"
+#line 11090 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11166,7 +11193,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11169 "configure"
+#line 11196 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/libcilkrts/configure.ac b/libcilkrts/configure.ac
index 0332d9c552dd..84588db4224c 100644
--- a/libcilkrts/configure.ac
+++ b/libcilkrts/configure.ac
@@ -54,6 +54,18 @@ AC_CONFIG_FILES([Makefile])
AM_ENABLE_MULTILIB(, ..)
AC_FUNC_ALLOCA
+# Check whether the target supports protected visibility.
+save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -Werror"
+AC_TRY_COMPILE([void __attribute__((visibility("protected"))) foo(void) { }],
+ [], libcilkrts_cv_have_attribute_visibility=yes,
+ libcilkrts_cv_have_attribute_visibility=no)
+CFLAGS="$save_CFLAGS"
+if test $libcilkrts_cv_have_attribute_visibility = yes; then
+ AC_DEFINE(HAVE_ATTRIBUTE_VISIBILITY, 1,
+ [Define to 1 if the target supports __attribute__((visibility(...))).])
+fi
+
# Get target configury.
. ${srcdir}/configure.tgt
if test -n "$UNSUPPORTED"; then
diff --git a/libcilkrts/include/cilk/common.h b/libcilkrts/include/cilk/common.h
index 8ec19afa9222..d2c84fa95a20 100644
--- a/libcilkrts/include/cilk/common.h
+++ b/libcilkrts/include/cilk/common.h
@@ -101,7 +101,7 @@ namespace cilk {
# define CILK_EXPORT /* nothing */
# define CILK_EXPORT_DATA /* nothing */
#else /* Unix/gcc */
-# ifdef IN_CILK_RUNTIME
+# if defined(IN_CILK_RUNTIME) && defined(HAVE_ATTRIBUTE_VISIBILITY)
# define CILK_EXPORT __attribute__((visibility("protected")))
# define CILK_EXPORT_DATA __attribute__((visibility("protected")))
# else