diff -r e7266674d492 -r 7179903f8d2e patches/binutils/2.20/100-ppc64-pie.patch --- a/patches/binutils/2.20/100-ppc64-pie.patch Sun Sep 11 18:28:45 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ ---- binutils/bfd/elf64-ppc.c.jj 2004-09-27 16:46:06.000000000 -0400 -+++ binutils/bfd/elf64-ppc.c 2004-10-04 09:09:50.000000000 -0400 -@@ -9681,7 +9681,12 @@ ppc64_elf_relocate_section (bfd *output_ - else if (!SYMBOL_REFERENCES_LOCAL (info, &h->elf) - && !is_opd - && r_type != R_PPC64_TOC) -- outrel.r_info = ELF64_R_INFO (h->elf.dynindx, r_type); -+ { -+ 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,