diff mbox

Remove gnu_unique_object configure test

Message ID alpine.DEB.2.10.1510160019480.6002@digraph.polyomino.org.uk
State New
Headers show

Commit Message

Joseph Myers Oct. 16, 2015, 12:20 a.m. UTC
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).  Roland, can you confirm that this feature is indeed
supported by binutils for NaCl?

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

2015-10-16  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.

Comments

Mike Frysinger Oct. 17, 2015, 2:34 a.m. UTC | #1
looks fine to me
-mike
Joseph Myers Oct. 19, 2015, 9:27 p.m. UTC | #2
I'll await confirmation from Roland that this feature is indeed supported 
by binutils for NaCl before pushing this patch.
Roland McGrath Oct. 19, 2015, 10:22 p.m. UTC | #3
> I'll await confirmation from Roland that this feature is indeed supported 
> by binutils for NaCl before pushing this patch.

Yes, NaCl binutils starts at 2.24 (and only 2.25.1+ really matters).
For ELF feature purposes, NaCl targets are like other GNU targets.
diff mbox

Patch

diff --git a/config.h.in b/config.h.in
index 40c2d45..7137cd1 100644
--- a/config.h.in
+++ b/config.h.in
@@ -34,9 +34,6 @@ 
 /* Define if the assembler supports the `.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.  */
 #undef  USE_PPC64_OVERLAPPING_OPD
 
diff --git a/configure b/configure
index d4cb9cd..2f05ee9 100755
--- a/configure
+++ b/configure
@@ -5339,30 +5339,6 @@  if test $libc_cv_asm_set_directive = yes; then
 
 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_n "checking for .protected and .hidden assembler directive... " >&6; }
 if ${libc_cv_asm_protected_directive+:} false; then :
diff --git a/configure.ac b/configure.ac
index 402de30..3bcb291 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1121,23 +1121,6 @@  if test $libc_cv_asm_set_directive = yes; then
   AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
 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,
 	       libc_cv_asm_protected_directive, [dnl
 cat > conftest.s <<EOF
diff --git a/elf/tst-unique1.c b/elf/tst-unique1.c
index 46d41d9..17af6f1 100644
--- a/elf/tst-unique1.c
+++ b/elf/tst-unique1.c
@@ -6,7 +6,6 @@ 
 static int
 do_test (void)
 {
-#ifdef HAVE_ASM_UNIQUE_OBJECT
   void *h1 = dlopen ("tst-unique1mod1.so", RTLD_LAZY);
   if (h1 == NULL)
     {
@@ -68,7 +67,6 @@  do_test (void)
       puts ("f from tst-unique1mod2 failed");
       return 1;
     }
-#endif
   return 0;
 }
 
diff --git a/elf/tst-unique1mod1.c b/elf/tst-unique1mod1.c
index f59029d..84b1f90 100644
--- a/elf/tst-unique1mod1.c
+++ b/elf/tst-unique1mod1.c
@@ -1,6 +1,5 @@ 
 #include <config.h>
 
-#ifdef HAVE_ASM_UNIQUE_OBJECT
 asm (".data;"
      ".globl var\n"
      ".type var, %gnu_unique_object\n"
@@ -15,4 +14,3 @@  f (void)
   var = 1;
   return &var;
 }
-#endif
diff --git a/elf/tst-unique1mod2.c b/elf/tst-unique1mod2.c
index aa28f29..126ca1a 100644
--- a/elf/tst-unique1mod2.c
+++ b/elf/tst-unique1mod2.c
@@ -1,6 +1,5 @@ 
 #include <config.h>
 
-#ifdef HAVE_ASM_UNIQUE_OBJECT
 asm (".data;"
      ".globl var\n"
      ".type var, %gnu_unique_object\n"
@@ -14,4 +13,3 @@  f (int *p)
 {
   return &var != p || *p != 1;
 }
-#endif
diff --git a/elf/tst-unique2.c b/elf/tst-unique2.c
index 7bb0687..4426754 100644
--- a/elf/tst-unique2.c
+++ b/elf/tst-unique2.c
@@ -7,7 +7,6 @@  extern int var;
 static int
 do_test (void)
 {
-#ifdef HAVE_ASM_UNIQUE_OBJECT
   var = 1;
 
   void *h = dlopen ("tst-unique2mod2.so", RTLD_LAZY);
@@ -23,9 +22,6 @@  do_test (void)
       return 1;
     }
   return f (&var);
-#else
-  return 0;
-#endif
 }
 
 #define TEST_FUNCTION do_test ()
diff --git a/elf/tst-unique2mod1.c b/elf/tst-unique2mod1.c
index b7e491b..7cdb0eb 100644
--- a/elf/tst-unique2mod1.c
+++ b/elf/tst-unique2mod1.c
@@ -1,10 +1,8 @@ 
 #include <config.h>
 
-#ifdef HAVE_ASM_UNIQUE_OBJECT
 asm (".data;"
      ".globl var\n"
      ".type var, %gnu_unique_object\n"
      ".size var, 4\n"
      "var:.zero 4\n"
      ".previous");
-#endif
diff --git a/elf/tst-unique2mod2.c b/elf/tst-unique2mod2.c
index aa28f29..126ca1a 100644
--- a/elf/tst-unique2mod2.c
+++ b/elf/tst-unique2mod2.c
@@ -1,6 +1,5 @@ 
 #include <config.h>
 
-#ifdef HAVE_ASM_UNIQUE_OBJECT
 asm (".data;"
      ".globl var\n"
      ".type var, %gnu_unique_object\n"
@@ -14,4 +13,3 @@  f (int *p)
 {
   return &var != p || *p != 1;
 }
-#endif