summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-10-19 22:34:20 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-10-19 22:34:20 +0000
commit864198ed3011a446f42fc9dcb6d39617ce2477ea (patch)
tree3e5120d147d5eac8e145e2313b21df921a4b72ed
parentd10a3ab27329c49a0feb86a10affb1f69054e4ab (diff)
downloadglibc-864198ed3011a446f42fc9dcb6d39617ce2477ea.tar.gz
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.
-rw-r--r--ChangeLog13
-rw-r--r--config.h.in3
-rwxr-xr-xconfigure24
-rw-r--r--configure.ac17
-rw-r--r--elf/tst-unique1.c2
-rw-r--r--elf/tst-unique1mod1.c2
-rw-r--r--elf/tst-unique1mod2.c2
-rw-r--r--elf/tst-unique2.c4
-rw-r--r--elf/tst-unique2mod1.c2
-rw-r--r--elf/tst-unique2mod2.c2
10 files changed, 13 insertions, 58 deletions
diff --git a/ChangeLog b/ChangeLog
index 0fdbac0d4b..4e886597b0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,18 @@
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.
* resolv/Makefile (+cflags): Do not use -Wno-strict-prototypes.
diff --git a/config.h.in b/config.h.in
index 44e859088b..1418756eee 100644
--- a/config.h.in
+++ b/config.h.in
@@ -28,9 +28,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 bd4cabdfe8..8aea9925aa 100755
--- a/configure
+++ b/configure
@@ -5337,30 +5337,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 e6cab9c5bd..e502aa5db2 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 46d41d9ff4..17af6f1b18 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 f59029d055..84b1f908d6 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 aa28f29ba9..126ca1ac6c 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 7bb0687364..442675458b 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 b7e491b2e5..7cdb0eb0a0 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 aa28f29ba9..126ca1ac6c 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