mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 06:45:56 +08:00
PR ld/12365
bfd/ * elfcode.h (elf_slurp_symbol_table): Put common plugin IR symbols in their own common section. * elflink.c (elf_link_add_object_symbols): Likewise. * linker.c (generic_link_check_archive_element): Don't lose flags if common section is pre-existing. (_bfd_generic_link_add_one_symbol): Likewise. ld/ * ldfile.c (ldfile_try_open_bfd): Move code creating and switching to plugin IR BFD.. * ldmain.c (add_archive_element): ..and similar code here.. * plugin.c (plugin_maybe_claim): ..to here. New function. (plugin_call_claim_file): Make static. (asymbol_from_plugin_symbol): Set ELF st_shndx for common syms. (plugin_multiple_common): New function. (plugin_call_all_symbols_read): Hook in plugin_multiple_common. * plugin.h (plugin_call_claim_file): Don't declare. (plugin_maybe_claim): Declare.
This commit is contained in:
10
bfd/linker.c
10
bfd/linker.c
@ -1296,7 +1296,7 @@ generic_link_check_archive_element (bfd *abfd,
|
||||
else
|
||||
h->u.c.p->section = bfd_make_section_old_way (symbfd,
|
||||
p->section->name);
|
||||
h->u.c.p->section->flags = SEC_ALLOC;
|
||||
h->u.c.p->section->flags |= SEC_ALLOC;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1756,13 +1756,13 @@ _bfd_generic_link_add_one_symbol (struct bfd_link_info *info,
|
||||
if (section == bfd_com_section_ptr)
|
||||
{
|
||||
h->u.c.p->section = bfd_make_section_old_way (abfd, "COMMON");
|
||||
h->u.c.p->section->flags = SEC_ALLOC;
|
||||
h->u.c.p->section->flags |= SEC_ALLOC;
|
||||
}
|
||||
else if (section->owner != abfd)
|
||||
{
|
||||
h->u.c.p->section = bfd_make_section_old_way (abfd,
|
||||
section->name);
|
||||
h->u.c.p->section->flags = SEC_ALLOC;
|
||||
h->u.c.p->section->flags |= SEC_ALLOC;
|
||||
}
|
||||
else
|
||||
h->u.c.p->section = section;
|
||||
@ -1803,13 +1803,13 @@ _bfd_generic_link_add_one_symbol (struct bfd_link_info *info,
|
||||
{
|
||||
h->u.c.p->section
|
||||
= bfd_make_section_old_way (abfd, "COMMON");
|
||||
h->u.c.p->section->flags = SEC_ALLOC;
|
||||
h->u.c.p->section->flags |= SEC_ALLOC;
|
||||
}
|
||||
else if (section->owner != abfd)
|
||||
{
|
||||
h->u.c.p->section
|
||||
= bfd_make_section_old_way (abfd, section->name);
|
||||
h->u.c.p->section->flags = SEC_ALLOC;
|
||||
h->u.c.p->section->flags |= SEC_ALLOC;
|
||||
}
|
||||
else
|
||||
h->u.c.p->section = section;
|
||||
|
Reference in New Issue
Block a user