aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2015-08-14 22:07:40 -0400
committerMike Frysinger <vapier@gentoo.org>2015-08-18 02:36:31 -0400
commit43329fe1396080faf025118b31053fd19e029c12 (patch)
treecb4d58ab2b6ec6cb42202a4f4ee0101eebd3493f
parent3fb4cfaf1f1e8d58312720c70d224e2050d469fc (diff)
downloadglibc-43329fe1396080faf025118b31053fd19e029c12.tar
glibc-43329fe1396080faf025118b31053fd19e029c12.tar.gz
glibc-43329fe1396080faf025118b31053fd19e029c12.tar.bz2
glibc-43329fe1396080faf025118b31053fd19e029c12.zip
hppa: assume TLS everywhere
This brings hppa inline with all the other arches and main code where we require TLS support everywhere. That means dropping the defines USE_TLS and USE___THREAD, and dropping the binutils check (since we already have a version requirement that is new enough).
-rw-r--r--ChangeLog8
-rw-r--r--sysdeps/hppa/configure57
-rw-r--r--sysdeps/hppa/configure.ac45
-rw-r--r--sysdeps/hppa/dl-machine.h4
-rw-r--r--sysdeps/hppa/libc-tls.c4
-rw-r--r--sysdeps/hppa/nptl/tls.h3
6 files changed, 10 insertions, 111 deletions
diff --git a/ChangeLog b/ChangeLog
index 7e4d40087f..1ad94945ec 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2015-08-18 Mike Frysinger <vapier@gentoo.org>
+
+ * sysdeps/hppa/configure.ac: Delete binutils tls checks.
+ * sysdeps/hppa/configure: Regenerated.
+ * sysdeps/hppa/dl-machine.h: Delete USE_TLS and USE___THREAD checks.
+ * sysdeps/hppa/libc-tls.c: Delete USE_TLS checks.
+ * sysdeps/hppa/nptl/tls.h: Likewise.
+
2015-08-17 Joseph Myers <joseph@codesourcery.com>
[BZ #18823]
diff --git a/sysdeps/hppa/configure b/sysdeps/hppa/configure
index d78e1bcd64..2cfe6cbea1 100644
--- a/sysdeps/hppa/configure
+++ b/sysdeps/hppa/configure
@@ -30,60 +30,3 @@ $as_echo "$libc_cv_asm_line_sep" >&6; }
cat >>confdefs.h <<_ACEOF
#define ASM_LINE_SEP $libc_cv_asm_line_sep
_ACEOF
-
-
-# Check for support of thread-local storage handling in assembler and
-# linker.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for hppa TLS support" >&5
-$as_echo_n "checking for hppa TLS support... " >&6; }
-if ${libc_cv_hppa_tls+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat > conftest.s <<\EOF
-; Setup tls data
-.section ".tdata","awT",@progbits
-foo: .data 32
- .text
-; Test general dyanmic relocations
-test0:
- addil LT'foo-$tls_gdidx$, %r19
- ldo RT'foo-$tls_gdidx$(%r1), %r26
- b __tls_get_addr
- nop
-; Test local dynamic relocations
-test1:
- addil LT'foo-$tls_ldidx$, %r19
- b __tls_get_addr
- ldo RT'foo-$tls_ldidx$(%r1), %r26
- ldo RR'foo-$tls_dtpoff$(%r1), %r25
- ; More variables can be loaded...
-; Test initial exec reloctiosn
-test2:
- mfctl %cr27, %r26
- addil LT'foo-$tls_ieoff$, %r19
- ldw RT'foo-$tls_ieoff$(%r1), %r25
- add %r26, %r25, %r24
-; Test local exec relocations
-test3:
- mfctl %cr27, %r26
- addil LR'foo-$tls_leoff$, %r26
- ldo RR'foo-$tls_leoff$(%r1), %r25
-; Done all the TLS tests.
-EOF
-if { ac_try='${CC-cc} -c $CFLAGS 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_hppa_tls=yes
-else
- libc_cv_hppa_tls=no
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_hppa_tls" >&5
-$as_echo "$libc_cv_hppa_tls" >&6; }
-if test $libc_cv_hppa_tls = no; then
- as_fn_error $? "the assembler must support TLS" "$LINENO" 5
-fi
diff --git a/sysdeps/hppa/configure.ac b/sysdeps/hppa/configure.ac
index 40f33603e3..1ec417b947 100644
--- a/sysdeps/hppa/configure.ac
+++ b/sysdeps/hppa/configure.ac
@@ -19,48 +19,3 @@ else
fi
rm -f conftest*])
AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
-
-# Check for support of thread-local storage handling in assembler and
-# linker.
-AC_CACHE_CHECK(for hppa TLS support, libc_cv_hppa_tls, [dnl
-cat > conftest.s <<\EOF
-; Setup tls data
-.section ".tdata","awT",@progbits
-foo: .data 32
- .text
-; Test general dyanmic relocations
-test0:
- addil LT'foo-$tls_gdidx$, %r19
- ldo RT'foo-$tls_gdidx$(%r1), %r26
- b __tls_get_addr
- nop
-; Test local dynamic relocations
-test1:
- addil LT'foo-$tls_ldidx$, %r19
- b __tls_get_addr
- ldo RT'foo-$tls_ldidx$(%r1), %r26
- ldo RR'foo-$tls_dtpoff$(%r1), %r25
- ; More variables can be loaded...
-; Test initial exec reloctiosn
-test2:
- mfctl %cr27, %r26
- addil LT'foo-$tls_ieoff$, %r19
- ldw RT'foo-$tls_ieoff$(%r1), %r25
- add %r26, %r25, %r24
-; Test local exec relocations
-test3:
- mfctl %cr27, %r26
- addil LR'foo-$tls_leoff$, %r26
- ldo RR'foo-$tls_leoff$(%r1), %r25
-; Done all the TLS tests.
-EOF
-dnl
-if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
- libc_cv_hppa_tls=yes
-else
- libc_cv_hppa_tls=no
-fi
-rm -f conftest*])
-if test $libc_cv_hppa_tls = no; then
- AC_MSG_ERROR([the assembler must support TLS])
-fi
diff --git a/sysdeps/hppa/dl-machine.h b/sysdeps/hppa/dl-machine.h
index 5f8efd4f49..7d0cf2c8b9 100644
--- a/sysdeps/hppa/dl-machine.h
+++ b/sysdeps/hppa/dl-machine.h
@@ -465,7 +465,7 @@ asm ( \
a TLS variable, so references should not be allowed to define the value.
ELF_RTYPE_CLASS_COPY iff TYPE should not be allowed to resolve to one
of the main executable's symbols, as for a COPY reloc. */
-#if defined USE_TLS && (!defined RTLD_BOOTSTRAP || USE___THREAD)
+#if !defined RTLD_BOOTSTRAP
# define elf_machine_type_class(type) \
((((type) == R_PARISC_IPLT \
|| (type) == R_PARISC_EPLT \
@@ -684,7 +684,7 @@ elf_machine_rela (struct link_map *map,
MIN (sym->st_size, refsym->st_size));
return;
-#if defined USE_TLS && (!defined RTLD_BOOTSTRAP)
+#if !defined RTLD_BOOTSTRAP
case R_PARISC_TLS_DTPMOD32:
value = sym_map->l_tls_modid;
break;
diff --git a/sysdeps/hppa/libc-tls.c b/sysdeps/hppa/libc-tls.c
index e7ec5904ed..647992a96e 100644
--- a/sysdeps/hppa/libc-tls.c
+++ b/sysdeps/hppa/libc-tls.c
@@ -19,8 +19,6 @@
#include <csu/libc-tls.c>
#include <dl-tls.h>
-#if USE_TLS
-
/* On hppa, linker optimizations are not required, so __tls_get_addr
can be called even in statically linked binaries. In this case module
must be always 1 and PT_TLS segment exist in the binary, otherwise it
@@ -32,5 +30,3 @@ __tls_get_addr (tls_index *ti)
dtv_t *dtv = THREAD_DTV ();
return (char *) dtv[1].pointer.val + ti->ti_offset;
}
-
-#endif
diff --git a/sysdeps/hppa/nptl/tls.h b/sysdeps/hppa/nptl/tls.h
index ab271cf241..88a0486c27 100644
--- a/sysdeps/hppa/nptl/tls.h
+++ b/sysdeps/hppa/nptl/tls.h
@@ -41,9 +41,6 @@ typedef union dtv
# include <tcb-offsets.h>
#endif /* __ASSEMBLER__ */
-/* Signal that TLS support is available. */
-#define USE_TLS 1
-
#ifndef __ASSEMBLER__
/* Get system call information. */