diff --git a/binutils-2.20.51.0.2-ppc64-hidden-plt-relocs.patch b/binutils-2.20.51.0.2-ppc-hidden-plt-relocs.patch similarity index 85% rename from binutils-2.20.51.0.2-ppc64-hidden-plt-relocs.patch rename to binutils-2.20.51.0.2-ppc-hidden-plt-relocs.patch index b1e836a..7c08ef6 100644 --- a/binutils-2.20.51.0.2-ppc64-hidden-plt-relocs.patch +++ b/binutils-2.20.51.0.2-ppc-hidden-plt-relocs.patch @@ -1,6 +1,6 @@ -diff -rup ../binutils-2.20.51.0.2.original/bfd/ChangeLog bfd/ChangeLog +diff -rup ../binutils-2.20.51.0.2.original/bfd/ChangeLog ./bfd/ChangeLog --- ../binutils-2.20.51.0.2.original/bfd/ChangeLog 2009-12-17 16:08:07.000000000 +0000 -+++ bfd/ChangeLog 2009-12-17 16:27:06.000000000 +0000 ++++ ./bfd/ChangeLog 2009-12-17 17:20:30.000000000 +0000 @@ -1,3 +1,25 @@ +2009-12-17 Alan Modra + @@ -27,9 +27,9 @@ diff -rup ../binutils-2.20.51.0.2.original/bfd/ChangeLog bfd/ChangeLog 2009-10-09 Tristan Gingold * mach-o.c (bfd_mach_o_section_get_entry_size): Moved. -diff -rup ../binutils-2.20.51.0.2.original/bfd/elf32-ppc.c bfd/elf32-ppc.c +diff -rup ../binutils-2.20.51.0.2.original/bfd/elf32-ppc.c ./bfd/elf32-ppc.c --- ../binutils-2.20.51.0.2.original/bfd/elf32-ppc.c 2009-12-17 16:08:07.000000000 +0000 -+++ bfd/elf32-ppc.c 2009-12-17 16:23:22.000000000 +0000 ++++ ./bfd/elf32-ppc.c 2009-12-18 13:54:26.000000000 +0000 @@ -3323,6 +3323,8 @@ update_plt_info (bfd *abfd, struct plt_e { struct plt_entry *ent; @@ -82,6 +82,15 @@ diff -rup ../binutils-2.20.51.0.2.original/bfd/elf32-ppc.c bfd/elf32-ppc.c ent->plt.refcount -= 1; } } +@@ -4534,7 +4533,7 @@ ppc_elf_gc_sweep_hook (bfd *abfd, + if (r_type == R_PPC_PLTREL24 && info->shared) + addend = rel->r_addend; + ent = find_plt_ent (&h->plt.plist, got2, addend); +- if (ent->plt.refcount > 0) ++ if (ent != NULL && ent->plt.refcount > 0) + ent->plt.refcount -= 1; + } + break; @@ -4582,9 +4581,11 @@ ppc_elf_tls_setup (bfd *obfd, && tga->root.type == bfd_link_hash_undefweak))) { @@ -247,14 +256,14 @@ diff -rup ../binutils-2.20.51.0.2.original/bfd/elf32-ppc.c bfd/elf32-ppc.c } - if (r_type == R_PPC_RELAX32_PLT) - goto relax32; -- /* Fall thru */ -- + /* Fall thru */ + - case R_PPC_RELAX32PC: - relocation -= (input_section->output_section->vma - + input_section->output_offset - + rel->r_offset - 4); - /* Fall thru */ - +- /* Fall thru */ +- - case R_PPC_RELAX32: - relax32: + case R_PPC_RELAX: @@ -265,9 +274,9 @@ diff -rup ../binutils-2.20.51.0.2.original/bfd/elf32-ppc.c bfd/elf32-ppc.c { unsigned long t0; unsigned long t1; -diff -rup ../binutils-2.20.51.0.2.original/bfd/elf64-ppc.c bfd/elf64-ppc.c +diff -rup ../binutils-2.20.51.0.2.original/bfd/elf64-ppc.c ./bfd/elf64-ppc.c --- ../binutils-2.20.51.0.2.original/bfd/elf64-ppc.c 2009-12-17 16:08:07.000000000 +0000 -+++ bfd/elf64-ppc.c 2009-12-17 16:10:41.000000000 +0000 ++++ ./bfd/elf64-ppc.c 2009-12-17 17:20:30.000000000 +0000 @@ -5866,9 +5866,7 @@ ppc64_elf_gc_sweep_hook (bfd *abfd, stru for (ent = h->plt.plist; ent != NULL; ent = ent->next) if (ent->addend == rel->r_addend) @@ -279,36 +288,9 @@ diff -rup ../binutils-2.20.51.0.2.original/bfd/elf64-ppc.c bfd/elf64-ppc.c ent->plt.refcount -= 1; } break; -diff -rup ../binutils-2.20.51.0.2.original/include/elf/ChangeLog include/elf/ChangeLog ---- ../binutils-2.20.51.0.2.original/include/elf/ChangeLog 2009-12-17 16:07:45.000000000 +0000 -+++ include/elf/ChangeLog 2009-12-17 16:12:12.000000000 +0000 -@@ -1,3 +1,9 @@ -+2009-12-17 Alan Modra -+ -+ * ppc.h (R_PPC_RELAX32, R_PPC_RELAX32PC, R_PPC_RELAX32_PLT, -+ R_PPC_RELAX32PC_PLT): Delete. -+ (R_PPC_RELAX, R_PPC_RELAX_PLT, R_PPC_RELAX_PLTREL24): Define. -+ - 2009-09-29 DJ Delorie - - * rx.h: New file. -@@ -34,11 +40,11 @@ - R_push, R_const, R_add, R_sub, R_mult, R_div, R_mod, R_lshift, - R_rshift, R_and, R_or, R_xor, R_land, R_lor, R_len, R_neg, R_comp, - R_page, R_hwpage, R_addr, R_pltpc, R_got. -- -+ - 2009-08-09 Michael Eager - - * elf/common.h: Define EM_resnnn reserved values. Add EM_AVR32, -- EM_STM8, EM_TILE64, EM_TILEPRO. Change EM_MICROBLAZE. -+ EM_STM8, EM_TILE64, EM_TILEPRO. Change EM_MICROBLAZE. - - 2009-08-06 Michael Eager - -diff -rup ../binutils-2.20.51.0.2.original/include/elf/ppc.h include/elf/ppc.h +diff -rup ../binutils-2.20.51.0.2.original/include/elf/ppc.h ./include/elf/ppc.h --- ../binutils-2.20.51.0.2.original/include/elf/ppc.h 2009-12-17 16:07:45.000000000 +0000 -+++ include/elf/ppc.h 2009-12-17 16:12:51.000000000 +0000 ++++ ./include/elf/ppc.h 2009-12-17 17:20:30.000000000 +0000 @@ -73,10 +73,9 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type) #ifndef RELOC_MACROS_GEN_FUNC diff --git a/binutils.spec b/binutils.spec index 9ca31b9..a6efa34 100644 --- a/binutils.spec +++ b/binutils.spec @@ -17,7 +17,7 @@ Summary: A GNU collection of binary utilities Name: %{?cross}binutils%{?_with_debug:-debug} Version: 2.20.51.0.2 -Release: 10%{?dist} +Release: 11%{?dist} License: GPLv3+ Group: Development/Tools URL: http://sources.redhat.com/binutils @@ -35,7 +35,7 @@ Patch09: binutils-2.20.51.0.2-ifunc-ld-s.patch Patch10: binutils-2.20.51.0.2-lwp.patch Patch11: binutils-2.20.51.0.2-enable-gold.patch Patch12: binutils-2.20.51.0.2-gas-expr.patch -Patch13: binutils-2.20.51.0.2-ppc64-hidden-plt-relocs.patch +Patch13: binutils-2.20.51.0.2-ppc-hidden-plt-relocs.patch %define gold_arches %ix86 x86_64 @@ -427,6 +427,9 @@ exit 0 %endif # %{isnative} %changelog +* Fri Dec 18 2009 Nick Clifton - 2.20.51.0.2-11 +- Add missing part of PR 11088 patch. + * Thu Dec 17 2009 Nick Clifton - 2.20.51.0.2-10 - Apply patch for PR 11088. (BZ 544149)