svn commit: r203602 - in projects/ppc64: contrib/binutils/bfd lib/libc/stdlib

Nathan Whitehorn nwhitehorn at FreeBSD.org
Sun Feb 7 05:50:00 UTC 2010


Author: nwhitehorn
Date: Sun Feb  7 05:50:00 2010
New Revision: 203602
URL: http://svn.freebsd.org/changeset/base/203602

Log:
  Revert r202955, which was the wrong solution to a binutils bug when
  processing TLS relocations in shared objects, and replace it with the
  correct solution. This patch is inspired by version 1.217 of upstream
  binutils.
  
  This commit fixes the problems with malloc TLS on powerpc64.

Modified:
  projects/ppc64/contrib/binutils/bfd/elf64-ppc.c
  projects/ppc64/lib/libc/stdlib/malloc.c

Modified: projects/ppc64/contrib/binutils/bfd/elf64-ppc.c
==============================================================================
--- projects/ppc64/contrib/binutils/bfd/elf64-ppc.c	Sun Feb  7 05:16:38 2010	(r203601)
+++ projects/ppc64/contrib/binutils/bfd/elf64-ppc.c	Sun Feb  7 05:50:00 2010	(r203602)
@@ -3268,15 +3268,13 @@ create_got_section (bfd *abfd, struct bf
   flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY
 	   | SEC_LINKER_CREATED);
 
-  got = bfd_get_section_by_name(abfd, ".got");
-  if (!got)
-	got = bfd_make_section (abfd, ".got");
+  got = bfd_make_section_anyway (abfd, ".got");
   if (!got
       || !bfd_set_section_flags (abfd, got, flags)
       || !bfd_set_section_alignment (abfd, got, 3))
     return FALSE;
 
-  relgot = bfd_make_section (abfd, ".rela.got");
+  relgot = bfd_make_section_anyway (abfd, ".rela.got");
   if (!relgot
       || ! bfd_set_section_flags (abfd, relgot, flags | SEC_READONLY)
       || ! bfd_set_section_alignment (abfd, relgot, 3))

Modified: projects/ppc64/lib/libc/stdlib/malloc.c
==============================================================================
--- projects/ppc64/lib/libc/stdlib/malloc.c	Sun Feb  7 05:16:38 2010	(r203601)
+++ projects/ppc64/lib/libc/stdlib/malloc.c	Sun Feb  7 05:50:00 2010	(r203602)
@@ -253,7 +253,6 @@ __FBSDID("$FreeBSD$");
 #ifdef __powerpc64__
 #  define QUANTUM_2POW		4
 #  define SIZEOF_PTR_2POW	3
-#  define NO_TLS
 #elif defined(__powerpc__)
 #  define QUANTUM_2POW		4
 #  define SIZEOF_PTR_2POW	2


More information about the svn-src-projects mailing list