diff options
author | Roland McGrath <roland@gnu.org> | 2003-02-25 23:27:06 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2003-02-25 23:27:06 +0000 |
commit | fec417190420a427bec2340853f42051da251b65 (patch) | |
tree | 2a346cb4f4a9d498de755502484a3b4937df79ec /sysdeps/powerpc | |
parent | 3c2a3b41063d5f18d45cbc3039c8faf6ef813175 (diff) | |
download | glibc-fec417190420a427bec2340853f42051da251b65.tar.gz glibc-fec417190420a427bec2340853f42051da251b65.tar.xz glibc-fec417190420a427bec2340853f42051da251b65.zip |
2003-02-25 Steven Munroe <sjmunroe@us.ibm.com>
* elf/elf.h: Add new R_PPC64_* relocs for TLS. * elf/tls-macros.h [__powerpc64__] (TLS_LE, TLS_IE, TLS_LD, TLS_GD): Define. * sysdeps/powerpc/powerpc64/elf/configure.in: New file. * sysdeps/powerpc/powerpc64/elf/configure: New file (generated). * sysdeps/powerpc/elf/libc-start.c (__libc_start_main): Do DL_SYSDEP_OSCHECK here, matching 2002-12-01 change to generic file.
Diffstat (limited to 'sysdeps/powerpc')
-rw-r--r-- | sysdeps/powerpc/powerpc64/elf/configure | 76 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/elf/configure.in | 61 |
2 files changed, 137 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc64/elf/configure b/sysdeps/powerpc/powerpc64/elf/configure new file mode 100644 index 0000000000..22aa75f995 --- /dev/null +++ b/sysdeps/powerpc/powerpc64/elf/configure @@ -0,0 +1,76 @@ +# This file is generated from configure.in by Autoconf. DO NOT EDIT! + # Local configure fragment for sysdeps/powerpc64/elf. + +if test "$usetls" != no; then +# Check for support of thread-local storage handling in assembler and +# linker. +echo "$as_me:$LINENO: checking for powerpc64 TLS support" >&5 +echo $ECHO_N "checking for powerpc64 TLS support... $ECHO_C" >&6 +if test "${libc_cv_powerpc64_tls+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + 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 +if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + libc_cv_powerpc64_tls=yes +else + libc_cv_powerpc64_tls=no +fi +rm -f conftest* +fi +echo "$as_me:$LINENO: result: $libc_cv_powerpc64_tls" >&5 +echo "${ECHO_T}$libc_cv_powerpc64_tls" >&6 +if test $libc_cv_powerpc64_tls = yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_TLS_SUPPORT 1 +_ACEOF + +fi +fi + +cat >>confdefs.h <<\_ACEOF +#define PI_STATIC_AND_HIDDEN 1 +_ACEOF + diff --git a/sysdeps/powerpc/powerpc64/elf/configure.in b/sysdeps/powerpc/powerpc64/elf/configure.in new file mode 100644 index 0000000000..98abcf0356 --- /dev/null +++ b/sysdeps/powerpc/powerpc64/elf/configure.in @@ -0,0 +1,61 @@ +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. +# Local configure fragment for sysdeps/powerpc64/elf. + +if test "$usetls" != no; then +# 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 = yes; then + AC_DEFINE(HAVE_TLS_SUPPORT) +fi +fi + +dnl It is always possible to access static and hidden symbols in an +dnl position independent way. +AC_DEFINE(PI_STATIC_AND_HIDDEN) |