From 2a723ff6ff8ebbcb6759bfaf28fd25b390ce9390 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Thu, 29 Oct 2015 12:48:24 +0000 Subject: Remove configure tests for visibility support. There are various configure tests for visibility support in the compiler and assember. GCC support for visibility attributes was added in GCC 3.3. I don't know what specific fix was intended by the test "for broken __attribute__((visibility())", but it was added by , and GCC 3.3 appears not to have that breakage, so I suspect it was only ever in development versions before 3.3 was released. The assembler support was added in binutils 2.10. This patch removes the tests in question as obsolete. Two tests that were formerly conditional on "if test $libc_cv_visibility_attribute = yes", including the one for linker support for protected data, are now unconditional. Tested for x86_64 and x86 (testsuite, and that installed shared libraries are unchanged by the patch). * configure.ac (libc_cv_asm_protected_directive): Remove configure test. (libc_cv_visibility_attribute): Likewise. (libc_cv_protected_data): Test unconditionally. (libc_cv_broken_visibility_attribute): Remove configure test. (libc_cv_have_sdata_section): Test unconditionally. * configure: Regenerated. --- ChangeLog | 8 ++++ configure | 137 +++++++++-------------------------------------------------- configure.ac | 118 ++++++++++++-------------------------------------- 3 files changed, 54 insertions(+), 209 deletions(-) diff --git a/ChangeLog b/ChangeLog index 55c2a0d213..d1aeb06ee9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2015-10-29 Joseph Myers + * configure.ac (libc_cv_asm_protected_directive): Remove configure + test. + (libc_cv_visibility_attribute): Likewise. + (libc_cv_protected_data): Test unconditionally. + (libc_cv_broken_visibility_attribute): Remove configure test. + (libc_cv_have_sdata_section): Test unconditionally. + * configure: Regenerated. + * include/libc-internal.h (libc_max_align_t): Remove typedef. * include/scratch_buffer.h: Include instead of . diff --git a/configure b/configure index d8e2a68295..d63e0b10ad 100755 --- a/configure +++ b/configure @@ -5304,136 +5304,41 @@ if test $libc_cv_asm_set_directive = yes; then fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for .protected and .hidden assembler directive" >&5 -$as_echo_n "checking for .protected and .hidden assembler directive... " >&6; } -if ${libc_cv_asm_protected_directive+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat > conftest.s <&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - libc_cv_asm_protected_directive=yes -else - as_fn_error $? "assembler support for symbol visibility is required" "$LINENO" 5 -fi -rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_protected_directive" >&5 -$as_echo "$libc_cv_asm_protected_directive" >&6; } - -if test $libc_cv_asm_protected_directive = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether __attribute__((visibility())) is supported" >&5 -$as_echo_n "checking whether __attribute__((visibility())) is supported... " >&6; } -if ${libc_cv_visibility_attribute+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat > conftest.c <&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - if grep '\.hidden.*foo' conftest.s >/dev/null; then - if grep '\.protected.*bar' conftest.s >/dev/null; then - libc_cv_visibility_attribute=yes - fi - fi - fi - rm -f conftest.{c,s} - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_visibility_attribute" >&5 -$as_echo "$libc_cv_visibility_attribute" >&6; } - if test $libc_cv_visibility_attribute != yes; then - as_fn_error $? "compiler support for visibility attribute is required" "$LINENO" 5 - fi -fi - -if test $libc_cv_visibility_attribute = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker support for protected data symbol" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker support for protected data symbol" >&5 $as_echo_n "checking linker support for protected data symbol... " >&6; } if ${libc_cv_protected_data+:} false; then : $as_echo_n "(cached) " >&6 else cat > conftest.c <&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then - cat > conftest.c < conftest.c <&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then - libc_cv_protected_data=yes - fi + libc_cv_protected_data=yes fi - rm -f conftest.* + fi + rm -f conftest.* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_protected_data" >&5 $as_echo "$libc_cv_protected_data" >&6; } -else - libc_cv_protected_data=no -fi -if test $libc_cv_visibility_attribute = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken __attribute__((visibility()))" >&5 -$as_echo_n "checking for broken __attribute__((visibility()))... " >&6; } -if ${libc_cv_broken_visibility_attribute+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat > conftest.c <&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - if grep '\.hidden[ _]foo' conftest.s >/dev/null; then - libc_cv_broken_visibility_attribute=no - fi - fi - rm -f conftest.c conftest.s - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_broken_visibility_attribute" >&5 -$as_echo "$libc_cv_broken_visibility_attribute" >&6; } - if test $libc_cv_broken_visibility_attribute = yes; then - as_fn_error $? "working compiler support for visibility attribute is required" "$LINENO" 5 - fi -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken __attribute__((alias()))" >&5 $as_echo_n "checking for broken __attribute__((alias()))... " >&6; } if ${libc_cv_broken_alias_attribute+:} false; then : @@ -5468,27 +5373,25 @@ if test $libc_cv_broken_alias_attribute = yes; then as_fn_error $? "working alias attribute support required" "$LINENO" 5 fi -if test $libc_cv_visibility_attribute = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to put _rtld_local into .sdata section" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to put _rtld_local into .sdata section" >&5 $as_echo_n "checking whether to put _rtld_local into .sdata section... " >&6; } if ${libc_cv_have_sdata_section+:} false; then : $as_echo_n "(cached) " >&6 else echo "int i;" > conftest.c - libc_cv_have_sdata_section=no - if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \ - | grep '\.sdata' >/dev/null; then - libc_cv_have_sdata_section=yes - fi - rm -f conftest.c conftest.so + libc_cv_have_sdata_section=no + if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \ + | grep '\.sdata' >/dev/null; then + libc_cv_have_sdata_section=yes + fi + rm -f conftest.c conftest.so fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_have_sdata_section" >&5 $as_echo "$libc_cv_have_sdata_section" >&6; } - if test $libc_cv_have_sdata_section = yes; then - $as_echo "#define HAVE_SDATA_SECTION 1" >>confdefs.h +if test $libc_cv_have_sdata_section = yes; then + $as_echo "#define HAVE_SDATA_SECTION 1" >>confdefs.h - fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for .preinit_array/.init_array/.fini_array support" >&5 diff --git a/configure.ac b/configure.ac index ffa44ce6d8..6a56826516 100644 --- a/configure.ac +++ b/configure.ac @@ -1105,89 +1105,25 @@ if test $libc_cv_asm_set_directive = yes; then AC_DEFINE(HAVE_ASM_SET_DIRECTIVE) fi -AC_CACHE_CHECK(for .protected and .hidden assembler directive, - libc_cv_asm_protected_directive, [dnl -cat > conftest.s <&AS_MESSAGE_LOG_FD); then - libc_cv_asm_protected_directive=yes -else - AC_MSG_ERROR(assembler support for symbol visibility is required) -fi -rm -f conftest*]) - -if test $libc_cv_asm_protected_directive = yes; then - AC_CACHE_CHECK(whether __attribute__((visibility())) is supported, - libc_cv_visibility_attribute, - [cat > conftest.c <&AS_MESSAGE_LOG_FD); then - if grep '\.hidden.*foo' conftest.s >/dev/null; then - if grep '\.protected.*bar' conftest.s >/dev/null; then - libc_cv_visibility_attribute=yes - fi - fi - fi - rm -f conftest.{c,s} - ]) - if test $libc_cv_visibility_attribute != yes; then - AC_MSG_ERROR(compiler support for visibility attribute is required) - fi -fi - -if test $libc_cv_visibility_attribute = yes; then - AC_CACHE_CHECK(linker support for protected data symbol, - libc_cv_protected_data, - [cat > conftest.c < conftest.c < conftest.c < conftest.c < conftest.c <&AS_MESSAGE_LOG_FD); 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_MSG_ERROR(working compiler support for visibility attribute is required) - fi -fi - AC_CACHE_CHECK(for broken __attribute__((alias())), libc_cv_broken_alias_attribute, [cat > conftest.c < conftest.c - libc_cv_have_sdata_section=no - if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \ - | grep '\.sdata' >/dev/null; then - libc_cv_have_sdata_section=yes - fi - rm -f conftest.c conftest.so - ]) - if test $libc_cv_have_sdata_section = yes; then - AC_DEFINE(HAVE_SDATA_SECTION) - fi +AC_CACHE_CHECK(whether to put _rtld_local into .sdata section, + libc_cv_have_sdata_section, + [echo "int i;" > conftest.c + libc_cv_have_sdata_section=no + if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \ + | grep '\.sdata' >/dev/null; then + libc_cv_have_sdata_section=yes + fi + rm -f conftest.c conftest.so + ]) +if test $libc_cv_have_sdata_section = yes; then + AC_DEFINE(HAVE_SDATA_SECTION) fi AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support, -- cgit 1.4.1