Remove gnu_unique_object configure test.

There is a configure test for assembler support for the
gnu_unique_object symbol type.  This support was added in binutils
2.20, so is present in all versions supported for building glibc.

Thus, I think the configure test can be removed; this patch does so.
Now, there is a caveat that the gas NEWS entry refers to this as a
feature for GNU/Linux targets.  But the condition is use of
ELFOSABI_GNU or ELFOSABI_NONE.  ELFOSABI_GNU covers Hurd as well as
GNU/Linux (as was the case with the older ELFOSABI_LINUX name), and
ELFOSABI_NONE means this is effectively OS-independent.  Furthermore,
I think a correct binutils port for any glibc target ought to support
this feature for use with glibc; glibc supports this as an
OS-independent feature (the configure test is only about glibc
testcases).

Tested for x86_64 (testsuite, and that installed shared libraries are
unchanged by the patch).

	* configure.ac (libc_cv_asm_unique_object): Remove configure test.
	* configure: Regenerated.
	* config.h.in (HAVE_ASM_UNIQUE_OBJECT): Remove #undef.
	* elf/tst-unique1.c (do_test) [HAVE_ASM_UNIQUE_OBJECT]: Make code
	unconditional.
	* elf/tst-unique1mod1.c [HAVE_ASM_UNIQUE_OBJECT]: Likewise.
	* elf/tst-unique1mod2.c [HAVE_ASM_UNIQUE_OBJECT]: Likewise.
	* elf/tst-unique2.c (do_test) [HAVE_ASM_UNIQUE_OBJECT]: Likewise.
	(do_test) [!HAVE_ASM_UNIQUE_OBJECT]: Remove conditional code.
	* elf/tst-unique2mod1.c [HAVE_ASM_UNIQUE_OBJECT]: Make code
	unconditional.
	* elf/tst-unique2mod2.c [HAVE_ASM_UNIQUE_OBJECT]: Likewise.
This commit is contained in:
Joseph Myers 2015-10-19 22:34:20 +00:00
parent d10a3ab273
commit 864198ed30
10 changed files with 13 additions and 58 deletions

View File

@ -1,5 +1,18 @@
2015-10-19 Joseph Myers <joseph@codesourcery.com> 2015-10-19 Joseph Myers <joseph@codesourcery.com>
* configure.ac (libc_cv_asm_unique_object): Remove configure test.
* configure: Regenerated.
* config.h.in (HAVE_ASM_UNIQUE_OBJECT): Remove #undef.
* elf/tst-unique1.c (do_test) [HAVE_ASM_UNIQUE_OBJECT]: Make code
unconditional.
* elf/tst-unique1mod1.c [HAVE_ASM_UNIQUE_OBJECT]: Likewise.
* elf/tst-unique1mod2.c [HAVE_ASM_UNIQUE_OBJECT]: Likewise.
* elf/tst-unique2.c (do_test) [HAVE_ASM_UNIQUE_OBJECT]: Likewise.
(do_test) [!HAVE_ASM_UNIQUE_OBJECT]: Remove conditional code.
* elf/tst-unique2mod1.c [HAVE_ASM_UNIQUE_OBJECT]: Make code
unconditional.
* elf/tst-unique2mod2.c [HAVE_ASM_UNIQUE_OBJECT]: Likewise.
* posix/Makefile (CFLAGS-regex.c): Remove variable. * posix/Makefile (CFLAGS-regex.c): Remove variable.
* resolv/Makefile (+cflags): Do not use -Wno-strict-prototypes. * resolv/Makefile (+cflags): Do not use -Wno-strict-prototypes.

View File

@ -28,9 +28,6 @@
/* Define if the assembler supports the `.set' directive. */ /* Define if the assembler supports the `.set' directive. */
#undef HAVE_ASM_SET_DIRECTIVE #undef HAVE_ASM_SET_DIRECTIVE
/* Define if the assembler supports the gnu_unique_object symbol type. */
#undef HAVE_ASM_UNIQUE_OBJECT
/* On powerpc64, use overlapping .opd entries. */ /* On powerpc64, use overlapping .opd entries. */
#undef USE_PPC64_OVERLAPPING_OPD #undef USE_PPC64_OVERLAPPING_OPD

24
configure vendored
View File

