1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-30 22:43:12 +03:00

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
<https://sourceware.org/ml/libc-hacker/2002-08/msg00030.html>, 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.
This commit is contained in:
Joseph Myers
2015-10-29 12:48:24 +00:00
parent dbb7600658
commit 2a723ff6ff
3 changed files with 54 additions and 209 deletions

View File

@ -1,5 +1,13 @@
2015-10-29 Joseph Myers <joseph@codesourcery.com> 2015-10-29 Joseph Myers <joseph@codesourcery.com>
* 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/libc-internal.h (libc_max_align_t): Remove typedef.
* include/scratch_buffer.h: Include <stddef.h> instead of * include/scratch_buffer.h: Include <stddef.h> instead of
<libc-internal.h>. <libc-internal.h>.

137
configure vendored
View File

@ -5304,136 +5304,41 @@ if test $libc_cv_asm_set_directive = yes; then
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for .protected and .hidden assembler directive" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker support for protected data symbol" >&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 <<EOF
.protected foo
foo:
.hidden bar
bar:
EOF
if { ac_try='${CC-cc} -c $ASFLAGS conftest.s 1>&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&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 <<EOF
int foo __attribute__ ((visibility ("hidden"))) = 1;
int bar __attribute__ ((visibility ("protected"))) = 1;
EOF
libc_cv_visibility_attribute=no
if { ac_try='${CC-cc} -Werror -S conftest.c -o conftest.s 1>&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&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_n "checking linker support for protected data symbol... " >&6; } $as_echo_n "checking linker support for protected data symbol... " >&6; }
if ${libc_cv_protected_data+:} false; then : if ${libc_cv_protected_data+:} false; then :
$as_echo_n "(cached) " >&6 $as_echo_n "(cached) " >&6
else else
cat > conftest.c <<EOF cat > conftest.c <<EOF
int bar __attribute__ ((visibility ("protected"))) = 1; int bar __attribute__ ((visibility ("protected"))) = 1;
EOF EOF
libc_cv_protected_data=no libc_cv_protected_data=no
if { ac_try='${CC-cc} -nostdlib -nostartfiles -fPIC -shared conftest.c -o conftest.so' if { ac_try='${CC-cc} -nostdlib -nostartfiles -fPIC -shared conftest.c -o conftest.so'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then test $ac_status = 0; }; }; then
cat > conftest.c <<EOF cat > conftest.c <<EOF
extern int bar; extern int bar;
int main (void) { return bar; } int main (void) { return bar; }
EOF EOF
if { ac_try='${CC-cc} -nostdlib -nostartfiles conftest.c -o conftest conftest.so' if { ac_try='${CC-cc} -nostdlib -nostartfiles conftest.c -o conftest conftest.so'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then test $ac_status = 0; }; }; then
libc_cv_protected_data=yes libc_cv_protected_data=yes
fi
fi fi
rm -f conftest.* fi
rm -f conftest.*
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_protected_data" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_protected_data" >&5
$as_echo "$libc_cv_protected_data" >&6; } $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 <<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 { ac_try='${CC-cc} -Werror -S conftest.c -o conftest.s 1>&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&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 "$as_me:${as_lineno-$LINENO}: checking for broken __attribute__((alias()))" >&5
$as_echo_n "checking for broken __attribute__((alias()))... " >&6; } $as_echo_n "checking for broken __attribute__((alias()))... " >&6; }
if ${libc_cv_broken_alias_attribute+:} false; then : 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 as_fn_error $? "working alias attribute support required" "$LINENO" 5
fi 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; } $as_echo_n "checking whether to put _rtld_local into .sdata section... " >&6; }
if ${libc_cv_have_sdata_section+:} false; then : if ${libc_cv_have_sdata_section+:} false; then :
$as_echo_n "(cached) " >&6 $as_echo_n "(cached) " >&6
else else
echo "int i;" > conftest.c echo "int i;" > conftest.c
libc_cv_have_sdata_section=no libc_cv_have_sdata_section=no
if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \ if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
| grep '\.sdata' >/dev/null; then | grep '\.sdata' >/dev/null; then
libc_cv_have_sdata_section=yes libc_cv_have_sdata_section=yes
fi fi
rm -f conftest.c conftest.so rm -f conftest.c conftest.so
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_have_sdata_section" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_have_sdata_section" >&5
$as_echo "$libc_cv_have_sdata_section" >&6; } $as_echo "$libc_cv_have_sdata_section" >&6; }
if test $libc_cv_have_sdata_section = yes; then if test $libc_cv_have_sdata_section = yes; then
$as_echo "#define HAVE_SDATA_SECTION 1" >>confdefs.h $as_echo "#define HAVE_SDATA_SECTION 1" >>confdefs.h
fi
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for .preinit_array/.init_array/.fini_array support" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for .preinit_array/.init_array/.fini_array support" >&5

