diff options
author | Roland McGrath <roland@gnu.org> | 2003-03-02 11:45:12 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2003-03-02 11:45:12 +0000 |
commit | bb0ddc2f1eca652aa8af56825b2ba3182498cc5a (patch) | |
tree | 8b03305facff745ff0bd14c50e811dfd77cef343 /linuxthreads/sysdeps/powerpc/tcb-offsets.sym | |
parent | 3093b1c70cd227c3329d2bbb77cd59ce2cbdcbd4 (diff) | |
download | glibc-bb0ddc2f1eca652aa8af56825b2ba3182498cc5a.tar.gz |
* 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 'linuxthreads/sysdeps/powerpc/tcb-offsets.sym')
-rw-r--r-- | linuxthreads/sysdeps/powerpc/tcb-offsets.sym | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/linuxthreads/sysdeps/powerpc/tcb-offsets.sym b/linuxthreads/sysdeps/powerpc/tcb-offsets.sym index aee6be2570..bb4226fb3a 100644 --- a/linuxthreads/sysdeps/powerpc/tcb-offsets.sym +++ b/linuxthreads/sysdeps/powerpc/tcb-offsets.sym @@ -1,4 +1,24 @@ #include <sysdep.h> #include <tls.h> -MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads) +-- + +-- This could go into powerpc32/ instead and conditionalize #include of it. +#ifndef __powerpc64__ + +# ifdef USE_TLS + +-- Abuse tls.h macros to derive offsets relative to the thread register. +# undef __thread_register +# define __thread_register ((void *) 0) +# define thread_offsetof(mem) ((void *) &THREAD_SELF->p_##mem - (void *) 0) + +# else + +# define thread_offsetof(mem) offsetof (tcbhead_t, mem) + +# endif + +MULTIPLE_THREADS_OFFSET thread_offsetof (multiple_threads) + +#endif |