diff options
Diffstat (limited to 'binutils-2.20.51.0.10-ppc64-pie.patch')
-rw-r--r-- | binutils-2.20.51.0.10-ppc64-pie.patch | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/binutils-2.20.51.0.10-ppc64-pie.patch b/binutils-2.20.51.0.10-ppc64-pie.patch new file mode 100644 index 0000000..f68b329 --- /dev/null +++ b/binutils-2.20.51.0.10-ppc64-pie.patch @@ -0,0 +1,24 @@ +*** ../binutils-2.20.51.0.10.original/bfd/elf64-ppc.c 2010-08-10 14:58:09.000000000 +0100 +--- bfd/elf64-ppc.c 2010-08-10 15:03:16.000000000 +0100 +*************** ppc64_elf_relocate_section (bfd *output_ +*** 12757,12763 **** + else if (!SYMBOL_CALLS_LOCAL (info, &h->elf) + && !is_opd + && r_type != R_PPC64_TOC) +! outrel.r_info = ELF64_R_INFO (h->elf.dynindx, r_type); + else + { + /* This symbol is local, or marked to become local, +--- 12757,12768 ---- + else if (!SYMBOL_CALLS_LOCAL (info, &h->elf) + && !is_opd + && r_type != R_PPC64_TOC) +! { +! outrel.r_info = ELF64_R_INFO (h->elf.dynindx, r_type); +! if (h->elf.dynindx == -1 +! && h->elf.root.type == bfd_link_hash_undefweak) +! memset (&outrel, 0, sizeof outrel); +! } + else + { + /* This symbol is local, or marked to become local, |