about summary refs log tree commit diff
path: root/sysdeps/powerpc/powerpc32/elf/configure.in
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2003-03-02 11:45:12 +0000
committerRoland McGrath <roland@gnu.org>2003-03-02 11:45:12 +0000
commitbb0ddc2f1eca652aa8af56825b2ba3182498cc5a (patch)
tree8b03305facff745ff0bd14c50e811dfd77cef343 /sysdeps/powerpc/powerpc32/elf/configure.in
parent3093b1c70cd227c3329d2bbb77cd59ce2cbdcbd4 (diff)
downloadglibc-bb0ddc2f1eca652aa8af56825b2ba3182498cc5a.tar.gz
glibc-bb0ddc2f1eca652aa8af56825b2ba3182498cc5a.tar.xz
glibc-bb0ddc2f1eca652aa8af56825b2ba3182498cc5a.zip
* sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_fixup_plt):
	Don't use weak_extern for dl_rtld_map.  Instead check only if [SHARED].
	(elf_machine_rela): Clean up.

	* sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela): Clean up.

	PowerPC TLS support contributed by Paul Mackerras <paulus@samba.org>.
	* sysdeps/powerpc/powerpc32/elf/configure.in: New file.
	* sysdeps/powerpc/powerpc32/elf/configure: New generated file.
	* elf/tls-macros.h [__powerpc__ && !__powerpc64__]
	(TLS_LE, TLS_IE, TLS_LD, TLS_GD): Define them.
	* sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela): Support
	new relocs for TLS.

	* sysdeps/powerpc/dl-tls.h (TLS_TP_OFFSET, TLS_DTV_OFFSET): Move these
	macros out of [SHARED].
	(TLS_TPREL_VALUE, TLS_DTPREL_VALUE): New macros.

	* elf/elf.h: Define R_PPC_* relocs for TLS support.
	Clean up R_PPC64_* macro definition comments.
Diffstat (limited to 'sysdeps/powerpc/powerpc32/elf/configure.in')
-rw-r--r--sysdeps/powerpc/powerpc32/elf/configure.in42
1 files changed, 42 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc32/elf/configure.in b/sysdeps/powerpc/powerpc32/elf/configure.in
new file mode 100644
index 0000000000..97c300c20b
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/elf/configure.in
@@ -0,0 +1,42 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/powerpc32/elf.
+
+if test "$usetls" != no; then
+# Check for support of thread-local storage handling in assembler and
+# linker.
+AC_CACHE_CHECK(for powerpc32 TLS support, libc_cv_powerpc32_tls, [dnl
+cat > conftest.s <<\EOF
+	.section ".tdata","awT",@progbits
+x:	.long	1
+x1:	.long	1
+x2:	.long	1
+	.text
+	addi	3,31,x@got@tlsgd
+	addi	3,31,x1@got@tlsld
+	addi	9,3,x1@dtprel
+	addis	9,3,x2@dtprel@ha
+	addi	9,9,x2@dtprel@l
+	lwz	0,x1@dtprel(3)
+	addis	9,3,x2@dtprel@ha
+	lwz	0,x2@dtprel@l(9)
+	lwz	9,x3@got@tprel(31)
+	add	9,9,x@tls
+	addi	9,2,x1@tprel
+	addis	9,2,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_powerpc32_tls=yes
+else
+  libc_cv_powerpc32_tls=no
+fi
+rm -f conftest*])
+if test $libc_cv_powerpc32_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)