View File

@ -1105,89 +1105,25 @@ if test $libc_cv_asm_set_directive = yes; then
AC_DEFINE(HAVE_ASM_SET_DIRECTIVE) AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
fi fi
AC_CACHE_CHECK(for .protected and .hidden assembler directive, AC_CACHE_CHECK(linker support for protected data symbol,
libc_cv_asm_protected_directive, [dnl libc_cv_protected_data,
cat > conftest.s <<EOF [cat > conftest.c <<EOF
.protected foo int bar __attribute__ ((visibility ("protected"))) = 1;
foo:
.hidden bar
bar:
EOF EOF
if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then libc_cv_protected_data=no
libc_cv_asm_protected_directive=yes if AC_TRY_COMMAND(${CC-cc} -nostdlib -nostartfiles -fPIC -shared conftest.c -o conftest.so); then
else cat > conftest.c <<EOF
AC_MSG_ERROR(assembler support for symbol visibility is required) extern int bar;
fi int main (void) { return bar; }
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 <<EOF
int foo __attribute__ ((visibility ("hidden"))) = 1;
int bar __attribute__ ((visibility ("protected"))) = 1;
EOF EOF
libc_cv_visibility_attribute=no if AC_TRY_COMMAND(${CC-cc} -nostdlib -nostartfiles conftest.c -o conftest conftest.so); then
if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then libc_cv_protected_data=yes
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 fi
rm -f conftest.{c,s} fi
]) rm -f conftest.*
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 <<EOF
int bar __attribute__ ((visibility ("protected"))) = 1;
EOF
libc_cv_protected_data=no
if AC_TRY_COMMAND(${CC-cc} -nostdlib -nostartfiles -fPIC -shared conftest.c -o conftest.so); then
cat > conftest.c <<EOF
extern int bar;
int main (void) { return bar; }
EOF
if AC_TRY_COMMAND(${CC-cc} -nostdlib -nostartfiles conftest.c -o conftest conftest.so); then
libc_cv_protected_data=yes
fi
fi
rm -f conftest.*
])
else
libc_cv_protected_data=no
fi
AC_SUBST(libc_cv_protected_data) AC_SUBST(libc_cv_protected_data)
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 AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&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())), AC_CACHE_CHECK(for broken __attribute__((alias())),
libc_cv_broken_alias_attribute, libc_cv_broken_alias_attribute,
[cat > conftest.c <<EOF [cat > conftest.c <<EOF
@ -1211,20 +1147,18 @@ if test $libc_cv_broken_alias_attribute = yes; then
AC_MSG_ERROR(working alias attribute support required) AC_MSG_ERROR(working alias attribute support required)
fi fi
if test $libc_cv_visibility_attribute = yes; then AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
AC_CACHE_CHECK(whether to put _rtld_local into .sdata section, libc_cv_have_sdata_section,
libc_cv_have_sdata_section, [echo "int i;" > conftest.c
[echo "int i;" > conftest.c libc_cv_have_sdata_section=no
libc_cv_have_sdata_section=no if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \ | grep '\.sdata' >/dev/null; then
| grep '\.sdata' >/dev/null; then libc_cv_have_sdata_section=yes
libc_cv_have_sdata_section=yes fi
fi rm -f conftest.c conftest.so
rm -f conftest.c conftest.so ])
]) if test $libc_cv_have_sdata_section = yes; then
if test $libc_cv_have_sdata_section = yes; then AC_DEFINE(HAVE_SDATA_SECTION)
AC_DEFINE(HAVE_SDATA_SECTION)
fi
fi fi
AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support, AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,