* Makefile.am: Remove all mention of elflink.h.
* Makefile.in: Regenerate. * bfd-in.h (bfd_elf_discard_info): Declare. (bfd_elf32_discard_info, bfd_elf64_discard_info): Delete. * bfd-in2.h: Regenerate. * elf-bfd.h (bfd_elf32_print_symbol, bfd_elf64_print_symbol, bfd_elf32_link_record_dynamic_symbol, bfd_elf64_link_record_dynamic_symbol, _bfd_elf_link_record_dynamic_symbol, bfd_elf32_bfd_final_link, bfd_elf64_bfd_final_link, elf_link_record_local_dynamic_symbol, _bfd_elf32_link_record_local_dynamic_symbol, _bfd_elf64_link_record_local_dynamic_symbol, _bfd_elf32_gc_sections, _bfd_elf32_gc_common_finalize_got_offsets, _bfd_elf32_gc_common_final_link, _bfd_elf64_gc_common_final_link, _bfd_elf32_gc_record_vtinherit, _bfd_elf32_gc_record_vtentry, _bfd_elf64_gc_sections, _bfd_elf64_gc_common_finalize_got_offsets, _bfd_elf64_gc_record_vtinherit, _bfd_elf64_gc_record_vtentry, _bfd_elf32_reloc_symbol_deleted_p, _bfd_elf64_reloc_symbol_deleted_p): Delete. (bfd_elf_link_record_dynamic_symbol, bfd_elf_link_record_local_dynamic_symbol, bfd_elf_final_link, bfd_elf_gc_sections, bfd_elf_gc_record_vtinherit, bfd_elf_gc_record_vtentry, bfd_elf_gc_common_finalize_got_offsets, bfd_elf_gc_common_final_link, bfd_elf_reloc_symbol_deleted_p): Declare. (WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define. * elf32-arm.h: Update for changed function names. Remove local WILL_CALL_FINISH_DYNAMIC_SECTION define. * elf-hppa.h, elf-m10300.c, elf32-cris.c, elf32-d10v.c, elf32-dlx.c, * elf32-fr30.c, elf32-frv.c, elf32-h8300.c, elf32-hppa.c, elf32-i386.c, * elf32-iq2000.c, elf32-m32r.c, elf32-m68hc1x.c, elf32-m68k.c, * elf32-mcore.c, elf32-openrisc.c, elf32-ppc.c, elf32-s390.c, * elf32-sh.c, elf32-sparc.c, elf32-v850.c, elf32-vax.c, * elf32-xstormy16.c, elf32-xtensa.c, elf64-alpha.c, elf64-hppa.c, * elf64-mmix.c, elf64-ppc.c, elf64-s390.c, elf64-sh64.c, elf64-sparc.c, * elf64-x86-64.c, elfxx-ia64.c, elfxx-mips.c, elfxx-target.h: Likewise. * elfxx-target.h (bfd_elfNN_bfd_final_link): Define. (bfd_elfNN_print_symbol): Define. * elfcode.h: Don't include elflink.h. (elf_bfd_discard_info, elf_reloc_symbol_deleted_p, elf_link_record_dynamic_symbol, elf_bfd_final_link, elf_gc_sections, elf_gc_common_finalize_got_offsets, elf_gc_common_final_link, elf_gc_record_vtinherit, elf_gc_record_vtentry, elf_link_record_local_dynamic_symbol): Don't define. * elflink.c: Update for changed function names. Move elflink.h code here. * elflink.h: Delete file. * po/SRC-POTFILES.in: Regenerate. * po/bfd.pot: Regenerate. doc/ * bfdint.texi: Remove all mention of elflink.h.
This commit is contained in:
parent
022492317b
commit
c152c7961c
49 changed files with 4124 additions and 4262 deletions
|
@ -1,3 +1,55 @@
|
|||
2004-03-27 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* Makefile.am: Remove all mention of elflink.h.
|
||||
* Makefile.in: Regenerate.
|
||||
* bfd-in.h (bfd_elf_discard_info): Declare.
|
||||
(bfd_elf32_discard_info, bfd_elf64_discard_info): Delete.
|
||||
* bfd-in2.h: Regenerate.
|
||||
* elf-bfd.h (bfd_elf32_print_symbol, bfd_elf64_print_symbol,
|
||||
bfd_elf32_link_record_dynamic_symbol,
|
||||
bfd_elf64_link_record_dynamic_symbol,
|
||||
_bfd_elf_link_record_dynamic_symbol, bfd_elf32_bfd_final_link,
|
||||
bfd_elf64_bfd_final_link, elf_link_record_local_dynamic_symbol,
|
||||
_bfd_elf32_link_record_local_dynamic_symbol,
|
||||
_bfd_elf64_link_record_local_dynamic_symbol,
|
||||
_bfd_elf32_gc_sections, _bfd_elf32_gc_common_finalize_got_offsets,
|
||||
_bfd_elf32_gc_common_final_link, _bfd_elf64_gc_common_final_link,
|
||||
_bfd_elf32_gc_record_vtinherit, _bfd_elf32_gc_record_vtentry,
|
||||
_bfd_elf64_gc_sections, _bfd_elf64_gc_common_finalize_got_offsets,
|
||||
_bfd_elf64_gc_record_vtinherit, _bfd_elf64_gc_record_vtentry,
|
||||
_bfd_elf32_reloc_symbol_deleted_p,
|
||||
_bfd_elf64_reloc_symbol_deleted_p): Delete.
|
||||
(bfd_elf_link_record_dynamic_symbol,
|
||||
bfd_elf_link_record_local_dynamic_symbol,
|
||||
bfd_elf_final_link, bfd_elf_gc_sections,
|
||||
bfd_elf_gc_record_vtinherit, bfd_elf_gc_record_vtentry,
|
||||
bfd_elf_gc_common_finalize_got_offsets, bfd_elf_gc_common_final_link,
|
||||
bfd_elf_reloc_symbol_deleted_p): Declare.
|
||||
(WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define.
|
||||
* elf32-arm.h: Update for changed function names. Remove local
|
||||
WILL_CALL_FINISH_DYNAMIC_SECTION define.
|
||||
* elf-hppa.h, elf-m10300.c, elf32-cris.c, elf32-d10v.c, elf32-dlx.c,
|
||||
* elf32-fr30.c, elf32-frv.c, elf32-h8300.c, elf32-hppa.c, elf32-i386.c,
|
||||
* elf32-iq2000.c, elf32-m32r.c, elf32-m68hc1x.c, elf32-m68k.c,
|
||||
* elf32-mcore.c, elf32-openrisc.c, elf32-ppc.c, elf32-s390.c,
|
||||
* elf32-sh.c, elf32-sparc.c, elf32-v850.c, elf32-vax.c,
|
||||
* elf32-xstormy16.c, elf32-xtensa.c, elf64-alpha.c, elf64-hppa.c,
|
||||
* elf64-mmix.c, elf64-ppc.c, elf64-s390.c, elf64-sh64.c, elf64-sparc.c,
|
||||
* elf64-x86-64.c, elfxx-ia64.c, elfxx-mips.c, elfxx-target.h: Likewise.
|
||||
* elfxx-target.h (bfd_elfNN_bfd_final_link): Define.
|
||||
(bfd_elfNN_print_symbol): Define.
|
||||
* elfcode.h: Don't include elflink.h.
|
||||
(elf_bfd_discard_info, elf_reloc_symbol_deleted_p,
|
||||
elf_link_record_dynamic_symbol, elf_bfd_final_link, elf_gc_sections,
|
||||
elf_gc_common_finalize_got_offsets, elf_gc_common_final_link,
|
||||
elf_gc_record_vtinherit, elf_gc_record_vtentry,
|
||||
elf_link_record_local_dynamic_symbol): Don't define.
|
||||
* elflink.c: Update for changed function names. Move elflink.h
|
||||
code here.
|
||||
* elflink.h: Delete file.
|
||||
* po/SRC-POTFILES.in: Regenerate.
|
||||
* po/bfd.pot: Regenerate.
|
||||
|
||||
2004-03-27 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* elf64-mmix.c (mmix_elf_relocate_section): Restore code setting
|
||||
|
@ -109,7 +161,7 @@
|
|||
|
||||
* elflink.h (elf_link_add_object_symbols): Add DT_NEEDED for as-needed
|
||||
and chained shared libs only if dynsym. Clear dynsym on forced-local.
|
||||
|
||||
|
||||
* elf-bfd.h (_bfd_elf_add_dynamic_entry): Declare.
|
||||
(bfd_elf32_add_dynamic_entry, bfd_elf64_add_dynamic_entry): Delete.
|
||||
(_bfd_elf_add_dt_needed_tag): Declare.
|
||||
|
@ -170,7 +222,7 @@
|
|||
(elf_xtensa_size_dynamic_sections): Don't add DT_TEXTREL entry.
|
||||
(elf_xtensa_relocate_section): Read literal tables and check for
|
||||
dynamic relocations in read-only sections and not in literal pools.
|
||||
|
||||
|
||||
2004-03-23 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
PR 51.
|
||||
|
|
|
@ -588,7 +588,7 @@ CFILES = $(SOURCE_CFILES) $(BUILD_CFILES)
|
|||
SOURCE_HFILES = \
|
||||
aout-target.h aoutf1.h aoutx.h coffcode.h coffswap.h ecoffswap.h \
|
||||
elf-bfd.h elf-hppa.h elf32-arm.h elf32-hppa.h \
|
||||
elf64-hppa.h elfcode.h elfcore.h elflink.h \
|
||||
elf64-hppa.h elfcode.h elfcore.h \
|
||||
freebsd.h genlink.h go32stub.h \
|
||||
libaout.h libbfd.h libcoff.h libecoff.h libhppa.h libieee.h \
|
||||
libnlm.h liboasys.h libpei.h libxcoff.h mach-o.h \
|
||||
|
@ -1310,7 +1310,7 @@ elf32-xtensa.lo: elf32-xtensa.c $(INCDIR)/filenames.h \
|
|||
elf32.lo: elf32.c elfcode.h $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \
|
||||
$(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \
|
||||
$(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h elfcore.h \
|
||||
elflink.h $(INCDIR)/safe-ctype.h
|
||||
$(INCDIR)/safe-ctype.h
|
||||
elflink.lo: elflink.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
|
||||
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
|
||||
$(INCDIR)/elf/external.h
|
||||
|
@ -1592,7 +1592,7 @@ elf64-sparc.lo: elf64-sparc.c $(INCDIR)/filenames.h \
|
|||
elf64.lo: elf64.c elfcode.h $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \
|
||||
$(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \
|
||||
$(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h elfcore.h \
|
||||
elflink.h $(INCDIR)/safe-ctype.h
|
||||
$(INCDIR)/safe-ctype.h
|
||||
mmo.lo: mmo.c $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \
|
||||
$(INCDIR)/elf/mmix.h $(INCDIR)/elf/reloc-macros.h $(INCDIR)/opcode/mmix.h
|
||||
nlm32-alpha.lo: nlm32-alpha.c $(INCDIR)/filenames.h \
|
||||
|
|
|
@ -725,7 +725,7 @@ CFILES = $(SOURCE_CFILES) $(BUILD_CFILES)
|
|||
SOURCE_HFILES = \
|
||||
aout-target.h aoutf1.h aoutx.h coffcode.h coffswap.h ecoffswap.h \
|
||||
elf-bfd.h elf-hppa.h elf32-arm.h elf32-hppa.h \
|
||||
elf64-hppa.h elfcode.h elfcore.h elflink.h \
|
||||
elf64-hppa.h elfcode.h elfcore.h \
|
||||
freebsd.h genlink.h go32stub.h \
|
||||
libaout.h libbfd.h libcoff.h libecoff.h libhppa.h libieee.h \
|
||||
libnlm.h liboasys.h libpei.h libxcoff.h mach-o.h \
|
||||
|
@ -1847,7 +1847,7 @@ elf32-xtensa.lo: elf32-xtensa.c $(INCDIR)/filenames.h \
|
|||
elf32.lo: elf32.c elfcode.h $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \
|
||||
$(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \
|
||||
$(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h elfcore.h \
|
||||
elflink.h $(INCDIR)/safe-ctype.h
|
||||
$(INCDIR)/safe-ctype.h
|
||||
elflink.lo: elflink.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
|
||||
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
|
||||
$(INCDIR)/elf/external.h
|
||||
|
@ -2129,7 +2129,7 @@ elf64-sparc.lo: elf64-sparc.c $(INCDIR)/filenames.h \
|
|||
elf64.lo: elf64.c elfcode.h $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \
|
||||
$(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \
|
||||
$(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h elfcore.h \
|
||||
elflink.h $(INCDIR)/safe-ctype.h
|
||||
$(INCDIR)/safe-ctype.h
|
||||
mmo.lo: mmo.c $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \
|
||||
$(INCDIR)/elf/mmix.h $(INCDIR)/elf/reloc-macros.h $(INCDIR)/opcode/mmix.h
|
||||
nlm32-alpha.lo: nlm32-alpha.c $(INCDIR)/filenames.h \
|
||||
|
|
|
@ -622,9 +622,7 @@ extern void bfd_elf_set_dyn_lib_class
|
|||
(bfd *, int);
|
||||
extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
|
||||
(bfd *, struct bfd_link_info *);
|
||||
extern bfd_boolean bfd_elf32_discard_info
|
||||
(bfd *, struct bfd_link_info *);
|
||||
extern bfd_boolean bfd_elf64_discard_info
|
||||
extern bfd_boolean bfd_elf_discard_info
|
||||
(bfd *, struct bfd_link_info *);
|
||||
|
||||
/* Return an upper bound on the number of bytes required to store a
|
||||
|
|
|
@ -629,9 +629,7 @@ extern void bfd_elf_set_dyn_lib_class
|
|||
(bfd *, int);
|
||||
extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
|
||||
(bfd *, struct bfd_link_info *);
|
||||
extern bfd_boolean bfd_elf32_discard_info
|
||||
(bfd *, struct bfd_link_info *);
|
||||
extern bfd_boolean bfd_elf64_discard_info
|
||||
extern bfd_boolean bfd_elf_discard_info
|
||||
(bfd *, struct bfd_link_info *);
|
||||
|
||||
/* Return an upper bound on the number of bytes required to store a
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2004-03-27 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* bfdint.texi: Remove all mention of elflink.h.
|
||||
|
||||
2004-03-19 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* Makefile.in: Regenerate.
|
||||
|
|
|
@ -1073,11 +1073,6 @@ sizes.
|
|||
Like @file{elfcode.h}, but for functions that are specific to ELF core
|
||||
files. This is included only by @file{elfcode.h}.
|
||||
|
||||
@item elflink.h
|
||||
@cindex @file{elflink.h}
|
||||
Like @file{elfcode.h}, but for functions used by the ELF linker. This
|
||||
is included only by @file{elfcode.h}.
|
||||
|
||||
@item elfxx-target.h
|
||||
@cindex @file{elfxx-target.h}
|
||||
This file is the source for the generated files @file{elf32-target.h}
|
||||
|
@ -1482,8 +1477,7 @@ external data. @file{elfcode.h} is compiled twice, once via
|
|||
@file{elfcode.h} includes functions to swap the ELF structures in and
|
||||
out of external form, as well as a few more complex functions.
|
||||
|
||||
Linker support is found in @file{elflink.c} and @file{elflink.h}. The
|
||||
latter file is compiled twice, for both 32 and 64 bit support. The
|
||||
Linker support is found in @file{elflink.c}. The
|
||||
linker support is only used if the processor specific file defines
|
||||
@samp{elf_backend_relocate_section}, which is required to relocate the
|
||||
section contents. If that macro is not defined, the generic linker code
|
||||
|
|
|
@ -1309,9 +1309,6 @@ extern void bfd_elf_print_symbol
|
|||
bfd_elf_string_from_elf_section (abfd, elf_elfheader(abfd)->e_shstrndx, \
|
||||
strindex)
|
||||
|
||||
#define bfd_elf32_print_symbol bfd_elf_print_symbol
|
||||
#define bfd_elf64_print_symbol bfd_elf_print_symbol
|
||||
|
||||
extern void _bfd_elf_sprintf_vma
|
||||
(bfd *, char *, bfd_vma);
|
||||
extern void _bfd_elf_fprintf_vma
|
||||
|
@ -1493,8 +1490,6 @@ extern bfd_boolean _bfd_elf_link_find_version_dependencies
|
|||
extern bfd_boolean _bfd_elf_link_assign_sym_version
|
||||
(struct elf_link_hash_entry *, void *);
|
||||
|
||||
extern bfd_boolean _bfd_elf_link_record_dynamic_symbol
|
||||
(struct bfd_link_info *, struct elf_link_hash_entry *);
|
||||
extern long _bfd_elf_link_lookup_local_dynindx
|
||||
(struct bfd_link_info *, bfd *, long);
|
||||
extern bfd_boolean _bfd_elf_compute_section_file_positions
|
||||
|
@ -1556,9 +1551,6 @@ extern int bfd_elf32_core_file_failing_signal
|
|||
extern bfd_boolean bfd_elf32_core_file_matches_executable_p
|
||||
(bfd *, bfd *);
|
||||
|
||||
extern bfd_boolean bfd_elf32_bfd_final_link
|
||||
(bfd *, struct bfd_link_info *);
|
||||
|
||||
extern void bfd_elf32_swap_symbol_in
|
||||
(bfd *, const void *, const void *, Elf_Internal_Sym *);
|
||||
extern void bfd_elf32_swap_symbol_out
|
||||
|
@ -1600,8 +1592,6 @@ extern int bfd_elf64_core_file_failing_signal
|
|||
(bfd *);
|
||||
extern bfd_boolean bfd_elf64_core_file_matches_executable_p
|
||||
(bfd *, bfd *);
|
||||
extern bfd_boolean bfd_elf64_bfd_final_link
|
||||
(bfd *, struct bfd_link_info *);
|
||||
|
||||
extern void bfd_elf64_swap_symbol_in
|
||||
(bfd *, const void *, const void *, Elf_Internal_Sym *);
|
||||
|
@ -1639,17 +1629,11 @@ extern bfd_boolean bfd_elf_link_add_symbols
|
|||
extern bfd_boolean _bfd_elf_add_dynamic_entry
|
||||
(struct bfd_link_info *, bfd_vma, bfd_vma);
|
||||
|
||||
#define bfd_elf32_link_record_dynamic_symbol \
|
||||
_bfd_elf_link_record_dynamic_symbol
|
||||
#define bfd_elf64_link_record_dynamic_symbol \
|
||||
_bfd_elf_link_record_dynamic_symbol
|
||||
extern bfd_boolean bfd_elf_link_record_dynamic_symbol
|
||||
(struct bfd_link_info *, struct elf_link_hash_entry *);
|
||||
|
||||
extern int elf_link_record_local_dynamic_symbol
|
||||
extern int bfd_elf_link_record_local_dynamic_symbol
|
||||
(struct bfd_link_info *, bfd *, long);
|
||||
#define _bfd_elf32_link_record_local_dynamic_symbol \
|
||||
elf_link_record_local_dynamic_symbol
|
||||
#define _bfd_elf64_link_record_local_dynamic_symbol \
|
||||
elf_link_record_local_dynamic_symbol
|
||||
|
||||
extern bfd_boolean _bfd_elf_close_and_cleanup
|
||||
(bfd *);
|
||||
|
@ -1657,31 +1641,25 @@ extern bfd_reloc_status_type _bfd_elf_rel_vtable_reloc_fn
|
|||
(bfd *, arelent *, struct bfd_symbol *, void *,
|
||||
asection *, bfd *, char **);
|
||||
|
||||
extern bfd_boolean _bfd_elf32_gc_sections
|
||||
extern bfd_boolean bfd_elf_final_link
|
||||
(bfd *, struct bfd_link_info *);
|
||||
extern bfd_boolean _bfd_elf32_gc_common_finalize_got_offsets
|
||||
|
||||
extern bfd_boolean bfd_elf_gc_sections
|
||||
(bfd *, struct bfd_link_info *);
|
||||
extern bfd_boolean _bfd_elf32_gc_common_final_link
|
||||
(bfd *, struct bfd_link_info *);
|
||||
extern bfd_boolean _bfd_elf32_gc_record_vtinherit
|
||||
(bfd *, asection *, struct elf_link_hash_entry *, bfd_vma);
|
||||
extern bfd_boolean _bfd_elf32_gc_record_vtentry
|
||||
|
||||
extern bfd_boolean bfd_elf_gc_record_vtinherit
|
||||
(bfd *, asection *, struct elf_link_hash_entry *, bfd_vma);
|
||||
|
||||
extern bfd_boolean _bfd_elf64_gc_sections
|
||||
(bfd *, struct bfd_link_info *);
|
||||
extern bfd_boolean _bfd_elf64_gc_common_finalize_got_offsets
|
||||
(bfd *, struct bfd_link_info *);
|
||||
extern bfd_boolean _bfd_elf64_gc_common_final_link
|
||||
(bfd *, struct bfd_link_info *);
|
||||
extern bfd_boolean _bfd_elf64_gc_record_vtinherit
|
||||
(bfd *, asection *, struct elf_link_hash_entry *, bfd_vma);
|
||||
extern bfd_boolean _bfd_elf64_gc_record_vtentry
|
||||
extern bfd_boolean bfd_elf_gc_record_vtentry
|
||||
(bfd *, asection *, struct elf_link_hash_entry *, bfd_vma);
|
||||
|
||||
extern bfd_boolean _bfd_elf32_reloc_symbol_deleted_p
|
||||
(bfd_vma, void *);
|
||||
extern bfd_boolean _bfd_elf64_reloc_symbol_deleted_p
|
||||
extern bfd_boolean bfd_elf_gc_common_finalize_got_offsets
|
||||
(bfd *, struct bfd_link_info *);
|
||||
|
||||
extern bfd_boolean bfd_elf_gc_common_final_link
|
||||
(bfd *, struct bfd_link_info *);
|
||||
|
||||
extern bfd_boolean bfd_elf_reloc_symbol_deleted_p
|
||||
(bfd_vma, void *);
|
||||
|
||||
/* Exported interface for writing elf corefile notes. */
|
||||
|
@ -1712,6 +1690,16 @@ extern bfd *_bfd_elf64_bfd_from_remote_memory
|
|||
extern bfd_boolean _sh_elf_set_mach_from_flags
|
||||
(bfd *);
|
||||
|
||||
/* This is the condition under which finish_dynamic_symbol will be called.
|
||||
If our finish_dynamic_symbol isn't called, we'll need to do something
|
||||
about initializing any .plt and .got entries in relocate_section. */
|
||||
#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, SHARED, H) \
|
||||
((DYN) \
|
||||
&& ((SHARED) \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \
|
||||
&& ((H)->dynindx != -1 \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
|
||||
|
||||
/* This macro is to avoid lots of duplicated code in the body
|
||||
of xxx_relocate_section() in the various elfxx-xxxx.c files. */
|
||||
#define RELOC_FOR_GLOBAL_SYMBOL(info, input_bfd, input_section, rel, \
|
||||
|
|
|
@ -32,7 +32,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
#define elf_hppa_reloc_final_type elf64_hppa_reloc_final_type
|
||||
#define _bfd_elf_hppa_gen_reloc_type _bfd_elf64_hppa_gen_reloc_type
|
||||
#define elf_hppa_relocate_section elf64_hppa_relocate_section
|
||||
#define bfd_elf_bfd_final_link bfd_elf64_bfd_final_link
|
||||
#define elf_hppa_final_link elf64_hppa_final_link
|
||||
#endif
|
||||
#if ARCH_SIZE == 32
|
||||
|
@ -41,7 +40,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
#define elf_hppa_reloc_final_type elf32_hppa_reloc_final_type
|
||||
#define _bfd_elf_hppa_gen_reloc_type _bfd_elf32_hppa_gen_reloc_type
|
||||
#define elf_hppa_relocate_section elf32_hppa_relocate_section
|
||||
#define bfd_elf_bfd_final_link bfd_elf32_bfd_final_link
|
||||
#define elf_hppa_final_link elf32_hppa_final_link
|
||||
#endif
|
||||
|
||||
|
@ -1295,7 +1293,7 @@ elf_hppa_final_link (bfd *abfd, struct bfd_link_info *info)
|
|||
info);
|
||||
|
||||
/* Invoke the regular ELF backend linker to do all the work. */
|
||||
retval = bfd_elf_bfd_final_link (abfd, info);
|
||||
retval = bfd_elf_final_link (abfd, info);
|
||||
|
||||
elf_link_hash_traverse (elf_hash_table (info),
|
||||
elf_hppa_remark_useless_dynamic_symbols,
|
||||
|
|
|
@ -616,7 +616,7 @@ _bfd_mn10300_elf_create_got_section (abfd, info)
|
|||
h->type = STT_OBJECT;
|
||||
|
||||
if (info->shared
|
||||
&& ! _bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
&& ! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -650,7 +650,7 @@ _bfd_mn10300_elf_create_got_section (abfd, info)
|
|||
h->type = STT_OBJECT;
|
||||
|
||||
if (info->shared
|
||||
&& ! _bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
&& ! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
|
||||
elf_hash_table (info)->hgot = h;
|
||||
|
@ -770,14 +770,14 @@ mn10300_elf_check_relocs (abfd, info, sec, relocs)
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_MN10300_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_MN10300_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
case R_MN10300_GOT32:
|
||||
|
@ -822,7 +822,7 @@ mn10300_elf_check_relocs (abfd, info, sec, relocs)
|
|||
/* Make sure this symbol is output as a dynamic symbol. */
|
||||
if (h->dynindx == -1)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -4186,7 +4186,7 @@ _bfd_mn10300_elf_adjust_dynamic_symbol (info, h)
|
|||
/* Make sure this symbol is output as a dynamic symbol. */
|
||||
if (h->dynindx == -1)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -1209,18 +1209,6 @@ elf32_arm_to_thumb_stub (info, name, input_bfd, output_bfd, input_section,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/* This is the condition under which elf32_arm_finish_dynamic_symbol
|
||||
will be called from elflink.h. If elflink.h doesn't call our
|
||||
finish_dynamic_symbol routine, we'll need to do something about
|
||||
initializing any .plt and .got entries in elf32_arm_relocate_section
|
||||
and elf32_arm_final_link_relocate. */
|
||||
#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, SHARED, H) \
|
||||
((DYN) \
|
||||
&& ((SHARED) \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \
|
||||
&& ((H)->dynindx != -1 \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
|
||||
|
||||
/* Perform a relocation as part of a final link. */
|
||||
|
||||
static bfd_reloc_status_type
|
||||
|
@ -3080,14 +3068,14 @@ elf32_arm_check_relocs (abfd, info, sec, relocs)
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_ARM_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_ARM_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
}
|
||||
|
@ -3343,7 +3331,7 @@ allocate_dynrelocs (h, inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -3403,7 +3391,7 @@ allocate_dynrelocs (h, inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -3456,7 +3444,7 @@ allocate_dynrelocs (h, inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -1442,7 +1442,7 @@ elf_cris_finish_dynamic_symbol (output_bfd, info, h, sym)
|
|||
to this function. Note that we embed knowledge that "incoming"
|
||||
.got goes after .got.plt in the output without padding (pointer
|
||||
aligned). However, that knowledge is present in several other
|
||||
places too, here and in elflink.h at least. */
|
||||
places too. */
|
||||
bfd_vma got_offset
|
||||
= (has_gotplt
|
||||
? gotplt_offset
|
||||
|
@ -2095,7 +2095,7 @@ elf_cris_adjust_dynamic_symbol (info, h)
|
|||
/* Make sure this symbol is output as a dynamic symbol. */
|
||||
if (h->dynindx == -1)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -2422,7 +2422,7 @@ cris_elf_check_relocs (abfd, info, sec, relocs)
|
|||
/* Make sure this symbol is output as a dynamic symbol. */
|
||||
if (h->dynindx == -1)
|
||||
{
|
||||
if (!bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (!bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -2639,14 +2639,14 @@ cris_elf_check_relocs (abfd, info, sec, relocs)
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_CRIS_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_CRIS_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
@ -3090,7 +3090,7 @@ elf_cris_reloc_type_class (rela)
|
|||
#define elf_backend_create_dynamic_sections \
|
||||
_bfd_elf_create_dynamic_sections
|
||||
#define bfd_elf32_bfd_final_link \
|
||||
_bfd_elf32_gc_common_final_link
|
||||
bfd_elf_gc_common_final_link
|
||||
#define elf_backend_hide_symbol elf_cris_hide_symbol
|
||||
#define elf_backend_reloc_type_class elf_cris_reloc_type_class
|
||||
|
||||
|
|
|
@ -334,14 +334,14 @@ elf32_d10v_check_relocs (abfd, info, sec, relocs)
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_D10V_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_D10V_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -558,14 +558,14 @@ elf32_dlx_check_relocs (abfd, info, sec, relocs)
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_DLX_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_DLX_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -718,14 +718,14 @@ fr30_elf_check_relocs (abfd, info, sec, relocs)
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_FR30_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_FR30_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -2676,7 +2676,7 @@ _frv_create_got_section (bfd *abfd, struct bfd_link_info *info)
|
|||
|
||||
/* Machine-specific: we want the symbol for executables as
|
||||
well. */
|
||||
if (! _bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
|
||||
elf_hash_table (info)->hgot = h;
|
||||
|
@ -2724,7 +2724,7 @@ _frv_create_got_section (bfd *abfd, struct bfd_link_info *info)
|
|||
h->type = STT_OBJECT;
|
||||
|
||||
/* Machine-specific: we want the symbol for executables as well. */
|
||||
if (! _bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
|
@ -2779,7 +2779,7 @@ elf32_frv_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
|
|||
h->type = STT_OBJECT;
|
||||
|
||||
if (! info->executable
|
||||
&& ! _bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
&& ! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -4028,7 +4028,7 @@ elf32_frv_check_relocs (abfd, info, sec, relocs)
|
|||
case STV_HIDDEN:
|
||||
break;
|
||||
default:
|
||||
bfd_elf32_link_record_dynamic_symbol (info, h);
|
||||
bfd_elf_link_record_dynamic_symbol (info, h);
|
||||
break;
|
||||
}
|
||||
picrel
|
||||
|
@ -4107,14 +4107,14 @@ elf32_frv_check_relocs (abfd, info, sec, relocs)
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_FRV_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_FRV_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -1558,7 +1558,7 @@ elf32_h8_gc_sweep_hook (bfd *abfd ATTRIBUTE_UNUSED,
|
|||
|
||||
/* ??? when elf_backend_relocate_section is not defined, elf32-target.h
|
||||
defaults to using _bfd_generic_link_hash_table_create, but
|
||||
elflink.h:bfd_elf32_size_dynamic_sections uses
|
||||
bfd_elf_size_dynamic_sections uses
|
||||
dynobj = elf_hash_table (info)->dynobj;
|
||||
and thus requires an elf hash table. */
|
||||
#define bfd_elf32_bfd_link_hash_table_create _bfd_elf_link_hash_table_create
|
||||
|
|
|
@ -1199,16 +1199,14 @@ elf32_hppa_check_relocs (bfd *abfd,
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_PARISC_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec,
|
||||
&h->elf, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, &h->elf, rel->r_offset))
|
||||
return FALSE;
|
||||
continue;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_PARISC_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec,
|
||||
&h->elf, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, &h->elf, rel->r_addend))
|
||||
return FALSE;
|
||||
continue;
|
||||
|
||||
|
@ -1621,17 +1619,6 @@ elf32_hppa_hide_symbol (struct bfd_link_info *info,
|
|||
}
|
||||
}
|
||||
|
||||
/* This is the condition under which elf32_hppa_finish_dynamic_symbol
|
||||
will be called from elflink.h. If elflink.h doesn't call our
|
||||
finish_dynamic_symbol routine, we'll need to do something about
|
||||
initializing any .plt and .got entries in elf32_hppa_relocate_section. */
|
||||
#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, INFO, H) \
|
||||
((DYN) \
|
||||
&& ((INFO)->shared \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \
|
||||
&& ((H)->dynindx != -1 \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
|
||||
|
||||
/* Adjust a symbol defined by a dynamic object and referenced by a
|
||||
regular object. The current definition is in some section of the
|
||||
dynamic object, but we're not including those sections. We have to
|
||||
|
@ -1803,11 +1790,11 @@ allocate_plt_static (struct elf_link_hash_entry *h, void *inf)
|
|||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0
|
||||
&& h->type != STT_PARISC_MILLI)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h))
|
||||
if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info->shared, h))
|
||||
{
|
||||
/* Allocate these later. From this point on, h->plabel
|
||||
means that the plt entry is only used by a plabel.
|
||||
|
@ -1881,7 +1868,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0
|
||||
&& h->type != STT_PARISC_MILLI)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1952,7 +1939,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0
|
||||
&& h->type != STT_PARISC_MILLI)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -3005,7 +2992,7 @@ static bfd_boolean
|
|||
elf32_hppa_final_link (bfd *abfd, struct bfd_link_info *info)
|
||||
{
|
||||
/* Invoke the regular ELF linker to do all the work. */
|
||||
if (!bfd_elf32_bfd_final_link (abfd, info))
|
||||
if (!bfd_elf_final_link (abfd, info))
|
||||
return FALSE;
|
||||
|
||||
/* If we're producing a final executable, sort the contents of the
|
||||
|
@ -3479,7 +3466,8 @@ elf32_hppa_relocate_section (bfd *output_bfd,
|
|||
|
||||
off = h->elf.got.offset;
|
||||
dyn = htab->elf.dynamic_sections_created;
|
||||
if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, &h->elf))
|
||||
if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info->shared,
|
||||
&h->elf))
|
||||
{
|
||||
/* If we aren't going to call finish_dynamic_symbol,
|
||||
then we need to handle initialisation of the .got
|
||||
|
@ -3571,7 +3559,8 @@ elf32_hppa_relocate_section (bfd *output_bfd,
|
|||
if (h != NULL)
|
||||
{
|
||||
off = h->elf.plt.offset;
|
||||
if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, &h->elf))
|
||||
if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info->shared,
|
||||
&h->elf))
|
||||
{
|
||||
/* In a non-shared link, adjust_dynamic_symbols
|
||||
isn't called for symbols forced local. We
|
||||
|
|
|
@ -1157,14 +1157,14 @@ elf_i386_check_relocs (bfd *abfd,
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_386_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_386_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
@ -1458,17 +1458,6 @@ elf_i386_adjust_dynamic_symbol (struct bfd_link_info *info,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/* This is the condition under which elf_i386_finish_dynamic_symbol
|
||||
will be called from elflink.h. If elflink.h doesn't call our
|
||||
finish_dynamic_symbol routine, we'll need to do something about
|
||||
initializing any .plt and .got entries in elf_i386_relocate_section. */
|
||||
#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, SHARED, H) \
|
||||
((DYN) \
|
||||
&& ((SHARED) \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \
|
||||
&& ((H)->dynindx != -1 \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
|
||||
|
||||
/* Allocate space in .plt, .got and associated reloc sections for
|
||||
dynamic relocs. */
|
||||
|
||||
|
@ -1500,7 +1489,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1568,7 +1557,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1657,7 +1646,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -484,14 +484,14 @@ iq2000_elf_check_relocs (abfd, info, sec, relocs)
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_IQ2000_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_IQ2000_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
|
|
@ -1742,7 +1742,7 @@ m32r_elf_create_dynamic_sections (abfd, info)
|
|||
h->type = STT_OBJECT;
|
||||
|
||||
if (info->shared
|
||||
&& ! _bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
&& ! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -2049,17 +2049,6 @@ printf("m32r_elf_adjust_dynamic_symbol()\n");
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/* This is the condition under which finish_dynamic_symbol will be called
|
||||
from elflink.h. If elflink.h doesn't call our finish_dynamic_symbol
|
||||
routine, we'll need to do something about initializing any .plt and .got
|
||||
entries in relocate_section. */
|
||||
#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, INFO, H) \
|
||||
((DYN) \
|
||||
&& ((INFO)->shared \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \
|
||||
&& ((H)->dynindx != -1 \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
|
||||
|
||||
/* Allocate space in .plt, .got and associated reloc sections for
|
||||
dynamic relocs. */
|
||||
|
||||
|
@ -2105,11 +2094,11 @@ allocate_dynrelocs (h, inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h))
|
||||
if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info->shared, h))
|
||||
{
|
||||
asection *s = htab->splt;
|
||||
|
||||
|
@ -2164,7 +2153,7 @@ allocate_dynrelocs (h, inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -2173,7 +2162,7 @@ allocate_dynrelocs (h, inf)
|
|||
h->got.offset = s->_raw_size;
|
||||
s->_raw_size += 4;
|
||||
dyn = htab->root.dynamic_sections_created;
|
||||
if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h))
|
||||
if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info->shared, h))
|
||||
htab->srelgot->_raw_size += sizeof (Elf32_External_Rela);
|
||||
}
|
||||
else
|
||||
|
@ -2224,7 +2213,7 @@ allocate_dynrelocs (h, inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -2723,7 +2712,8 @@ m32r_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
|| r_type == R_M32R_GOT16_HI_ULO
|
||||
|| r_type == R_M32R_GOT16_HI_SLO
|
||||
|| r_type == R_M32R_GOT16_LO)
|
||||
&& WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h)
|
||||
&& WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn,
|
||||
info->shared, h)
|
||||
&& (! info->shared
|
||||
|| (! info->symbolic && h->dynindx != -1)
|
||||
|| (h->elf_link_hash_flags
|
||||
|
@ -2845,7 +2835,7 @@ m32r_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
BFD_ASSERT (off != (bfd_vma) -1);
|
||||
|
||||
dyn = htab->root.dynamic_sections_created;
|
||||
if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h)
|
||||
if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info->shared, h)
|
||||
|| (info->shared
|
||||
&& (info->symbolic
|
||||
|| h->dynindx == -1
|
||||
|
@ -4656,18 +4646,18 @@ m32r_elf_check_relocs (abfd, info, sec, relocs)
|
|||
Reconstruct it for later use during GC. */
|
||||
case R_M32R_RELA_GNU_VTINHERIT:
|
||||
case R_M32R_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_M32R_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
case R_M32R_RELA_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -893,14 +893,14 @@ elf32_m68hc11_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_M68HC11_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_M68HC11_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -508,7 +508,7 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (!bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (!bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -586,7 +586,7 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (!bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (!bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -745,14 +745,14 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_68K_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_68K_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
@ -970,7 +970,7 @@ elf_m68k_adjust_dynamic_symbol (info, h)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1099,17 +1099,6 @@ elf_m68k_adjust_dynamic_symbol (info, h)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/* This is the condition under which elf_m68k_finish_dynamic_symbol
|
||||
will be called from elflink.h. If elflink.h doesn't call our
|
||||
finish_dynamic_symbol routine, we'll need to do something about
|
||||
initializing any .plt and .got entries in elf_m68k_relocate_section. */
|
||||
#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, SHARED, H) \
|
||||
((DYN) \
|
||||
&& ((SHARED) \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \
|
||||
&& ((H)->dynindx != -1 \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
|
||||
|
||||
/* Set the sizes of the dynamic sections. */
|
||||
|
||||
static bfd_boolean
|
||||
|
@ -2242,7 +2231,7 @@ elf32_m68k_reloc_type_class (rela)
|
|||
_bfd_elf_create_dynamic_sections
|
||||
#define bfd_elf32_bfd_link_hash_table_create \
|
||||
elf_m68k_link_hash_table_create
|
||||
#define bfd_elf32_bfd_final_link _bfd_elf32_gc_common_final_link
|
||||
#define bfd_elf32_bfd_final_link bfd_elf_gc_common_final_link
|
||||
|
||||
#define elf_backend_check_relocs elf_m68k_check_relocs
|
||||
#define elf_backend_adjust_dynamic_symbol \
|
||||
|
|
|
@ -647,14 +647,14 @@ mcore_elf_check_relocs (abfd, info, sec, relocs)
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_MCORE_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_MCORE_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -535,14 +535,14 @@ openrisc_elf_check_relocs (abfd, info, sec, relocs)
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_OPENRISC_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_OPENRISC_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -2392,7 +2392,7 @@ elf_create_pointer_linker_section (bfd *abfd,
|
|||
/* Make sure this symbol is output as a dynamic symbol. */
|
||||
if (h->dynindx == -1)
|
||||
{
|
||||
if (! _bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -2685,7 +2685,7 @@ ppc_elf_create_linker_section (bfd *abfd,
|
|||
lsect->sym_hash = h;
|
||||
|
||||
if (info->shared
|
||||
&& ! _bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
&& ! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -2993,17 +2993,6 @@ ppc_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/* This is the condition under which finish_dynamic_symbol will be
|
||||
called from elflink.h. If elflink.h doesn't call our
|
||||
finish_dynamic_symbol routine, we'll need to do something about
|
||||
initializing any .plt and .got entries in relocate_section. */
|
||||
#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, SHARED, H) \
|
||||
((DYN) \
|
||||
&& ((SHARED) \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \
|
||||
&& ((H)->dynindx != -1 \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
|
||||
|
||||
/* Of those relocs that might be copied as dynamic relocs, this macro
|
||||
selects those that must be copied when linking a shared library,
|
||||
even when the symbol is local. */
|
||||
|
@ -3042,7 +3031,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -3105,7 +3094,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||
if (eh->elf.dynindx == -1
|
||||
&& (eh->elf.elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (!bfd_elf32_link_record_dynamic_symbol (info, &eh->elf))
|
||||
if (!bfd_elf_link_record_dynamic_symbol (info, &eh->elf))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -3195,7 +3184,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||
&& h->root.type == bfd_link_hash_undefweak
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -3214,7 +3203,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf64_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -3806,14 +3795,14 @@ ppc_elf_check_relocs (bfd *abfd,
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_PPC_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_PPC_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
|
|
@ -1345,14 +1345,14 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_390_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_390_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
@ -1716,17 +1716,6 @@ elf_s390_adjust_dynamic_symbol (info, h)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/* This is the condition under which elf_s390_finish_dynamic_symbol
|
||||
will be called from elflink.h. If elflink.h doesn't call our
|
||||
finish_dynamic_symbol routine, we'll need to do something about
|
||||
initializing any .plt and .got entries in elf_s390_relocate_section. */
|
||||
#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, SHARED, H) \
|
||||
((DYN) \
|
||||
&& ((SHARED) \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \
|
||||
&& ((H)->dynindx != -1 \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
|
||||
|
||||
/* Allocate space in .plt, .got and associated reloc sections for
|
||||
dynamic relocs. */
|
||||
|
||||
|
@ -1762,7 +1751,7 @@ allocate_dynrelocs (h, inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1845,7 +1834,7 @@ allocate_dynrelocs (h, inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1923,7 +1912,7 @@ allocate_dynrelocs (h, inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -3924,7 +3924,7 @@ sh_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
|
|||
h->type = STT_OBJECT;
|
||||
|
||||
if (info->shared
|
||||
&& ! _bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
&& ! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -4167,17 +4167,6 @@ sh_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/* This is the condition under which sh_elf_finish_dynamic_symbol
|
||||
will be called from elflink.h. If elflink.h doesn't call our
|
||||
finish_dynamic_symbol routine, we'll need to do something about
|
||||
initializing any .plt and .got entries in sh_elf_relocate_section. */
|
||||
#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, SHARED, H) \
|
||||
((DYN) \
|
||||
&& ((SHARED) \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \
|
||||
&& ((H)->dynindx != -1 \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
|
||||
|
||||
/* Allocate space in .plt, .got and associated reloc sections for
|
||||
dynamic relocs. */
|
||||
|
||||
|
@ -4223,7 +4212,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -4284,7 +4273,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -4322,7 +4311,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -4387,7 +4376,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -6490,14 +6479,14 @@ sh_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec,
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_SH_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_SH_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
|
|
@ -1267,12 +1267,12 @@ elf32_sparc_check_relocs (abfd, info, sec, relocs)
|
|||
break;
|
||||
|
||||
case R_SPARC_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
case R_SPARC_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
@ -1592,17 +1592,6 @@ elf32_sparc_adjust_dynamic_symbol (info, h)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/* This is the condition under which finish_dynamic_symbol will be called
|
||||
from elflink.h. If elflink.h doesn't call our finish_dynamic_symbol
|
||||
routine, we'll need to do something about initializing any .plt and .got
|
||||
entries in relocate_section. */
|
||||
#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, INFO, H) \
|
||||
((DYN) \
|
||||
&& ((INFO)->shared \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \
|
||||
&& ((H)->dynindx != -1 \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
|
||||
|
||||
/* Allocate space in .plt, .got and associated reloc sections for
|
||||
dynamic relocs. */
|
||||
|
||||
|
@ -1636,11 +1625,11 @@ allocate_dynrelocs (h, inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h))
|
||||
if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info->shared, h))
|
||||
{
|
||||
asection *s = htab->splt;
|
||||
|
||||
|
@ -1705,7 +1694,7 @@ allocate_dynrelocs (h, inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1724,7 +1713,7 @@ allocate_dynrelocs (h, inf)
|
|||
htab->srelgot->_raw_size += sizeof (Elf32_External_Rela);
|
||||
else if (tls_type == GOT_TLS_GD)
|
||||
htab->srelgot->_raw_size += 2 * sizeof (Elf32_External_Rela);
|
||||
else if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h))
|
||||
else if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info->shared, h))
|
||||
htab->srelgot->_raw_size += sizeof (Elf32_External_Rela);
|
||||
}
|
||||
else
|
||||
|
@ -1777,7 +1766,7 @@ allocate_dynrelocs (h, inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -2239,7 +2228,7 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
BFD_ASSERT (off != (bfd_vma) -1);
|
||||
dyn = elf_hash_table (info)->dynamic_sections_created;
|
||||
|
||||
if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h)
|
||||
if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info->shared, h)
|
||||
|| (info->shared
|
||||
&& (info->symbolic
|
||||
|| h->dynindx == -1
|
||||
|
|
|
@ -699,14 +699,14 @@ v850_elf_check_relocs (abfd, info, sec, relocs)
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_V850_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries
|
||||
are actually used. Record for later use during GC. */
|
||||
case R_V850_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
|
|
@ -821,14 +821,14 @@ elf_vax_check_relocs (abfd, info, sec, relocs)
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_VAX_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_VAX_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
@ -1006,7 +1006,7 @@ elf_vax_adjust_dynamic_symbol (info, h)
|
|||
/* Make sure this symbol is output as a dynamic symbol. */
|
||||
if (h->dynindx == -1)
|
||||
{
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1400,7 +1400,7 @@ elf_vax_instantiate_got_entries (h, infoptr)
|
|||
/* Make sure this symbol is output as a dynamic symbol. */
|
||||
if (h->dynindx == -1)
|
||||
{
|
||||
if (!bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (!bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -2133,7 +2133,7 @@ elf_vax_finish_dynamic_sections (output_bfd, info)
|
|||
_bfd_elf_create_dynamic_sections
|
||||
#define bfd_elf32_bfd_link_hash_table_create \
|
||||
elf_vax_link_hash_table_create
|
||||
#define bfd_elf32_bfd_final_link _bfd_elf32_gc_common_final_link
|
||||
#define bfd_elf32_bfd_final_link bfd_elf_gc_common_final_link
|
||||
|
||||
#define elf_backend_check_relocs elf_vax_check_relocs
|
||||
#define elf_backend_adjust_dynamic_symbol \
|
||||
|
|
|
@ -516,14 +516,14 @@ xstormy16_elf_check_relocs (abfd, info, sec, relocs)
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_XSTORMY16_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_XSTORMY16_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -733,14 +733,14 @@ elf_xtensa_check_relocs (abfd, info, sec, relocs)
|
|||
case R_XTENSA_GNU_VTINHERIT:
|
||||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
case R_XTENSA_GNU_VTENTRY:
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
@ -2720,7 +2720,7 @@ elf_xtensa_discard_info_for_section (abfd, cookie, info, sec)
|
|||
while (cookie->rel < cookie->relend
|
||||
&& cookie->rel->r_offset == offset)
|
||||
{
|
||||
if (_bfd_elf32_reloc_symbol_deleted_p (offset, cookie))
|
||||
if (bfd_elf_reloc_symbol_deleted_p (offset, cookie))
|
||||
{
|
||||
/* Remove the table entry. (If the reloc type is NONE, then
|
||||
the entry has already been merged with another and deleted
|
||||
|
@ -5815,7 +5815,6 @@ static struct bfd_elf_special_section const elf_xtensa_special_sections[]=
|
|||
|
||||
#define elf_info_to_howto elf_xtensa_info_to_howto_rela
|
||||
|
||||
#define bfd_elf32_bfd_final_link bfd_elf32_bfd_final_link
|
||||
#define bfd_elf32_bfd_merge_private_bfd_data elf_xtensa_merge_private_bfd_data
|
||||
#define bfd_elf32_new_section_hook elf_xtensa_new_section_hook
|
||||
#define bfd_elf32_bfd_print_private_bfd_data elf_xtensa_print_private_bfd_data
|
||||
|
|
|
@ -2462,7 +2462,7 @@ elf64_alpha_create_dynamic_sections (abfd, info)
|
|||
h->type = STT_OBJECT;
|
||||
|
||||
if (info->shared
|
||||
&& ! _bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
&& ! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
|
||||
s = bfd_make_section (abfd, ".rela.plt");
|
||||
|
@ -2506,7 +2506,7 @@ elf64_alpha_create_dynamic_sections (abfd, info)
|
|||
h->type = STT_OBJECT;
|
||||
|
||||
if (info->shared
|
||||
&& ! _bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
&& ! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
|
||||
elf_hash_table (info)->hgot = h;
|
||||
|
@ -5335,7 +5335,7 @@ elf64_alpha_final_link (abfd, info)
|
|||
}
|
||||
|
||||
/* Invoke the regular ELF backend linker to do all the work. */
|
||||
if (! bfd_elf64_bfd_final_link (abfd, info))
|
||||
if (! bfd_elf_final_link (abfd, info))
|
||||
return FALSE;
|
||||
|
||||
/* Now write out the computed sections. */
|
||||
|
|
|
@ -933,7 +933,7 @@ elf64_hppa_check_relocs (abfd, info, sec, relocs)
|
|||
section symbol for this section ends up in the dynamic
|
||||
symbol table. */
|
||||
if (info->shared && dynrel_type == R_PARISC_FPTR64
|
||||
&& ! (_bfd_elf64_link_record_local_dynamic_symbol
|
||||
&& ! (bfd_elf_link_record_local_dynamic_symbol
|
||||
(info, abfd, sec_symndx)))
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -1044,7 +1044,7 @@ allocate_global_data_dlt (dyn_h, data)
|
|||
bfd *owner;
|
||||
owner = (h ? h->root.u.def.section->owner : dyn_h->owner);
|
||||
|
||||
if (! (_bfd_elf64_link_record_local_dynamic_symbol
|
||||
if (! (bfd_elf_link_record_local_dynamic_symbol
|
||||
(x->info, owner, dyn_h->sym_indx)))
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -1148,7 +1148,7 @@ allocate_global_data_opd (dyn_h, data)
|
|||
bfd *owner;
|
||||
owner = (h ? h->root.u.def.section->owner : dyn_h->owner);
|
||||
|
||||
if (!_bfd_elf64_link_record_local_dynamic_symbol
|
||||
if (!bfd_elf_link_record_local_dynamic_symbol
|
||||
(x->info, owner, dyn_h->sym_indx))
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -1174,7 +1174,7 @@ allocate_global_data_opd (dyn_h, data)
|
|||
nh->root.u.def.value = h->root.u.def.value;
|
||||
nh->root.u.def.section = h->root.u.def.section;
|
||||
|
||||
if (! bfd_elf64_link_record_dynamic_symbol (x->info, nh))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (x->info, nh))
|
||||
return FALSE;
|
||||
|
||||
}
|
||||
|
@ -1510,7 +1510,7 @@ allocate_dynrel_entries (dyn_h, data)
|
|||
the symbol need only be added once. */
|
||||
if (dyn_h->h == 0
|
||||
|| (dyn_h->h->dynindx == -1 && dyn_h->h->type != STT_PARISC_MILLI))
|
||||
if (!_bfd_elf64_link_record_local_dynamic_symbol
|
||||
if (!bfd_elf_link_record_local_dynamic_symbol
|
||||
(x->info, rent->sec->owner, dyn_h->sym_indx))
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
@ -2027,14 +2027,14 @@ mmix_elf_check_relocs (abfd, info, sec, relocs)
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_MMIX_GNU_VTINHERIT:
|
||||
if (!_bfd_elf64_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_MMIX_GNU_VTENTRY:
|
||||
if (!_bfd_elf64_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
}
|
||||
|
@ -2272,7 +2272,7 @@ mmix_elf_final_link (abfd, info)
|
|||
--abfd->section_count;
|
||||
}
|
||||
|
||||
if (! bfd_elf64_bfd_final_link (abfd, info))
|
||||
if (! bfd_elf_final_link (abfd, info))
|
||||
return FALSE;
|
||||
|
||||
/* Since this section is marked SEC_LINKER_CREATED, it isn't output by
|
||||
|
|
|
@ -3808,14 +3808,14 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_PPC64_GNU_VTINHERIT:
|
||||
if (!_bfd_elf64_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_PPC64_GNU_VTENTRY:
|
||||
if (!_bfd_elf64_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
@ -4404,7 +4404,7 @@ func_desc_adjust (struct elf_link_hash_entry *h, void *inf)
|
|||
&& ELF_ST_VISIBILITY (fdh->elf.other) == STV_DEFAULT)))
|
||||
{
|
||||
if (fdh->elf.dynindx == -1)
|
||||
if (! bfd_elf64_link_record_dynamic_symbol (info, &fdh->elf))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, &fdh->elf))
|
||||
return FALSE;
|
||||
fdh->elf.elf_link_hash_flags
|
||||
|= (fh->elf.elf_link_hash_flags & (ELF_LINK_HASH_REF_REGULAR
|
||||
|
@ -5574,17 +5574,6 @@ ppc64_elf_tls_optimize (bfd *obfd ATTRIBUTE_UNUSED, struct bfd_link_info *info)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/* This is the condition under which ppc64_elf_finish_dynamic_symbol
|
||||
will be called from elflink.h. If elflink.h doesn't call our
|
||||
finish_dynamic_symbol routine, we'll need to do something about
|
||||
initializing any .plt and .got entries in ppc64_elf_relocate_section. */
|
||||
#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, SHARED, H) \
|
||||
((DYN) \
|
||||
&& ((SHARED) \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \
|
||||
&& ((H)->dynindx != -1 \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
|
||||
|
||||
/* Allocate space in .plt, .got and associated reloc sections for
|
||||
dynamic relocs. */
|
||||
|
||||
|
@ -5694,7 +5683,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf64_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -5775,7 +5764,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf64_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -1309,14 +1309,14 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_390_GNU_VTINHERIT:
|
||||
if (!_bfd_elf64_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_390_GNU_VTENTRY:
|
||||
if (!_bfd_elf64_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
@ -1687,17 +1687,6 @@ elf_s390_adjust_dynamic_symbol (info, h)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/* This is the condition under which elf_s390_finish_dynamic_symbol
|
||||
will be called from elflink.h. If elflink.h doesn't call our
|
||||
finish_dynamic_symbol routine, we'll need to do something about
|
||||
initializing any .plt and .got entries in elf_s390_relocate_section. */
|
||||
#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, SHARED, H) \
|
||||
((DYN) \
|
||||
&& ((SHARED) \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \
|
||||
&& ((H)->dynindx != -1 \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
|
||||
|
||||
/* Allocate space in .plt, .got and associated reloc sections for
|
||||
dynamic relocs. */
|
||||
|
||||
|
@ -1733,7 +1722,7 @@ allocate_dynrelocs (h, inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf64_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1816,7 +1805,7 @@ allocate_dynrelocs (h, inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf64_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1894,7 +1883,7 @@ allocate_dynrelocs (h, inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf64_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -2562,14 +2562,14 @@ sh_elf64_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_SH_GNU_VTINHERIT:
|
||||
if (!_bfd_elf64_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_SH_GNU_VTENTRY:
|
||||
if (!_bfd_elf64_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
@ -2634,7 +2634,7 @@ sh_elf64_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
|||
/* Make sure this symbol is output as a dynamic symbol. */
|
||||
if (h->dynindx == -1)
|
||||
{
|
||||
if (! bfd_elf64_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -2717,7 +2717,7 @@ sh_elf64_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
|||
/* Make sure this symbol is output as a dynamic symbol. */
|
||||
if (h->dynindx == -1)
|
||||
{
|
||||
if (! bfd_elf64_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -3299,7 +3299,7 @@ sh64_elf64_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
|
|||
h->type = STT_OBJECT;
|
||||
|
||||
if (info->shared
|
||||
&& ! _bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
&& ! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -3425,7 +3425,7 @@ sh64_elf64_adjust_dynamic_symbol (struct bfd_link_info *info,
|
|||
/* Make sure this symbol is output as a dynamic symbol. */
|
||||
if (h->dynindx == -1)
|
||||
{
|
||||
if (! bfd_elf64_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -1178,7 +1178,7 @@ sparc64_elf_check_relocs (abfd, info, sec, relocs)
|
|||
/* Make sure this symbol is output as a dynamic symbol. */
|
||||
if (h->dynindx == -1)
|
||||
{
|
||||
if (! bfd_elf64_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1261,7 +1261,7 @@ sparc64_elf_check_relocs (abfd, info, sec, relocs)
|
|||
/* Make sure this symbol is output as a dynamic symbol. */
|
||||
if (h->dynindx == -1)
|
||||
{
|
||||
if (! bfd_elf64_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1989,17 +1989,6 @@ sparc64_elf_relax_section (abfd, section, link_info, again)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/* This is the condition under which finish_dynamic_symbol will be called
|
||||
from elflink.h. If elflink.h doesn't call our finish_dynamic_symbol
|
||||
routine, we'll need to do something about initializing any .plt and
|
||||
.got entries in relocate_section. */
|
||||
#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, INFO, H) \
|
||||
((DYN) \
|
||||
&& ((INFO)->shared \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \
|
||||
&& ((H)->dynindx != -1 \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
|
||||
|
||||
/* Relocate a SPARC64 ELF section. */
|
||||
|
||||
static bfd_boolean
|
||||
|
@ -2327,7 +2316,7 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
BFD_ASSERT (off != (bfd_vma) -1);
|
||||
dyn = elf_hash_table (info)->dynamic_sections_created;
|
||||
|
||||
if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h)
|
||||
if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info->shared, h)
|
||||
|| (info->shared
|
||||
&& (info->symbolic
|
||||
|| h->dynindx == -1
|
||||
|
|
|
@ -951,14 +951,14 @@ elf64_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec,
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_X86_64_GNU_VTINHERIT:
|
||||
if (!_bfd_elf64_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_X86_64_GNU_VTENTRY:
|
||||
if (!_bfd_elf64_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
@ -1258,17 +1258,6 @@ elf64_x86_64_adjust_dynamic_symbol (struct bfd_link_info *info,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/* This is the condition under which elf64_x86_64_finish_dynamic_symbol
|
||||
will be called from elflink.h. If elflink.h doesn't call our
|
||||
finish_dynamic_symbol routine, we'll need to do something about
|
||||
initializing any .plt and .got entries in elf64_x86_64_relocate_section. */
|
||||
#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, SHARED, H) \
|
||||
((DYN) \
|
||||
&& ((SHARED) \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \
|
||||
&& ((H)->dynindx != -1 \
|
||||
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
|
||||
|
||||
/* Allocate space in .plt, .got and associated reloc sections for
|
||||
dynamic relocs. */
|
||||
|
||||
|
@ -1297,7 +1286,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf64_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1365,7 +1354,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf64_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1450,7 +1439,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf)
|
|||
if (h->dynindx == -1
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||
{
|
||||
if (! bfd_elf64_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -119,18 +119,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
#define elf_write_out_phdrs NAME(bfd_elf,write_out_phdrs)
|
||||
#define elf_write_relocs NAME(bfd_elf,write_relocs)
|
||||
#define elf_slurp_reloc_table NAME(bfd_elf,slurp_reloc_table)
|
||||
#define elf_bfd_discard_info NAME(bfd_elf,discard_info)
|
||||
#define elf_reloc_symbol_deleted_p NAME(_bfd_elf,reloc_symbol_deleted_p)
|
||||
#define elf_link_record_dynamic_symbol _bfd_elf_link_record_dynamic_symbol
|
||||
#define elf_bfd_final_link NAME(bfd_elf,bfd_final_link)
|
||||
#define elf_gc_sections NAME(_bfd_elf,gc_sections)
|
||||
#define elf_gc_common_finalize_got_offsets \
|
||||
NAME(_bfd_elf,gc_common_finalize_got_offsets)
|
||||
#define elf_gc_common_final_link NAME(_bfd_elf,gc_common_final_link)
|
||||
#define elf_gc_record_vtinherit NAME(_bfd_elf,gc_record_vtinherit)
|
||||
#define elf_gc_record_vtentry NAME(_bfd_elf,gc_record_vtentry)
|
||||
#define elf_link_record_local_dynamic_symbol \
|
||||
NAME(_bfd_elf,link_record_local_dynamic_symbol)
|
||||
|
||||
#if ARCH_SIZE == 64
|
||||
#define ELF_R_INFO(X,Y) ELF64_R_INFO(X,Y)
|
||||
|
@ -1731,7 +1719,6 @@ NAME(_bfd_elf,bfd_from_remote_memory)
|
|||
}
|
||||
|
||||
#include "elfcore.h"
|
||||
#include "elflink.h"
|
||||
|
||||
/* Size-dependent data and functions. */
|
||||
const struct elf_size_info NAME(_bfd_elf,size_info) = {
|
||||
|
|
3585
bfd/elflink.c
3585
bfd/elflink.c
File diff suppressed because it is too large
Load diff
3586
bfd/elflink.h
3586
bfd/elflink.h
File diff suppressed because it is too large
Load diff
|
@ -2459,7 +2459,7 @@ elfNN_ia64_check_relocs (abfd, info, sec, relocs)
|
|||
dynamic symbol table. */
|
||||
if (!h && info->shared)
|
||||
{
|
||||
if (! (_bfd_elfNN_link_record_local_dynamic_symbol
|
||||
if (! (bfd_elf_link_record_local_dynamic_symbol
|
||||
(info, abfd, (long) r_symndx)))
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -2631,7 +2631,7 @@ allocate_fptr (dyn_i, data)
|
|||
BFD_ASSERT ((h->root.type == bfd_link_hash_defined)
|
||||
|| (h->root.type == bfd_link_hash_defweak));
|
||||
|
||||
if (!_bfd_elfNN_link_record_local_dynamic_symbol
|
||||
if (!bfd_elf_link_record_local_dynamic_symbol
|
||||
(x->info, h->root.u.def.section->owner,
|
||||
global_sym_index (h)))
|
||||
return FALSE;
|
||||
|
@ -3838,7 +3838,7 @@ elfNN_ia64_final_link (abfd, info)
|
|||
}
|
||||
|
||||
/* Invoke the regular ELF backend linker to do all the work. */
|
||||
if (!bfd_elfNN_bfd_final_link (abfd, info))
|
||||
if (!bfd_elf_final_link (abfd, info))
|
||||
return FALSE;
|
||||
|
||||
if (unwind_output_sec)
|
||||
|
@ -4596,7 +4596,7 @@ elfNN_ia64_finish_dynamic_symbol (output_bfd, info, h, sym)
|
|||
/* Mark the symbol as undefined, rather than as defined in the
|
||||
plt section. Leave the value alone. */
|
||||
/* ??? We didn't redefine it in adjust_dynamic_symbol in the
|
||||
first place. But perhaps elflink.h did some for us. */
|
||||
first place. But perhaps elflink.c did some for us. */
|
||||
if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
|
||||
sym->st_shndx = SHN_UNDEF;
|
||||
}
|
||||
|
|
|
@ -2144,7 +2144,7 @@ mips_elf_record_global_got_symbol (struct elf_link_hash_entry *h,
|
|||
_bfd_mips_elf_hide_symbol (info, h, TRUE);
|
||||
break;
|
||||
}
|
||||
if (!bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (!bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -2956,7 +2956,7 @@ mips_elf_create_got_section (bfd *abfd, struct bfd_link_info *info,
|
|||
h->type = STT_OBJECT;
|
||||
|
||||
if (info->shared
|
||||
&& ! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
&& ! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
|
||||
amt = sizeof (struct mips_got_info);
|
||||
|
@ -4848,7 +4848,7 @@ _bfd_mips_elf_add_symbol_hook (bfd *abfd, struct bfd_link_info *info,
|
|||
h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
|
||||
h->type = STT_OBJECT;
|
||||
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
|
||||
mips_elf_hash_table (info)->use_rld_obj_head = TRUE;
|
||||
|
@ -4960,7 +4960,7 @@ _bfd_mips_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
|
|||
h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
|
||||
h->type = STT_SECTION;
|
||||
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -5005,7 +5005,7 @@ _bfd_mips_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
|
|||
h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
|
||||
h->type = STT_SECTION;
|
||||
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
|
||||
if (! mips_elf_hash_table (info)->use_rld_obj_head)
|
||||
|
@ -5029,7 +5029,7 @@ _bfd_mips_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
|
|||
h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
|
||||
h->type = STT_OBJECT;
|
||||
|
||||
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -5348,7 +5348,7 @@ _bfd_mips_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
|||
|
||||
/* We need a stub, not a plt entry for the undefined
|
||||
function. But we record it as if it needs plt. See
|
||||
elf_adjust_dynamic_symbol in elflink.h. */
|
||||
_bfd_elf_adjust_dynamic_symbol. */
|
||||
h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT;
|
||||
h->type = STT_FUNC;
|
||||
}
|
||||
|
@ -5460,14 +5460,14 @@ _bfd_mips_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
|||
/* This relocation describes the C++ object vtable hierarchy.
|
||||
Reconstruct it for later use during GC. */
|
||||
case R_MIPS_GNU_VTINHERIT:
|
||||
if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
/* This relocation describes which C++ vtable entries are actually
|
||||
used. Record for later use during GC. */
|
||||
case R_MIPS_GNU_VTENTRY:
|
||||
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_offset))
|
||||
if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_offset))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
@ -7731,7 +7731,7 @@ _bfd_mips_elf_discard_info (bfd *abfd, struct elf_reloc_cookie *cookie,
|
|||
|
||||
for (i = 0, skip = 0; i < o->_raw_size / PDR_SIZE; i ++)
|
||||
{
|
||||
if (MNAME(abfd,_bfd_elf,reloc_symbol_deleted_p) (i * PDR_SIZE, cookie))
|
||||
if (bfd_elf_reloc_symbol_deleted_p (i * PDR_SIZE, cookie))
|
||||
{
|
||||
tdata[i] = 1;
|
||||
skip ++;
|
||||
|
@ -8788,7 +8788,7 @@ _bfd_mips_elf_final_link (bfd *abfd, struct bfd_link_info *info)
|
|||
}
|
||||
|
||||
/* Invoke the regular ELF backend linker to do all the work. */
|
||||
if (!MNAME(abfd,bfd_elf,bfd_final_link) (abfd, info))
|
||||
if (!bfd_elf_final_link (abfd, info))
|
||||
return FALSE;
|
||||
|
||||
/* Now write out the computed sections. */
|
||||
|
|
|
@ -126,7 +126,7 @@
|
|||
#define elf_backend_gc_sweep_hook NULL
|
||||
#endif
|
||||
#ifndef bfd_elfNN_bfd_gc_sections
|
||||
#define bfd_elfNN_bfd_gc_sections _bfd_elfNN_gc_sections
|
||||
#define bfd_elfNN_bfd_gc_sections bfd_elf_gc_sections
|
||||
#endif
|
||||
|
||||
#ifndef bfd_elfNN_bfd_merge_sections
|
||||
|
@ -192,6 +192,9 @@
|
|||
#ifndef bfd_elfNN_bfd_link_add_symbols
|
||||
#define bfd_elfNN_bfd_link_add_symbols bfd_elf_link_add_symbols
|
||||
#endif
|
||||
#ifndef bfd_elfNN_bfd_final_link
|
||||
#define bfd_elfNN_bfd_final_link bfd_elf_final_link
|
||||
#endif
|
||||
#else /* ! defined (elf_backend_relocate_section) */
|
||||
/* If no backend relocate_section routine, use the generic linker.
|
||||
Note - this will prevent the port from being able to use some of
|
||||
|
@ -238,6 +241,10 @@
|
|||
#define bfd_elfNN_mkarchive _bfd_generic_mkarchive
|
||||
#endif
|
||||
|
||||
#ifndef bfd_elfNN_print_symbol
|
||||
#define bfd_elfNN_print_symbol bfd_elf_print_symbol
|
||||
#endif
|
||||
|
||||
#ifndef elf_symbol_leading_char
|
||||
#define elf_symbol_leading_char 0
|
||||
#endif
|
||||
|
|
|
@ -185,7 +185,6 @@ elfcore.h
|
|||
elf-eh-frame.c
|
||||
elf-hppa.h
|
||||
elflink.c
|
||||
elflink.h
|
||||
elf-m10200.c
|
||||
elf-m10300.c
|
||||
elfn32-mips.c
|
||||
|
|
568
bfd/po/bfd.pot
568
bfd/po/bfd.pot
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue