aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/powerpc/powerpc64/configure.in
diff options
context:
space:
mode:
authorAndreas Jaeger <jaegerandi@gmail.com>2012-03-28 09:22:05 +0200
committerAndreas Jaeger <jaegerandi@gmail.com>2012-03-28 09:22:05 +0200
commit02380086699207fc8e58619f35f60da12470137e (patch)
tree9b337733100552d829ccce5beea1cfb3fe5e5532 /sysdeps/powerpc/powerpc64/configure.in
parent09ae94c11b4309b425fbbfaa095e64cac2ae8cb8 (diff)
downloadglibc-02380086699207fc8e58619f35f60da12470137e.zip
glibc-02380086699207fc8e58619f35f60da12470137e.tar.gz
glibc-02380086699207fc8e58619f35f60da12470137e.tar.bz2
Move sysdeps/powerpc/powerpc64/elf files
* sysdeps/powerpc/powerpc64/elf/bzero.S: Moved to ... * sysdeps/powerpc/powerpc64/bzero.S: ... here. * sysdeps/powerpc/powerpc64/elf/entry.h: Moved to ... * sysdeps/powerpc/powerpc64/entry.h: ... here. * sysdeps/powerpc/powerpc64/elf/start.S: Moved to ... * sysdeps/powerpc/powerpc64/start.S: here. * sysdeps/powerpc/powerpc64/elf/Makefile: Merge into ... * sysdeps/powerpc/powerpc64/Makefile: ... this. * sysdeps/powerpc/powerpc64/elf/configure.in: Merge into ... * sysdeps/powerpc/powerpc64/configure.in: ... this. * sysdeps/powerpc/powerpc64/elf/configure: Delete file.
Diffstat (limited to 'sysdeps/powerpc/powerpc64/configure.in')
-rw-r--r--sysdeps/powerpc/powerpc64/configure.in53
1 files changed, 53 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc64/configure.in b/sysdeps/powerpc/powerpc64/configure.in
index 67aac66..7d333a7 100644
--- a/sysdeps/powerpc/powerpc64/configure.in
+++ b/sysdeps/powerpc/powerpc64/configure.in
@@ -40,3 +40,56 @@ rm -f conftest.c conftest.s
if test x$libc_cv_overlapping_opd = xyes; then
AC_DEFINE(USE_PPC64_OVERLAPPING_OPD)
fi
+
+# Check for support of thread-local storage handling in assembler and
+# linker.
+AC_CACHE_CHECK(for powerpc64 TLS support, libc_cv_powerpc64_tls, [dnl
+cat > conftest.s <<\EOF
+ .section ".tdata","awT",@progbits
+x: .quad 1
+x1: .quad 1
+x2: .quad 1
+x3: .quad 1
+x4: .long 1
+ .section ".toc","aw"
+.LC0:
+ .quad x@dtpmod
+ .quad x@dtprel
+.LC1:
+ .quad x1@dtpmod
+ .quad 0
+.LC2:
+ .quad x@tprel
+ .text
+ addi 3,2,x@got@tlsgd
+ addi 3,2,.LC0@toc
+ addi 3,2,x1@got@tlsld
+ addi 9,3,x1@dtprel
+ addis 9,3,x2@dtprel@ha
+ addi 9,9,x2@dtprel@l
+ ld 9,x3@got@dtprel(2)
+ addi 3,2,.LC0@toc
+ lwz 0,x1@dtprel(3)
+ ld 0,x1@dtprel(3)
+ addis 9,3,x2@dtprel@ha
+ lwz 0,x2@dtprel@l(9)
+ ld 0,x2@dtprel@l(9)
+ ld 9,x3@got@dtprel(2)
+ ld 9,x@got@tprel(2)
+ add 9,9,x@tls
+ ld 9,.LC2@toc(2)
+ add 9,9,.LC2@tls
+ addi 9,13,x1@tprel
+ addis 9,13,x2@tprel@ha
+ addi 9,9,x2@tprel@l
+EOF
+dnl
+if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
+ libc_cv_powerpc64_tls=yes
+else
+ libc_cv_powerpc64_tls=no
+fi
+rm -f conftest*])
+if test $libc_cv_powerpc64_tls = no; then
+ AC_MSG_ERROR([the assembler must support TLS])
+fi