Age | Commit message (Collapse) | Author | Files | Lines |
|
When ld is running with something other than --hash-style=sysv by
default, numerous tests need tweaking. Most of the changes just add
--hash-style=sysv. I didn't want to make --hash-style=sysv global as
that means --hash-style=gnu isn't well tested.
* testsuite/ld-alpha/alpha.exp: Add --hash-style=sysv to various
test's ld options.
* testsuite/ld-arm/arm-elf.exp: Likewise.
* testsuite/ld-elf/elf.exp: Likewise.
* testsuite/ld-elf/readelf.exp: Likewise.
* testsuite/ld-elfvsb/elfvsb.exp: Likewise.
* testsuite/ld-i386/i386.exp: Likewise.
* testsuite/ld-ia64/ia64.exp: Likewise.
* testsuite/ld-m68k/m68k.exp: Likewise.
* testsuite/ld-metag/metag.exp: Likewise.
* testsuite/ld-powerpc/powerpc.exp: Likewise.
* testsuite/ld-s390/s390.exp: Likewise.
* testsuite/ld-sh/sh-vxworks.exp: Likewise.
* testsuite/ld-shared/shared.exp: Likewise.
* testsuite/ld-sparc/sparc.exp: Likewise.
* testsuite/ld-tic6x/tic6x.exp: Likewise.
* testsuite/ld-vax-elf/vax-elf.exp: Likewise.
* testsuite/ld-x86-64/mpx.exp: Likewise.
* testsuite/ld-x86-64/x86-64.exp: Likewise.
* testsuite/ld-xtensa/xtensa.exp: Likewise.
* testsuite/ld-elf/comm-data2.ld: Add .gnu.hash output section.
* testsuite/ld-elf/pr20828-v.ld: Likewise.
* testsuite/ld-elf/pr20828.ld: Likewise.
* testsuite/ld-elf/pr21233.ld: Likewise.
* testsuite/ld-elf/pr21384.ld: Likewise.
* testsuite/ld-elf/provide-hidden-1.ld: Likewise.
* testsuite/ld-elf/provide-hidden-2.ld: Likewise.
* testsuite/ld-elf/provide-hidden-s.ld: Likewise.
* testsuite/ld-scripts/cross1.t: Likewise.
* testsuite/ld-elf/stab.d: Adjust allowed section indices.
* testsuite/ld-i386/pie1.d: Don't match addresses.
* testsuite/ld-i386/plt-pic2.dd: Likewise.
* testsuite/ld-i386/pr19636-1d.d: Likewise.
* testsuite/ld-i386/pr19636-2c.d: Likewise.
* testsuite/ld-powerpc/elfv2so.d: Likewise.
* testsuite/ld-powerpc/tlsopt5.d: Likewise.
* testsuite/ld-powerpc/tlsopt5.wf: Likewise.
* testsuite/ld-powerpc/tlsopt5_32.d: Likewise.
* testsuite/ld-i386/pr19636-2b.d: Don't match _start.
* testsuite/ld-powerpc/ambiguousv1.d: Relax symbol count, index
and address match.
* testsuite/ld-powerpc/ambiguousv1b.d: Likewise.
* testsuite/ld-powerpc/ambiguousv2.d: Likewise.
* testsuite/ld-powerpc/ambiguousv2b.d: Likewise.
* testsuite/ld-aarch64/gc-plt-relocs.d: Run ld with --hash-style=sysv.
* testsuite/ld-aarch64/ifunc-1.d: Likewise.
* testsuite/ld-aarch64/ifunc-2.d: Likewise.
* testsuite/ld-aarch64/ifunc-21.d: Likewise.
* testsuite/ld-aarch64/relasz.d: Likewise.
* testsuite/ld-aarch64/tls-small-ld.d: Likewise.
* testsuite/ld-aarch64/tls-tiny-ld.d: Likewise.
* testsuite/ld-arc/tls_gd-01.d: Likewise.
* testsuite/ld-cris/libdso-10.d: Likewise.
* testsuite/ld-cris/libdso-2.d: Likewise.
* testsuite/ld-cris/pic-gc-72.d: Likewise.
* testsuite/ld-cris/pic-gc-73.d: Likewise.
* testsuite/ld-cris/tls-gd-1.d: Likewise.
* testsuite/ld-cris/tls-gd-1h.d: Likewise.
* testsuite/ld-cris/tls-gd-2.d: Likewise.
* testsuite/ld-cris/tls-gd-2h.d: Likewise.
* testsuite/ld-cris/tls-ie-10.d: Likewise.
* testsuite/ld-cris/tls-ie-11.d: Likewise.
* testsuite/ld-cris/tls-ie-8.d: Likewise.
* testsuite/ld-cris/tls-ie-9.d: Likewise.
* testsuite/ld-cris/tls-ld-4.d: Likewise.
* testsuite/ld-cris/tls-ld-5.d: Likewise.
* testsuite/ld-cris/tls-ld-6.d: Likewise.
* testsuite/ld-cris/tls-ld-7.d: Likewise.
* testsuite/ld-cris/tls-ldgd-14.d: Likewise.
* testsuite/ld-cris/tls-ldgd-15.d: Likewise.
* testsuite/ld-cris/tls-ldgdx-14.d: Likewise.
* testsuite/ld-cris/tls-ldgdx-15.d: Likewise.
* testsuite/ld-cris/tls-local-54.d: Likewise.
* testsuite/ld-cris/tls-local-60.d: Likewise.
* testsuite/ld-cris/tls-local-61.d: Likewise.
* testsuite/ld-cris/weakhiddso.d: Likewise.
* testsuite/ld-elf/linkinfo1a.d: Likewise.
* testsuite/ld-elf/linkinfo1b.d: Likewise.
* testsuite/ld-elf/pr19617a.d: Likewise.
* testsuite/ld-elfvsb/hidden2.d: Likewise.
* testsuite/ld-frv/fdpic-pie-6.d: Likewise.
* testsuite/ld-frv/fdpic-shared-2.d: Likewise.
* testsuite/ld-frv/fdpic-shared-5.d: Likewise.
* testsuite/ld-frv/fdpic-shared-6.d: Likewise.
* testsuite/ld-frv/fdpic-shared-8.d: Likewise.
* testsuite/ld-frv/fdpic-shared-local-2.d: Likewise.
* testsuite/ld-frv/fdpic-shared-local-8.d: Likewise.
* testsuite/ld-frv/tls-dynamic-2.d: Likewise.
* testsuite/ld-i386/ibt-plt-1.d: Likewise.
* testsuite/ld-i386/ibt-plt-2a.d: Likewise.
* testsuite/ld-i386/ibt-plt-2c.d: Likewise.
* testsuite/ld-i386/ibt-plt-3a.d: Likewise.
* testsuite/ld-i386/ibt-plt-3c.d: Likewise.
* testsuite/ld-i386/pr20830.d: Likewise.
* testsuite/ld-ia64/merge1.d: Likewise.
* testsuite/ld-ia64/merge2.d: Likewise.
* testsuite/ld-ia64/merge3.d: Likewise.
* testsuite/ld-ia64/merge4.d: Likewise.
* testsuite/ld-ia64/merge5.d: Likewise.
* testsuite/ld-ifunc/ifunc-1-local-x86.d: Likewise.
* testsuite/ld-ifunc/ifunc-1-x86.d: Likewise.
* testsuite/ld-ifunc/ifunc-2-i386-now.d: Likewise.
* testsuite/ld-ifunc/ifunc-2-local-i386-now.d: Likewise.
* testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d: Likewise.
* testsuite/ld-ifunc/ifunc-2-local-x86-64.d: Likewise.
* testsuite/ld-ifunc/ifunc-2-x86-64-now.d: Likewise.
* testsuite/ld-ifunc/ifunc-2-x86-64.d: Likewise.
* testsuite/ld-ifunc/ifunc-3a-x86.d: Likewise.
* testsuite/ld-ifunc/pr17154-i386-now.d: Likewise.
* testsuite/ld-ifunc/pr17154-i386.d: Likewise.
* testsuite/ld-ifunc/pr17154-x86-64-now.d: Likewise.
* testsuite/ld-ifunc/pr17154-x86-64.d: Likewise.
* testsuite/ld-m68k/got-1.d: Likewise.
* testsuite/ld-m68k/got-multigot-12-13-14-34-35-ok.d: Likewise.
* testsuite/ld-m68k/got-multigot-14-ok.d: Likewise.
* testsuite/ld-m68k/got-multigot-15-er.d: Likewise.
* testsuite/ld-m68k/got-negative-12-13-14-34-ok.d: Likewise.
* testsuite/ld-m68k/got-negative-12-13-14-35-er.d: Likewise.
* testsuite/ld-m68k/got-negative-14-ok.d: Likewise.
* testsuite/ld-m68k/got-negative-15-er.d: Likewise.
* testsuite/ld-m68k/got-single-12-ok.d: Likewise.
* testsuite/ld-m68k/got-single-13-er.d: Likewise.
* testsuite/ld-m68k/got-xgot-12-13-14-15-34-35-ok.d: Likewise.
* testsuite/ld-m68k/got-xgot-15-ok.d: Likewise.
* testsuite/ld-m68k/tls-gd-1.d: Likewise.
* testsuite/ld-m68k/tls-gd-2.d: Likewise.
* testsuite/ld-m68k/tls-gd-ie-1.d: Likewise.
* testsuite/ld-m68k/tls-ie-1.d: Likewise.
* testsuite/ld-m68k/tls-ld-1.d: Likewise.
* testsuite/ld-m68k/tls-ld-2.d: Likewise.
* testsuite/ld-sh/shared-2.d: Likewise.
* testsuite/ld-sh/tlsbin-2.d: Likewise.
* testsuite/ld-sh/tlspic-2.d: Likewise.
* testsuite/ld-x86-64/bnd-branch-1-now.d: Likewise.
* testsuite/ld-x86-64/bnd-ifunc-1-now.d: Likewise.
* testsuite/ld-x86-64/bnd-ifunc-1.d: Likewise.
* testsuite/ld-x86-64/bnd-ifunc-2-now.d: Likewise.
* testsuite/ld-x86-64/bnd-ifunc-2.d: Likewise.
* testsuite/ld-x86-64/bnd-plt-1-now.d: Likewise.
* testsuite/ld-x86-64/bnd-plt-1.d: Likewise.
* testsuite/ld-x86-64/ibt-plt-1-x32.d: Likewise.
* testsuite/ld-x86-64/ibt-plt-1.d: Likewise.
* testsuite/ld-x86-64/ibt-plt-2a-x32.d: Likewise.
* testsuite/ld-x86-64/ibt-plt-2a.d: Likewise.
* testsuite/ld-x86-64/ibt-plt-2c-x32.d: Likewise.
* testsuite/ld-x86-64/ibt-plt-2c.d: Likewise.
* testsuite/ld-x86-64/ibt-plt-3a-x32.d: Likewise.
* testsuite/ld-x86-64/ibt-plt-3a.d: Likewise.
* testsuite/ld-x86-64/ibt-plt-3c-x32.d: Likewise.
* testsuite/ld-x86-64/ibt-plt-3c.d: Likewise.
* testsuite/ld-x86-64/ilp32-4-nacl.d: Likewise.
* testsuite/ld-x86-64/ilp32-4.d: Likewise.
* testsuite/ld-x86-64/load1c-nacl.d: Likewise.
* testsuite/ld-x86-64/load1c.d: Likewise.
* testsuite/ld-x86-64/load1d-nacl.d: Likewise.
* testsuite/ld-x86-64/load1d.d: Likewise.
* testsuite/ld-x86-64/pie3-nacl.d: Likewise.
* testsuite/ld-x86-64/pie3.d: Likewise.
* testsuite/ld-x86-64/pr14207.d: Likewise.
* testsuite/ld-x86-64/pr19162.d: Likewise.
* testsuite/ld-x86-64/pr19636-2d-nacl.d: Likewise.
* testsuite/ld-x86-64/pr19636-2d.d: Likewise.
* testsuite/ld-x86-64/pr20253-1d.d: Likewise.
* testsuite/ld-x86-64/pr20253-1f.d: Likewise.
* testsuite/ld-x86-64/pr20253-1j.d: Likewise.
* testsuite/ld-x86-64/pr20253-1l.d: Likewise.
* testsuite/ld-x86-64/pr20830a-now.d: Likewise.
* testsuite/ld-x86-64/pr20830a.d: Likewise.
* testsuite/ld-x86-64/pr20830b-now.d: Likewise.
* testsuite/ld-x86-64/pr20830b.d: Likewise.
* testsuite/ld-x86-64/pr21038a-now.d: Likewise.
* testsuite/ld-x86-64/pr21038a.d: Likewise.
* testsuite/ld-x86-64/pr21038b-now.d: Likewise.
* testsuite/ld-x86-64/pr21038b.d: Likewise.
* testsuite/ld-x86-64/pr21038c-now.d: Likewise.
* testsuite/ld-x86-64/pr21038c.d: Likewise.
|
|
ld/testsuite/
* ld-m68k/got-multigot-12-13-14-34-35-ok.d: Update.
* ld-m68k/got-multigot-14-ok.d: Update.
* ld-m68k/m68k-got.exp: Update.
* ld-m68k/got-negative-12-13-14-34-ok.d: Update.
* ld-m68k/got-negative-14-ok.d: Update.
* ld-m68k/tls-gd-1.d, ld-m68k/tls-gd-2.d: New tests.
* ld-m68k/tls-gd-ie-1.d, ld-m68k/tls-ie-1.d: New tests.
* ld-m68k/tls-ld-1.d, ld-m68k/tls-ld-2.d: New tests.
* ld-m68k/tls-ld-1.s, ld-m68k/tls-ld-2.s, ld-m68k/tls-le-1.s:
New test sources.
* ld-m68k/tls-no-1.s, ld-m68k/tls-gd-ie-1.s, ld-m68k/tls-gd-1.s:
New test sources.
* ld-m68k/tls-gd-2.s, ld-m68k/tls-ie-1.s: New test sources.
* ld-m68k/m68k.exp: Run new tests.
(merge isa-a isa-a:nodiv): Fix.
gas/testsuite/
* gas/m68k/tls-gd-3.d, gas/m68k/tls-gd-3.s: New test.
* gas/m68k/all.exp: Run it.
gas/
* config/m68k-parse.h (enum pic_relocation): Add values for TLS
relocations.
* config/m68k-parse.y (yylex): Parse TLS relocations.
* config/tc-m68k.c (m68k_elf_cons): New static function.
(md_pseudo_table): Use it.
(get_reloc_code, tc_m68k_fix_adjustable, tc_gen_reloc): Handle TLS
relocations.
(md_apply_fix): Fix to set thread local flag.
(m68k_elf_suffix): New static function; helper for m68k_elf_cons.
include/elf/
* m68k.h: Map TLS relocations to numbers.
bfd/
* bfd-in2.h: Regenerate.
* elf32-m68k.c: Handle 2-slot GOT entries. Rename variables and
fields from n_entries to n_slots where appropriate, update comments.
(HOWTO): Add TLS relocations.
(reloc_map): Map BFD_RELOC_68K_TLS_* to R_68K_TLS_*.
(enum elf_m68k_got_offset_size): New enum.
(struct elf_m68k_got_entry.type): Move field to ...
(struct elf_m68k_got_entry_key): ... here. Update all uses.
(elf_m68k_reloc_got_type, elf_m68k_reloc_got_offset_size): New static
functions.
(elf_m68k_reloc_got_n_entries, elf_m68k_reloc_tls_p): New static
functions.
(struct elf_m68k_got): merge rel_8o_n_entries and rel_8o_16o_n_entries
fields into n_entries array. Update comments.
(elf_m68k_init_got): Simplify, update all uses.
(elf_m68k_init_got_entry_key): Handle R_68K_TLS_LDM32 reloc, update.
(ELF_M68K_REL_8O_MAX_N_ENTRIES_IN_GOT): Adjust to handle 2-slot
GOT entries; update name, update all uses.
(ELF_M68K_REL_8O_16O_MAX_N_ENTRIES_IN_GOT): Ditto.
(elf_m68k_get_got_entry): Update.
(elf_m68k_update_got_entry_type): Rewrite to handle TLS GOT entries,
simplify.
(elf_m68k_remove_got_entry_type): Simplify.
(elf_m68k_add_entry_to_got, elf_m68k_can_merge_gots_1): Update.
(elf_m68k_can_merge_gots): Update.
(elf_m68k_merge_gots_1, elf_m68k_merge_gots): Update.
(struct elf_m68k_finalize_got_offsets_arg): Rewrite to handle 2-slot
GOT entries, simplify.
(elf_m68k_finalize_got_offsets_1, elf_m68k_finalize_got_offsets): Same.
(struct elf_m68k_partition_multi_got_arg): Add slots_relas_diff
field, remove obsoleted local_n_entries field.
(elf_m68k_partition_multi_got_2): New static function.
(elf_m68k_partition_multi_got_1, elf_m68k_partition_multi_got): Use it;
update.
(elf_m68k_remove_got_entry_type): Update.
(elf_m68k_install_rela, dtpoff_base, tpoff): New static functions.
(elf_m68k_check_relocs): Handle TLS relocations. Remove unnecessary
update of sgot->size and srelgot->size.
(elf_m68k_gc_sweep_hook): Update.
(elf_m68k_install_rela, dtpoff_base, tpoff): New static functions.
(elf_m68k_relocate_section, elf_m68k_finish_dynamic_symbol): Handle
TLS relocations.
* reloc.c (BFD_RELOC_68K_TLS_*): Declare TLS relocations.
* libbfd.h (bfd_reloc_code_real_names): Add BFD_RELOC_68K_TLS_*.
|
|
* ld-m68k/got-12.s: Removed.
* ld-m68k/got-13.s: Likewise.
* ld-m68k/got-14.s: Likewise.
* ld-m68k/got-15.s: Likewise.
* ld-m68k/got-34.s: Likewise.
* ld-m68k/got-35.s: Likewise.
* ld-m68k/xgot-15.s: Likewise.
* ld-m68k/got-multigot-12-13-14-34-35-ok.d: Remove #source
and expected relocations.
* ld-m68k/got-multigot-14-ok.d: Likewise.
* ld-m68k/got-negative-12-13-14-34-ok.d: Likewise.
* ld-m68k/got-negative-14-ok.d: Likewise.
* ld-m68k/got-single-12-ok.d: Likewise.
* ld-m68k/got-xgot-12-13-14-15-34-35-ok.d: Likewise.
* ld-m68k/got-xgot-15-ok.d: Likewise.
* ld-m68k/got-multigot-15-er.d: Remove #source.
* ld-m68k/got-negative-12-13-14-35-er.d: Likewise.
* ld-m68k/got-negative-15-er.d: Likewise.
* ld-m68k/got-single-13-er.d: Likewise.
* ld-m68k/m68k.exp: Move GOT tests to ...
* ld-m68k/m68k-got.exp: This. New.
|
|
bfd/
* elf32-m68k.c (struct elf_m68k_link_hash_entry: got_entry_key,
glist): New fields.
(struct elf_m68k_got_entry_key, struct elf_m68k_got_entry,
struct elf_m68k_got, struct elf_m68k_bfd2got_entry,
struct elf_m68k_multi_got): New data structures.
(struct elf_m68k_link_hash_table: local_gp_p, use_neg_got_offsets_p,
allow_multigot_p, multi_got_): New fields.
(elf_m68k_multi_got): New macro.
(elf_m68k_link_hash_newfunc): Initialize new fields of
struct elf_m68k_link_hash_entry.
(elf_m68k_link_hash_table_create): Initialize new fields of
struct elf_m68k_link_hash_table.
(elf_m68k_link_hash_table_free): New static function implementing hook.
(elf_m68k_init_got, elf_m68k_clear_got, elf_m68k_create_empty_got): New
static functions for struct elf_m68k_got.
(elf_m68k_init_got_entry_key, elf_m68k_got_entry_hash,
elf_m68k_got_entry_eq): New static functions for
struct elf_m68k_got_entry.
(ELF_M68K_REL_8O_MAX_N_ENTRIES_IN_GOT,
ELF_M68K_REL_8O_16O_MAX_N_ENTRIES_IN_GOT): New macros.
(enum elf_m68k_get_entry_howto): New enum.
(elf_m68k_get_got_entry, elf_m68k_update_got_entry_type,
elf_m68k_remove_got_entry_type): New static functions for
struct elf_m68k_got_entry.
(elf_m68k_add_entry_to_got): New static function.
(elf_m68k_bfd2got_entry_hash, elf_m68k_bfd2got_entry_eq,
elf_m68k_bfd2got_entry_del, elf_m68k_get_bfd2got_entry): New static
functions for struct elf_m68k_bfd2got_entry.
(struct elf_m68k_can_merge_gots_arg, elf_m68k_can_merge_gots_1,
elf_m68k_can_merge_gots): New traversal.
(struct elf_m68k_merge_gots_arg, elf_m68k_merge_gots_1,
elf_m68k_merge_gots): Ditto.
(struct elf_m68k_finalize_got_offsets_arg,
elf_m68k_finalize_got_offsets_1, elf_m68k_finalize_got_offsets): Ditto.
(struct elf_m68k_partition_multi_got_arg,
elf_m68k_partition_multi_got_1, elf_m68k_init_symndx2h_1,
elf_m68k_partition_multi_got): Ditto.
(elf_m68k_find_got_entry_ptr, elf_m68k_remove_got_entry): New static
functions.
(elf_m68k_copy_indirect_symbol): New static function implementing
a hook.
(elf_m68k_check_relocs): Update to add entries to multi-GOT.
(elf_m68k_gc_sweep_hook): Update to remove entries from multi-GOT.
(elf_m68k_always_size_sections): Assign BFDs to GOTs.
(elf_m68k_relocate_section): Update to properly handle GOT relocations.
(elf_m68k_finish_dynamic_symbol): Update to traverse all GOT entries
of a global symbol.
(bfd_elf_m68k_set_target_options): New function.
(bfd_elf32_bfd_link_hash_table_free): Define hook.
(bfd_elf32_bfd_final_link): Change expansion to bfd_elf_final_link
to skip generic calculation of GOT offsets.
(elf_backend_copy_indirect_symbol): Define hook.
* bfd-in.h (bfd_elf_m68k_set_target_options): Declare function.
* bfd-in2.h: Regenerate.
ld/
* configure.in (--enable-got): New option. Handle it.
* configure: Regenerate.
* config.in: Regenerate.
* emultempl/m68kelf.em: (got_handling_target_default): New shell
variable.
(GOT_HANDLING_TARGET_DEFAULT): New macro.
(GOT_HANDLING_DEFAULT): New macro. Initialize it from configure
option if one was given.
(got_handling): New static variable.
(elf_m68k_create_output_section_statements): New static function
implementing hook.
(PARSE_AND_LIST_PROLOGUE): Define shell variable.
(OPTION_GOT): New macro.
(PARSE_AND_LIST_LONGOPTS): Define shell variable. Specify
--got option.
(got): New linker option.
(PARSE_AND_LIST_OPTIONS): Define shell variable. Print help string
for --got option.
(PARSE_AND_LIST_ARGS_CASES): Define shell variable. Handle --got
option.
* ld.texinfo: Document --got=<type> option.
* gen-doc.texi: Add M68K.
* NEWS: Mention the new feature.
ld/testsuite/
* ld-m68k/got-12.s: New file.
* ld-m68k/got-13.s: New file.
* ld-m68k/got-14.s: New file.
* ld-m68k/got-15.s: New file.
* ld-m68k/got-34.s: New file.
* ld-m68k/got-35.s: New file.
* ld-m68k/got-single-12-ok.d: New dump test.
* ld-m68k/got-single-13-er.d: New dump test.
* ld-m68k/got-negative-14-ok.d: New dump test.
* ld-m68k/got-negative-15-er.d: New dump test.
* ld-m68k/got-negative-12-13-14-34-ok.d: New dump test.
* ld-m68k/got-negative-12-13-14-35-er.d: New dump test.
* ld-m68k/got-multigot-14-ok.d: New dump test.
* ld-m68k/got-multigot-15-er.d: New dump test.
* ld-m68k/got-multigot-12-13-14-34-35-ok.d: New dump test.
* ld-m68k/xgot-15.s: New source.
* ld-m68k/got-xgot-15-ok.d: New test.
* ld-m68k/got-xgot-12-13-14-15-34-35-ok.d: New test.
* ld-m68k/m68k.exp: Run new tests.
|