diff options
-rw-r--r-- | bfd/ChangeLog | 4 | ||||
-rw-r--r-- | bfd/elflink.h | 16 |
2 files changed, 8 insertions, 12 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 1f81b53..b454dc8 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,7 @@ +2000-09-29 NIIBE Yutaka <gniibe@chroot.org> + + * elflink.h (elf_link_add_object_symbols): Don't bfd_release runpath. + 2000-09-29 Momchil Velikov <velco@fadata.bg> * elf.c (elf_fake_sections): Do not mark the section SHT_NOBITS if diff --git a/bfd/elflink.h b/bfd/elflink.h index a808673..80c5b1c 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -1191,19 +1191,11 @@ elf_link_add_object_symbols (abfd, info) char *fnm, *anm; /* When we see DT_RPATH before DT_RUNPATH, we have - to free runpath. */ + to clear runpath. Do _NOT_ bfd_release, as that + frees all more recently bfd_alloc'd blocks as + well. */ if (rpath && elf_hash_table (info)->runpath) - { - struct bfd_link_needed_list *nn; - for (n = elf_hash_table (info)->runpath; - n != NULL; n = nn) - { - nn = n->next; - bfd_release (abfd, n); - } - bfd_release (abfd, elf_hash_table (info)->runpath); - elf_hash_table (info)->runpath = NULL; - } + elf_hash_table (info)->runpath = NULL; n = ((struct bfd_link_needed_list *) bfd_alloc (abfd, sizeof (struct bfd_link_needed_list))); |