include/
* bfdlink.h (struct bfd_link_hash_table): Delete creator field. (struct bfd_link_info): Add output_bfd. bfd/ * elflink.c: Replace all accesses to hash->creator field with output_bfd->xvec. * cofflink.c: Likewise. * coff-h8300.c: Likewise. * ecoff.c: Likewise. * elf32-m68hc1x.c: Likewise. * elf32-ppc.c: Likewise. * elf64-alpha.c: Likewise. * elf64-ppc.c: Likewise. * elf64-sparc.c: Likewise. * elfxx-mips.c: Likewise. * i386linux.c: Likewise. * m68klinux.c: Likewise. * sparclinux.c: Likewise. * sunos.c: Likewise. * xcofflink.c: Likewise. * linker.c: Likewise. (_bfd_link_hash_table_init): Don't store creator. ld/ * ldmain.h (output_bfd): Delete. * ldmain.c (output_bfd): Delete. Replace all occurrences of output_bfd with link_info.output_bfd. * ldcref.c: Likewise. * ldctor.c: Likewise. * ldemul.c: Likewise. * ldexp.c: Likewise. * ldfile.c: Likewise. * ldlang.c: Likewise. * ldmisc.c: Likewise. * ldwrite.c: Likewise. * pe-dll.c: Likewise. * emultempl/aix.em: Likewise. * emultempl/alphaelf.em: Likewise. * emultempl/armcoff.em: Likewise. * emultempl/armelf.em: Likewise. * emultempl/avrelf.em: Likewise. * emultempl/beos.em: Likewise. * emultempl/elf-generic.em: Likewise. * emultempl/elf32.em: Likewise. * emultempl/gld960.em: Likewise. * emultempl/hppaelf.em: Likewise. * emultempl/irix.em: Likewise. * emultempl/linux.em: Likewise. * emultempl/lnk960.em: Likewise. * emultempl/m68hc1xelf.em: Likewise. * emultempl/mmix-elfnmmo.em: Likewise. * emultempl/mmo.em: Likewise. * emultempl/pe.em: Likewise. * emultempl/pep.em: Likewise. * emultempl/ppc32elf.em: Likewise. * emultempl/ppc64elf.em: Likewise. * emultempl/scoreelf.em: Likewise. * emultempl/sh64elf.em: Likewise. * emultempl/spuelf.em: Likewise. * emultempl/sunos.em: Likewise. * emultempl/vanilla.em: Likewise. * emultempl/vxworks.em: Likewise. * emultempl/xtensaelf.em: Likewise. * emultempl/z80.em: Likewise. * ldlang.c (open_output): Don't return output, instead write link_info_output_bfd directly. * emultempl/alphaelf.em: Replace occurrences of link_info.hash->creator with link_info.output_bfd->xvec. * emultempl/hppaelf.em: Likewise. * emultempl/ppc32elf.em: Likewise. * emultempl/ppc64elf.em: Likewise. * emultempl/spuelf.em: Likewise.
This commit is contained in:
parent
54aff08f3b
commit
f13a99db51
59 changed files with 575 additions and 442 deletions
|
@ -884,7 +884,7 @@ _bfd_elf_merge_symbol (bfd *abfd,
|
|||
|
||||
/* This code is for coping with dynamic objects, and is only useful
|
||||
if we are doing an ELF link. */
|
||||
if (info->hash->creator != abfd->xvec)
|
||||
if (info->output_bfd->xvec != abfd->xvec)
|
||||
return TRUE;
|
||||
|
||||
/* For merging, we only care about real symbols. */
|
||||
|
@ -3336,7 +3336,7 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
|
|||
the format of the output file. */
|
||||
if (info->relocatable
|
||||
|| !is_elf_hash_table (htab)
|
||||
|| htab->root.creator != abfd->xvec)
|
||||
|| info->output_bfd->xvec != abfd->xvec)
|
||||
{
|
||||
if (info->relocatable)
|
||||
bfd_set_error (bfd_error_invalid_operation);
|
||||
|
@ -3433,7 +3433,7 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
|
|||
format as the output, we can't make a shared library. */
|
||||
if (info->shared
|
||||
&& is_elf_hash_table (htab)
|
||||
&& htab->root.creator == abfd->xvec
|
||||
&& info->output_bfd->xvec == abfd->xvec
|
||||
&& !htab->dynamic_sections_created)
|
||||
{
|
||||
if (! _bfd_elf_link_create_dynamic_sections (abfd, info))
|
||||
|
@ -4674,7 +4674,7 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
|
|||
if (! dynamic
|
||||
&& is_elf_hash_table (htab)
|
||||
&& bed->check_relocs != NULL
|
||||
&& (*bed->relocs_compatible) (abfd->xvec, htab->root.creator))
|
||||
&& (*bed->relocs_compatible) (abfd->xvec, info->output_bfd->xvec))
|
||||
{
|
||||
asection *o;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue