This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

src ld/ChangeLog ld/NEWS ld/config.in ld/confi ...


CVSROOT:	/cvs/src
Module name:	src
Changes by:	nickc@sourceware.org	2008-05-21 12:01:37

Modified files:
	ld             : ChangeLog NEWS config.in configure configure.in 
	                 gen-doc.texi ld.texinfo 
	ld/emultempl   : m68kelf.em 
	ld/testsuite   : ChangeLog 
	ld/testsuite/ld-m68k: m68k.exp 
	bfd            : ChangeLog bfd-in.h bfd-in2.h elf32-arm.c 
	                 elf32-frv.c elf32-m68k.c elf64-hppa.c 
Added files:
	ld/testsuite/ld-m68k: got-12.s got-13.s got-14.s got-15.s 
	                      got-34.s got-35.s 
	                      got-multigot-12-13-14-34-35-ok.d 
	                      got-multigot-14-ok.d got-multigot-15-er.d 
	                      got-negative-12-13-14-34-ok.d 
	                      got-negative-12-13-14-35-er.d 
	                      got-negative-14-ok.d got-negative-15-er.d 
	                      got-single-12-ok.d got-single-13-er.d 
	                      got-xgot-12-13-14-15-34-35-ok.d 
	                      got-xgot-15-ok.d xgot-15.s 

Log message:
	Multi-GOT support for m68k.
	
	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.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/ChangeLog.diff?cvsroot=src&r1=1.1826&r2=1.1827
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/NEWS.diff?cvsroot=src&r1=1.81&r2=1.82
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/config.in.diff?cvsroot=src&r1=1.22&r2=1.23
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/configure.diff?cvsroot=src&r1=1.84&r2=1.85
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/configure.in.diff?cvsroot=src&r1=1.51&r2=1.52
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/gen-doc.texi.diff?cvsroot=src&r1=1.9&r2=1.10
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/ld.texinfo.diff?cvsroot=src&r1=1.210&r2=1.211
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/emultempl/m68kelf.em.diff?cvsroot=src&r1=1.10&r2=1.11
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ChangeLog.diff?cvsroot=src&r1=1.930&r2=1.931
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/got-12.s.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/got-13.s.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/got-14.s.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/got-15.s.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/got-34.s.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/got-35.s.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/got-multigot-12-13-14-34-35-ok.d.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/got-multigot-14-ok.d.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/got-multigot-15-er.d.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/got-negative-12-13-14-34-ok.d.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/got-negative-12-13-14-35-er.d.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/got-negative-14-ok.d.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/got-negative-15-er.d.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/got-single-12-ok.d.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/got-single-13-er.d.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/got-xgot-12-13-14-15-34-35-ok.d.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/got-xgot-15-ok.d.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/xgot-15.s.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-m68k/m68k.exp.diff?cvsroot=src&r1=1.6&r2=1.7
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=src&r1=1.4213&r2=1.4214
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/bfd-in.h.diff?cvsroot=src&r1=1.135&r2=1.136
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/bfd-in2.h.diff?cvsroot=src&r1=1.445&r2=1.446
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf32-arm.c.diff?cvsroot=src&r1=1.143&r2=1.144
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf32-frv.c.diff?cvsroot=src&r1=1.60&r2=1.61
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf32-m68k.c.diff?cvsroot=src&r1=1.106&r2=1.107
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf64-hppa.c.diff?cvsroot=src&r1=1.84&r2=1.85


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]