* 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.
This commit is contained in:
parent
87e5235d04
commit
7f1204bb4f
@ -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>
|
2004-10-11 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
PR 233
|
PR 233
|
||||||
|
14
bfd/elf.c
14
bfd/elf.c
@ -1739,6 +1739,7 @@ bfd_section_from_shdr (bfd *abfd, unsigned int shindex)
|
|||||||
case SHT_INIT_ARRAY: /* .init_array section. */
|
case SHT_INIT_ARRAY: /* .init_array section. */
|
||||||
case SHT_FINI_ARRAY: /* .fini_array section. */
|
case SHT_FINI_ARRAY: /* .fini_array section. */
|
||||||
case SHT_PREINIT_ARRAY: /* .preinit_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);
|
return _bfd_elf_make_section_from_shdr (abfd, hdr, name);
|
||||||
|
|
||||||
case SHT_DYNAMIC: /* Dynamic linking information. */
|
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 },
|
{ ".rela", 5, -1, SHT_RELA, 0 },
|
||||||
{ ".rel", 4, -1, SHT_REL, 0 },
|
{ ".rel", 4, -1, SHT_REL, 0 },
|
||||||
{ ".stabstr", 5, 3, SHT_STRTAB, 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 }
|
{ 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;
|
d->this_hdr.sh_link = elf_section_data (s)->this_idx;
|
||||||
break;
|
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_HASH:
|
||||||
case SHT_GNU_versym:
|
case SHT_GNU_versym:
|
||||||
/* sh_link is the section header index of the symbol table
|
/* sh_link is the section header index of the symbol table
|
||||||
|
Loading…
Reference in New Issue
Block a user