@ -5337,30 +5337,6 @@ if test $libc_cv_asm_set_directive = yes; then
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for assembler gnu_unique_object symbol type" >&5
$as_echo_n "checking for assembler gnu_unique_object symbol type... " >&6; }
if ${libc_cv_asm_unique_object+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.s <<EOF
${libc_cv_dot_text}
_sym:
.type _sym, %gnu_unique_object
EOF
if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5; then
libc_cv_asm_unique_object=yes
else
libc_cv_asm_unique_object=no
fi
rm -f conftest*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_unique_object" >&5
$as_echo "$libc_cv_asm_unique_object" >&6; }
if test $libc_cv_asm_unique_object = yes; then
$as_echo "#define HAVE_ASM_UNIQUE_OBJECT 1" >>confdefs.h
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for .protected and .hidden assembler directive" >&5 { $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; } $as_echo_n "checking for .protected and .hidden assembler directive... " >&6; }
if ${libc_cv_asm_protected_directive+:} false; then : if ${libc_cv_asm_protected_directive+:} false; then :

View File

@ -1121,23 +1121,6 @@ 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 assembler gnu_unique_object symbol type,
libc_cv_asm_unique_object, [dnl
cat > conftest.s <<EOF
${libc_cv_dot_text}
_sym:
.type _sym, %gnu_unique_object
EOF
if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
libc_cv_asm_unique_object=yes
else
libc_cv_asm_unique_object=no
fi
rm -f conftest*])
if test $libc_cv_asm_unique_object = yes; then
AC_DEFINE(HAVE_ASM_UNIQUE_OBJECT)
fi
AC_CACHE_CHECK(for .protected and .hidden assembler directive, AC_CACHE_CHECK(for .protected and .hidden assembler directive,
libc_cv_asm_protected_directive, [dnl libc_cv_asm_protected_directive, [dnl
cat > conftest.s <<EOF cat > conftest.s <<EOF

View File

@ -6,7 +6,6 @@
static int static int
do_test (void) do_test (void)
{ {
#ifdef HAVE_ASM_UNIQUE_OBJECT
void *h1 = dlopen ("tst-unique1mod1.so", RTLD_LAZY); void *h1 = dlopen ("tst-unique1mod1.so", RTLD_LAZY);
if (h1 == NULL) if (h1 == NULL)
{ {
@ -68,7 +67,6 @@ do_test (void)
puts ("f from tst-unique1mod2 failed"); puts ("f from tst-unique1mod2 failed");
return 1; return 1;
} }
#endif
return 0; return 0;
} }

View File

@ -1,6 +1,5 @@
#include <config.h> #include <config.h>
#ifdef HAVE_ASM_UNIQUE_OBJECT
asm (".data;" asm (".data;"
".globl var\n" ".globl var\n"
".type var, %gnu_unique_object\n" ".type var, %gnu_unique_object\n"
@ -15,4 +14,3 @@ f (void)
var = 1; var = 1;
return &var; return &var;
} }
#endif

View File

@ -1,6 +1,5 @@
#include <config.h> #include <config.h>
#ifdef HAVE_ASM_UNIQUE_OBJECT
asm (".data;" asm (".data;"
".globl var\n" ".globl var\n"
".type var, %gnu_unique_object\n" ".type var, %gnu_unique_object\n"
@ -14,4 +13,3 @@ f (int *p)
{ {
return &var != p || *p != 1; return &var != p || *p != 1;
} }
#endif

View File

@ -7,7 +7,6 @@ extern int var;
static int static int
do_test (void) do_test (void)
{ {
#ifdef HAVE_ASM_UNIQUE_OBJECT
var = 1; var = 1;
void *h = dlopen ("tst-unique2mod2.so", RTLD_LAZY); void *h = dlopen ("tst-unique2mod2.so", RTLD_LAZY);
@ -23,9 +22,6 @@ do_test (void)
return 1; return 1;
} }
return f (&var); return f (&var);
#else
return 0;
#endif
} }
#define TEST_FUNCTION do_test () #define TEST_FUNCTION do_test ()

View File

@ -1,10 +1,8 @@
#include <config.h> #include <config.h>
#ifdef HAVE_ASM_UNIQUE_OBJECT
asm (".data;" asm (".data;"
".globl var\n" ".globl var\n"
".type var, %gnu_unique_object\n" ".type var, %gnu_unique_object\n"
".size var, 4\n" ".size var, 4\n"
"var:.zero 4\n" "var:.zero 4\n"
".previous"); ".previous");
#endif

View File

@ -1,6 +1,5 @@
#include <config.h> #include <config.h>
#ifdef HAVE_ASM_UNIQUE_OBJECT
asm (".data;" asm (".data;"
".globl var\n" ".globl var\n"
".type var, %gnu_unique_object\n" ".type var, %gnu_unique_object\n"
@ -14,4 +13,3 @@ f (int *p)
{ {
return &var != p || *p != 1; return &var != p || *p != 1;
} }
#endif