diff options
-rw-r--r-- | bfd/ChangeLog | 4 | ||||
-rw-r--r-- | bfd/elflink.c | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index a36f0f8..fc164dc 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,7 @@ +2004-08-17 Alan Modra <amodra@bigpond.net.au> + + * elflink.h (elf_gc_sweep): Keep non-alloc, non-load sections. + 2004-08-17 Nick Clifton <nickc@redhat.com> * (is_arm_mapping_symbol_name): New function - return true diff --git a/bfd/elflink.c b/bfd/elflink.c index 00fa468..1e2f335 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -8504,9 +8504,9 @@ elf_gc_sweep (struct bfd_link_info *info, gc_sweep_hook_fn gc_sweep_hook) for (o = sub->sections; o != NULL; o = o->next) { - /* Keep special sections. Keep .debug sections. */ - if ((o->flags & SEC_LINKER_CREATED) - || (o->flags & SEC_DEBUGGING)) + /* Keep debug and special sections. */ + if ((o->flags & (SEC_DEBUGGING | SEC_LINKER_CREATED)) != 0 + || (o->flags & (SEC_ALLOC | SEC_LOAD)) == 0) o->gc_mark = 1; if (o->gc_mark) |