]> git.pld-linux.org Git - packages/binutils.git/blob - binutils-bdfbug.patch
- updated to 2.16.91.0.7, updated pt_pax_flags patch
[packages/binutils.git] / binutils-bdfbug.patch
1 On Thu, Aug 02, 2001 at 05:02:26PM -0700, H . J . Lu wrote:
2 > On Fri, Aug 03, 2001 at 09:15:10AM +0930, Alan Modra wrote:
3 > > On Thu, Aug 02, 2001 at 10:09:41AM -0700, H . J . Lu wrote:
4 > > > 
5 > > > Alan, why don't we discard all relocations for static binaries?
6 > > 
7 > > A thinko on my part.  We obviously should be discarding them.  I
8 > > suspect this crept into elf32-i386.c from elf32-hppa.c, and it's
9 > > wrong there too.
10
11 > Could you please fix both of them?
12
13 Your patch does the right thing, but I'm tweaking it a little.
14
15 bfd/ChangeLog
16         From  H.J. Lu  <hjl@gnu.org>
17         * elf32-i386.c (allocate_plt_and_got_and_discard_relocs): Don't
18         keep relocs for undefined syms if there are no dynamic sections in
19         executable.
20         * elf32-hppa.c (allocate_plt_and_got_and_discard_relocs): Likewise.
21
22 -- 
23 Alan Modra
24
25 Index: bfd/elf32-hppa.c
26 ===================================================================
27 RCS file: /cvs/src/src/bfd/elf32-hppa.c,v
28 retrieving revision 1.41
29 diff -u -p -r1.41 elf32-hppa.c
30 --- bfd/elf32-hppa.c    2001/06/30 00:34:10     1.41
31 +++ bfd/elf32-hppa.c    2001/08/03 05:07:46
32 @@ -2141,8 +2141,9 @@ allocate_plt_and_got_and_discard_relocs 
33    if (!info->shared
34        && (h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0
35        && ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0
36 -         || h->root.type == bfd_link_hash_undefweak
37 -         || h->root.type == bfd_link_hash_undefined))
38 +         || (hplink->root.dynamic_sections_created
39 +             && (h->root.type == bfd_link_hash_undefweak
40 +                 || h->root.type == bfd_link_hash_undefined))))
41      {
42        /* Make sure this symbol is output as a dynamic symbol.
43          Undefined weak syms won't yet be marked as dynamic.  */
44 Index: bfd/elf32-i386.c
45 ===================================================================
46 RCS file: /cvs/src/src/bfd/elf32-i386.c,v
47 retrieving revision 1.36
48 diff -u -p -r1.36 elf32-i386.c
49 --- bfd/elf32-i386.c    2001/06/27 01:46:17     1.36
50 +++ bfd/elf32-i386.c    2001/08/03 05:07:49
51 @@ -1199,8 +1199,9 @@ allocate_plt_and_got_and_discard_relocs 
52    if (!info->shared
53        && (h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0
54        && ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0
55 -         || h->root.type == bfd_link_hash_undefweak
56 -         || h->root.type == bfd_link_hash_undefined))
57 +         || (htab->root.dynamic_sections_created
58 +             && (h->root.type == bfd_link_hash_undefweak
59 +                 || h->root.type == bfd_link_hash_undefined))))
60      {
61        /* Make sure this symbol is output as a dynamic symbol.
62          Undefined weak syms won't yet be marked as dynamic.  */
63
This page took 0.045823 seconds and 3 git commands to generate.