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