forked from Imagelibrary/binutils-gdb
* section.c (bfd_get_linker_section): New function.
* elf32-arm.c: When retrieving SEC_LINKER_CREATED sections, use the above throughout rather than bfd_get_section_by_name. Use bfd_make_section_anyway rather than bfd_make_section when creating them. * elf32-bfin.c: Likewise. * elf32-cr16.c: Likewise. * elf32-cris.c: Likewise. * elf32-frv.c: Likewise. * elf32-hppa.c: Likewise. * elf32-i370.c: Likewise. * elf32-i386.c: Likewise. * elf32-lm32.c: Likewise. * elf32-m32c.c: Likewise. * elf32-m32r.c: Likewise. * elf32-m68k.c: Likewise. * elf32-microblaze.c: Likewise. * elf32-ppc.c: Likewise. * elf32-rl78.c: Likewise. * elf32-s390.c: Likewise. * elf32-score.c: Likewise. * elf32-score7.c: Likewise. * elf32-sh.c: Likewise. * elf32-tic6x.c: Likewise. * elf32-tilepro.c: Likewise. * elf32-vax.c: Likewise. * elf32-xstormy16.c: Likewise. * elf32-xtensa.c: Likewise. * elf64-alpha.c: Likewise. * elf64-hppa.c: Likewise. * elf64-ia64-vms.c: Likewise. * elf64-ppc.c: Likewise. * elf64-s390.c: Likewise. * elf64-sh64.c: Likewise. * elf64-sparc.c: Likewise. * elf64-x86-64.c: Likewise. * elfnn-ia64.c: Likewise. * elfxx-mips.c: Likewise. * elfxx-sparc.c: Likewise. * elfxx-tilegx.c: Likewise. * elflink.c: Likewise. * elf-vxworks.c: Likewise. * elf-m10300.c: Likewise. Also make use of htab plt, got and gotplt shortcuts. * bfd-in2.h: Regenerate. * elf32-lm32.c (lm32_elf_check_relocs): Use the correct bfd when calling create_rofixup_section. * elflink.c (bfd_elf_final_link): Simplify test for .dynstr.
This commit is contained in:
@@ -1066,7 +1066,7 @@ score_elf_sort_hash_table_f (struct score_elf_link_hash_entry *h, void *data)
|
||||
static asection *
|
||||
score_elf_got_section (bfd *abfd, bfd_boolean maybe_excluded)
|
||||
{
|
||||
asection *sgot = bfd_get_section_by_name (abfd, ".got");
|
||||
asection *sgot = bfd_get_linker_section (abfd, ".got");
|
||||
|
||||
if (sgot == NULL || (! maybe_excluded && (sgot->flags & SEC_EXCLUDE) != 0))
|
||||
return NULL;
|
||||
@@ -1247,16 +1247,16 @@ score_elf_rel_dyn_section (bfd *dynobj, bfd_boolean create_p)
|
||||
static const char dname[] = ".rel.dyn";
|
||||
asection *sreloc;
|
||||
|
||||
sreloc = bfd_get_section_by_name (dynobj, dname);
|
||||
sreloc = bfd_get_linker_section (dynobj, dname);
|
||||
if (sreloc == NULL && create_p)
|
||||
{
|
||||
sreloc = bfd_make_section_with_flags (dynobj, dname,
|
||||
(SEC_ALLOC
|
||||
| SEC_LOAD
|
||||
| SEC_HAS_CONTENTS
|
||||
| SEC_IN_MEMORY
|
||||
| SEC_LINKER_CREATED
|
||||
| SEC_READONLY));
|
||||
sreloc = bfd_make_section_anyway_with_flags (dynobj, dname,
|
||||
(SEC_ALLOC
|
||||
| SEC_LOAD
|
||||
| SEC_HAS_CONTENTS
|
||||
| SEC_IN_MEMORY
|
||||
| SEC_LINKER_CREATED
|
||||
| SEC_READONLY));
|
||||
if (sreloc == NULL
|
||||
|| ! bfd_set_section_alignment (dynobj, sreloc,
|
||||
SCORE_ELF_LOG_FILE_ALIGN (dynobj)))
|
||||
@@ -1429,7 +1429,7 @@ score_elf_create_got_section (bfd *abfd,
|
||||
|
||||
/* We have to use an alignment of 2**4 here because this is hardcoded
|
||||
in the function stub generation and in the linker script. */
|
||||
s = bfd_make_section_with_flags (abfd, ".got", flags);
|
||||
s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
|
||||
if (s == NULL
|
||||
|| ! bfd_set_section_alignment (abfd, s, 4))
|
||||
return FALSE;
|
||||
@@ -3123,7 +3123,7 @@ s3_bfd_score_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
|
||||
if (!h->def_regular)
|
||||
{
|
||||
/* We need .stub section. */
|
||||
s = bfd_get_section_by_name (dynobj, SCORE_ELF_STUB_SECTION_NAME);
|
||||
s = bfd_get_linker_section (dynobj, SCORE_ELF_STUB_SECTION_NAME);
|
||||
BFD_ASSERT (s != NULL);
|
||||
|
||||
h->root.u.def.section = s;
|
||||
@@ -3259,7 +3259,7 @@ s3_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *i
|
||||
/* Set the contents of the .interp section to the interpreter. */
|
||||
if (!info->shared)
|
||||
{
|
||||
s = bfd_get_section_by_name (dynobj, ".interp");
|
||||
s = bfd_get_linker_section (dynobj, ".interp");
|
||||
BFD_ASSERT (s != NULL);
|
||||
s->size = strlen (ELF_DYNAMIC_INTERPRETER) + 1;
|
||||
s->contents = (bfd_byte *) ELF_DYNAMIC_INTERPRETER;
|
||||
@@ -3417,7 +3417,7 @@ s3_bfd_score_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
|
||||
| SEC_LINKER_CREATED | SEC_READONLY);
|
||||
|
||||
/* ABI requests the .dynamic section to be read only. */
|
||||
s = bfd_get_section_by_name (abfd, ".dynamic");
|
||||
s = bfd_get_linker_section (abfd, ".dynamic");
|
||||
if (s != NULL)
|
||||
{
|
||||
if (!bfd_set_section_flags (abfd, s, flags))
|
||||
@@ -3432,10 +3432,10 @@ s3_bfd_score_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
|
||||
return FALSE;
|
||||
|
||||
/* Create .stub section. */
|
||||
if (bfd_get_section_by_name (abfd, SCORE_ELF_STUB_SECTION_NAME) == NULL)
|
||||
if (bfd_get_linker_section (abfd, SCORE_ELF_STUB_SECTION_NAME) == NULL)
|
||||
{
|
||||
s = bfd_make_section_with_flags (abfd, SCORE_ELF_STUB_SECTION_NAME,
|
||||
flags | SEC_CODE);
|
||||
s = bfd_make_section_anyway_with_flags (abfd, SCORE_ELF_STUB_SECTION_NAME,
|
||||
flags | SEC_CODE);
|
||||
if (s == NULL
|
||||
|| !bfd_set_section_alignment (abfd, s, 2))
|
||||
|
||||
@@ -3489,7 +3489,7 @@ s3_bfd_score_elf_finish_dynamic_symbol (bfd *output_bfd,
|
||||
/* This symbol has a stub. Set it up. */
|
||||
BFD_ASSERT (h->dynindx != -1);
|
||||
|
||||
s = bfd_get_section_by_name (dynobj, SCORE_ELF_STUB_SECTION_NAME);
|
||||
s = bfd_get_linker_section (dynobj, SCORE_ELF_STUB_SECTION_NAME);
|
||||
BFD_ASSERT (s != NULL);
|
||||
|
||||
/* FIXME: Can h->dynindex be more than 64K? */
|
||||
@@ -3568,7 +3568,7 @@ s3_bfd_score_elf_finish_dynamic_sections (bfd *output_bfd,
|
||||
|
||||
dynobj = elf_hash_table (info)->dynobj;
|
||||
|
||||
sdyn = bfd_get_section_by_name (dynobj, ".dynamic");
|
||||
sdyn = bfd_get_linker_section (dynobj, ".dynamic");
|
||||
|
||||
sgot = score_elf_got_section (dynobj, FALSE);
|
||||
if (sgot == NULL)
|
||||
|
||||
Reference in New Issue
Block a user