diff options
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elflink.c | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 539b3499..769534b 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2005-06-29 Alan Modra <amodra@bigpond.net.au> + + * elflink.c (elf_gc_sweep): Do not refcount on sections that have + not been processed by check_relocs. + 2005-06-29 Paul Brook <paul@codesourcery.com> * bfd-in.h (_bfd_elf_provide_symbol): Update prototype. diff --git a/bfd/elflink.c b/bfd/elflink.c index 0a70c23..b561b1f 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -8902,7 +8902,9 @@ elf_gc_sweep (struct bfd_link_info *info, gc_sweep_hook_fn gc_sweep_hook) /* But we also have to update some of the relocation info we collected before. */ if (gc_sweep_hook - && (o->flags & SEC_RELOC) && o->reloc_count > 0) + && (o->flags & SEC_RELOC) != 0 + && o->reloc_count > 0 + && !bfd_is_abs_section (o->output_section)) { Elf_Internal_Rela *internal_relocs; bfd_boolean r; |