diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | NEWS | 7 | ||||
-rw-r--r-- | sysdeps/generic/libc-start.c | 5 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/dl-machine.h | 4 |
4 files changed, 13 insertions, 6 deletions
@@ -1,5 +1,8 @@ 2003-03-02 Roland McGrath <roland@redhat.com> + * sysdeps/generic/libc-start.c (__libc_start_main): Don't assign const + variable. + * 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. @@ -1,10 +1,15 @@ -GNU C Library NEWS -- history of user-visible changes. 2003-1-12 +GNU C Library NEWS -- history of user-visible changes. 2003-3-2 Copyright (C) 1992-2002, 2003 Free Software Foundation, Inc. See the end for copying conditions. Please send GNU C library bug reports using the `glibcbug' script to <bugs@gnu.org>. Please send questions and suggestions to <bug-glibc@gnu.org>. +Version 2.3.3 + +* ELF thread-local storage support (TLS) now works on PowerPC and PowerPC64; + implemented by Paul Mackerras, Steven Munroe, and Roland McGrath. + Version 2.3.2 * Thread-safe interfaces for many functions that access locale data diff --git a/sysdeps/generic/libc-start.c b/sysdeps/generic/libc-start.c index a6dbebe..b79c803 100644 --- a/sysdeps/generic/libc-start.c +++ b/sysdeps/generic/libc-start.c @@ -158,12 +158,11 @@ BP_SYM (__libc_start_main) (int (*main) (int, char **, char **), /* One less thread. Decrement the counter. If it is zero we terminate the entire process. */ result = 0; - int *const ptr; # ifdef SHARED - ptr = __libc_pthread_functions.ptr_nthreads; + int *const ptr = __libc_pthread_functions.ptr_nthreads; # else extern int __nptl_nthreads __attribute ((weak)); - ptr = &__nptl_nthreads; + int *const ptr = &__nptl_nthreads; # endif if (! atomic_decrement_and_test (ptr)) diff --git a/sysdeps/powerpc/powerpc64/dl-machine.h b/sysdeps/powerpc/powerpc64/dl-machine.h index 8798263..93cbc8b 100644 --- a/sysdeps/powerpc/powerpc64/dl-machine.h +++ b/sysdeps/powerpc/powerpc64/dl-machine.h @@ -610,14 +610,14 @@ elf_machine_rela (struct link_map *map, # endif return; - case R_PPC_DTPREL64: + case R_PPC64_DTPREL64: /* During relocation all TLS symbols are defined and used. Therefore the offset is already correct. */ # ifndef RTLD_BOOTSTRAP *reloc_addr = TLS_DTPREL_VALUE (sym, reloc); # endif break; - case R_PPC_TPREL64: + case R_PPC64_TPREL64: # ifndef RTLD_BOOTSTRAP if (sym_map) { |