From 512a2384fe00445101b67b9ac3b24600e01d504e Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Fri, 29 Sep 2000 13:15:03 +0000 Subject: * elflink.h (elf_link_add_object_symbols): Don't bfd_release runpath. --- bfd/ChangeLog | 4 ++++ 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 + + * elflink.h (elf_link_add_object_symbols): Don't bfd_release runpath. + 2000-09-29 Momchil Velikov * 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))); -- cgit v1.1