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 | 30 |
1 files changed, 10 insertions, 20 deletions
diff --git a/binutils-2.20.51.0.10-ppc64-pie.patch b/binutils-2.20.51.0.10-ppc64-pie.patch index f68b329..8862d18 100644 --- a/binutils-2.20.51.0.10-ppc64-pie.patch +++ b/binutils-2.20.51.0.10-ppc64-pie.patch @@ -1,24 +1,14 @@ -*** ../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 +*** ../binutils-2.23.51.0.2.orig/bfd/elf64-ppc.c 2012-09-11 12:13:00.637448573 +0100 +--- bfd/elf64-ppc.c 2012-09-11 12:13:17.922449052 +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 +*** 13523,13528 **** +--- 13523,13531 ---- { - /* 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); -! } + BFD_ASSERT (h->elf.dynindx != -1); + 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, |