Fix ppc hidden plt patch.
This commit is contained in:
parent
8ef28f50d1
commit
cff4ada549
@ -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 <amodra@bigpond.net.au>
|
||||
+
|
||||
@ -27,9 +27,9 @@ diff -rup ../binutils-2.20.51.0.2.original/bfd/ChangeLog bfd/ChangeLog
|
||||
2009-10-09 Tristan Gingold <gingold@adacore.com>
|
||||
|
||||
* 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 <amodra@bigpond.net.au>
|
||||
+
|
||||
+ * 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 <dj@redhat.com>
|
||||
|
||||
* 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 <eager@eagercon.com>
|
||||
|
||||
* 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 <eager@eagercon.com>
|
||||
|
||||
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
|
@ -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 <nickc@redhat.com> - 2.20.51.0.2-11
|
||||
- Add missing part of PR 11088 patch.
|
||||
|
||||
* Thu Dec 17 2009 Nick Clifton <nickc@redhat.com> - 2.20.51.0.2-10
|
||||
- Apply patch for PR 11088. (BZ 544149)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user