aboutsummaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in42
1 files changed, 42 insertions, 0 deletions
diff --git a/configure.in b/configure.in
index ee41122593..d2af5ab277 100644
--- a/configure.in
+++ b/configure.in
@@ -1013,6 +1013,48 @@ EOF
fi
fi
+ if test $libc_cv_visibility_attribute = yes; then
+ AC_CACHE_CHECK(for broken __attribute__((visibility())),
+ libc_cv_broken_visibility_attribute,
+ [cat > conftest.c <<EOF
+ int foo (int x);
+ int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
+ int bar (int x) { return x; }
+EOF
+ libc_cv_broken_visibility_attribute=yes
+ if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
+changequote(,)dnl
+ if grep '\.hidden[ _]foo' conftest.s >/dev/null; then
+changequote([,])dnl
+ libc_cv_broken_visibility_attribute=no
+ fi
+ fi
+ rm -f conftest.c conftest.s
+ ])
+ if test $libc_cv_broken_visibility_attribute = yes; then
+ AC_DEFINE(HAVE_BROKEN_VISIBILITY_ATTRIBUTE)
+ fi
+ fi
+
+ AC_CACHE_CHECK(for broken __attribute__((alias())),
+ libc_cv_broken_alias_attribute,
+ [cat > conftest.c <<EOF
+ extern int foo (int x) __asm ("xyzzy");
+ int bar (int x) { return x; }
+ extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
+EOF
+ libc_cv_broken_alias_attribute=yes
+ if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
+ if grep 'xyzzy' conftest.s >/dev/null; then
+ libc_cv_broken_alias_attribute=no
+ fi
+ fi
+ rm -f conftest.c conftest.s
+ ])
+ if test $libc_cv_broken_alias_attribute = yes; then
+ AC_DEFINE(HAVE_BROKEN_ALIAS_ATTRIBUTE)
+ fi
+
if test $libc_cv_visibility_attribute = yes -a $gnu_ld = yes; then
AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
libc_cv_have_sdata_section,