about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--NEWS7
-rw-r--r--sysdeps/generic/libc-start.c5
-rw-r--r--sysdeps/powerpc/powerpc64/dl-machine.h4
4 files changed, 13 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index f36934f9f2..51010a5dd2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/NEWS b/NEWS
index 890bcdc98b..418949200c 100644
--- a/NEWS
+++ b/NEWS
@@ -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 a6dbebe123..b79c803d55 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 87982638ee..93cbc8b168 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)
 	{