diff options
author | Jakub Jelinek <jakub@redhat.com> | 2004-10-11 13:48:36 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2004-10-11 13:48:36 +0000 |
commit | 7f1204bb4f7b558ade9e406e33d062df04798966 (patch) | |
tree | 808061e02ed32c0828a27b8ce261937b9bb0c313 | |
parent | 87e5235d04a80dc2be7d53d442016998ef8fb555 (diff) | |
download | gdb-7f1204bb4f7b558ade9e406e33d062df04798966.zip gdb-7f1204bb4f7b558ade9e406e33d062df04798966.tar.gz gdb-7f1204bb4f7b558ade9e406e33d062df04798966.tar.bz2 |
* elf.c (bfd_section_from_shdr): Handle SHT_GNU_LIBLIST.
(special_sections): Add .gnu.liblist and .gnu.conflict.
(assign_section_numbers): Handle SHT_GNU_LIBLIST.
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf.c | 14 |
2 files changed, 20 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index a2d4bff..558074e 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2004-10-11 Jakub Jelinek <jakub@redhat.com> + + * elf.c (bfd_section_from_shdr): Handle SHT_GNU_LIBLIST. + (special_sections): Add .gnu.liblist and .gnu.conflict. + (assign_section_numbers): Handle SHT_GNU_LIBLIST. + 2004-10-11 Alan Modra <amodra@bigpond.net.au> PR 233 @@ -1739,6 +1739,7 @@ bfd_section_from_shdr (bfd *abfd, unsigned int shindex) case SHT_INIT_ARRAY: /* .init_array section. */ case SHT_FINI_ARRAY: /* .fini_array section. */ case SHT_PREINIT_ARRAY: /* .preinit_array section. */ + case SHT_GNU_LIBLIST: /* .gnu.liblist section. */ return _bfd_elf_make_section_from_shdr (abfd, hdr, name); case SHT_DYNAMIC: /* Dynamic linking information. */ @@ -2132,6 +2133,8 @@ static struct bfd_elf_special_section const special_sections[] = { ".rela", 5, -1, SHT_RELA, 0 }, { ".rel", 4, -1, SHT_REL, 0 }, { ".stabstr", 5, 3, SHT_STRTAB, 0 }, + { ".gnu.liblist", 12, 0, SHT_GNU_LIBLIST, SHF_ALLOC }, + { ".gnu.conflict", 13, 0, SHT_RELA, SHF_ALLOC }, { NULL, 0, 0, 0, 0 } }; @@ -2969,6 +2972,17 @@ assign_section_numbers (bfd *abfd) d->this_hdr.sh_link = elf_section_data (s)->this_idx; break; + case SHT_GNU_LIBLIST: + /* sh_link is the section header index of the prelink library + list + used for the dynamic entries, or the symbol table, or the + version strings. */ + s = bfd_get_section_by_name (abfd, (sec->flags & SEC_ALLOC) + ? ".dynstr" : ".gnu.libstr"); + if (s != NULL) + d->this_hdr.sh_link = elf_section_data (s)->this_idx; + break; + case SHT_HASH: case SHT_GNU_versym: /* sh_link is the section header index of the symbol table |