Commit Graph

602 Commits

Author SHA1 Message Date
Alan Modra db09f25b32 * deffilep.y (def_stash_module): Constify "name" param.
* pe-dll.c: Replace CONST with const throughout.
	(quick_symbol): Constify "n1", "n2", "n3" params.
	(make_singleton_name_thunk): Constify "import" param.  Make
	"buffer_len" a size_t.
	(make_import_fixup_entry): Constify "name", "fixup_name",
	"dll_symname" params.
	(pe_get16): Cast args of bfd_seek.  Replace bfd_read with bfd_bread.
	(pe_get32): Likewise.
	(pe_implied_import_dll): Likewise.

	* emultempl/beos.em (sort_by_file_name): Constify "ra", "rb".
	(sort_by_section_name): Likewise.

	* emultempl/pe.em: Move defines for arm_epoc_pe before bfd.h included.
	(make_import_fixup): Cast printf arg, rel->address to long rather
	than int.
	(gld_${EMULATION_NAME}_after_open): Don't compare NULL against int.
2001-09-18 10:10:21 +00:00
Alan Modra 7469926815 * ldmain.c (main): Rename BufferSize to ld_bufsz because HPUX
defines BufferSize.  Increase buffer size by one.
2001-09-16 04:25:33 +00:00
Hans-Peter Nilsson cfe5266f79 * lib/ld-lib.exp (run_dump_test): Handle new option
"objcopy_linked_file".  Return after failing, if errors were
	expected but none were found.
	(slurp_options): Support underscores in option names.
2001-09-15 00:56:42 +00:00
H.J. Lu 0c52a746f7 2001-09-14 H.J. Lu <hjl@gnu.org>
* ld-elfweak/bar.c: Updated.
	* ld-elfweak/bar1a.c: Likewise.
	* ld-elfweak/main.c: Likewise.
	* ld-elfweak/main1.c: Likewise.
	* ld-elfweak/elfweak.exp: Likewise.
	* ld-elfweak/weakdata.dsym: Updated.
2001-09-14 23:43:17 +00:00
Nick Clifton 775cabad23 Fix memory leak 2001-09-14 14:19:05 +00:00
Nick Clifton 056a1d49d7 Add support for arm-openbsd target 2001-09-14 11:46:40 +00:00
H.J. Lu a7d792bb15 2001-09-12 H.J. Lu <hjl@gnu.org>
* Makefile.am (ALL_EMULATIONS): Move eelf64ppc.o and
	eelf64lppc.o to ...
	(ALL_64_EMULATIONS): Here.
	* Makefile.in: Regenerated.
2001-09-12 23:57:21 +00:00
Charles Wilson 0d888aac30 2001-09-12 Paul Sokolovsky <Paul.Sokolovsky@technologist.com>
* emultempl/pe.em(make_import_fixup): change signature to
        take asection as well as arelec; we need this for proper
        error reporting.  Only call pe_create_import_fixup() if
        there is no attempt to add a constant addend to the reloc;
        otherwise, report error condition.
        * pe-dll.c(pe_walk_relocs_of_symbol): change signature,
        since final argument is a pointer to make_import_fixup().
        Change call to cb() to match make_import_fixup() signature.
        (make_import_fixup_mark): make buffer_len unsigned.
        * pe-dll.h: change signature of pe_walk_relocs_of_symbol.
2001-09-12  Charles Wilson  <cwilson@ece.gatech.edu>
        * ld.texinfo: add verbose documentation for auto-import
        direct-addressing workaround, to compliment the terse
        error message.
2001-09-12 15:58:10 +00:00
Catherine Moore cedacdc05a * scripttempl/v850.sc: Add gcc_except_table sections. 2001-09-12 14:09:18 +00:00
H.J. Lu bd7c9df68b 2001-09-11 H.J. Lu <hjl@gnu.org>
* ld-elfweak/elfweak.exp (build_lib): Take a list of object
	files.
	(build_exec): Likewise.
	Add more tests and make some xfail.

	* ld-elfweak/dso.dsym: Support symbol versioning.
	* ld-elfweak/dsow.dsym: Likewise.

	* ld-elfweak/main1.c: New.
	* ld-elfweak/bar1a.c: Likewise.
	* ld-elfweak/bar1b.c: Likewise.
	* ld-elfweak/bar1c.c: Likewise.
	* ld-elfweak/foo1a.c: Likewise.
	* ld-elfweak/foo1b.c: Likewise.
	* ld-elfweak/dsodata.dsym: Likewise.
	* ld-elfweak/dsowdata.dsym: Likewise.
	* ld-elfweak/weakdata.dsym: Likewise.
	* ld-elfweak/strongcomm.sym: Likewise.
	* ld-elfweak/strongdata.sym: Likewise.
	* ld-elfweak/weakdata.dat: Likewise.
	* ld-elfweak/strongdata.dat: Likewise.
2001-09-11 14:25:16 +00:00
H.J. Lu 16a572840c 2001-09-10 H.J. Lu <hjl@gnu.org>
* ld-elfweak/elfweak.exp: New.
	* ld-elfweak/bar.c: Likewise.
	* ld-elfweak/foo.c: Likewise.
	* ld-elfweak/main.c: Likewise.
	* ld-elfweak/dso.dsym: Likewise.
	* ld-elfweak/dsow.dsym: Likewise.
	* ld-elfweak/strong.sym: Likewise.
	* ld-elfweak/strong.dat: Likewise.
	* ld-elfweak/weak.dat: Likewise.
2001-09-10 17:11:34 +00:00
Jeff Law 38be0bb1e6 * emulparams/h8300helf.sh: Move stack to a much higher memory address.
* emulparams/h8300self.sh: Similarly.
2001-09-07 17:35:04 +00:00
Tom Rix 1fdf02497c Fix import symbols for AIX. 2001-09-06 15:20:01 +00:00
Nick Clifton 559e4713db Set correct value for default (PE) stack size. 2001-09-05 16:00:13 +00:00
Andreas Jaeger 9b5799b87b * emultempl/beos.em: Declare prototypes for comparions functions,
adjust definitions.
2001-09-03 07:29:50 +00:00
Andreas Jaeger 48f6162b7a * emultempl/aix.em: Add missing prototype.
* emultempl/lnk960.em: Likewise.
	* emultempl/vanilla.em: Likewise.
	* emultempl/armcoff.em: Likewise.
	* emultempl/armelf_oabi.em: Likewise.
	* emultempl/beos.em: Likewise.
	* emultempl/gld960c.em: Likewise.
	* emultempl/gld960.em: Likewise.

	* emulparams/elf64alpha.sh (PARSE_AND_LIST_PROLOGUE): Add parameter
	for prototype declaration.
2001-09-03 06:43:37 +00:00
Eric Christopher 39e5585e1b 2001-08-31 Eric Christopher <echristo@redhat.com>
Jason Eckhardt  <jle@redhat.com>

	* ldmain.c (get_emulation): Add support for -mips32 and -mips64.
2001-08-31 21:28:05 +00:00
Andreas Jaeger 3fc90ddbe3 * emultempl/pe.em: Add missing prototypes.
(gld_${EMULATION_NAME}_after_open): Remove extra args to
	pe_find_data_imports.
	(pr_sym): Add unused attribute.
2001-08-31 13:30:13 +00:00
Nick Clifton 063cb91d19 omitted in previous delta 2001-08-30 12:19:49 +00:00
Phil Blundell d43ded80a7 2001-08-29 Joel Sherrill <joel@OARcorp.com>
* configure.tgt (i[3456]86-*-rtems*, m68*-*-rtems*): Change
	default from coff to elf.
2001-08-29 18:47:28 +00:00
Jeff Law 3946dd2f8d * emulparams/h8300helf.sh: Resync with h8300elf.sh. Update
ARCH specification.
	* emulparams/h8300self.sh: Similarly.
2001-08-29 17:35:27 +00:00
Nick Clifton 70d0c6e9db Add missing changelog entry 2001-08-29 17:18:52 +00:00
Joern Rennecke 8af6dd4198 * Makefile.am (ALL_EMULATIONS): Add eh8300elf.o, eh8300elf.o and
eh8300self.o .
	(eh8300elf.c, eh8300helf.c, eh8300self.c): New targets.
	* configure.tgt (h8300-*-elf*): New case.
	* emulparams/h8300elf.sh, emulparams/h8300helf.sh: New files.
	* emulparams/h8300self.sh: New file.
	* Makefile.in: Regenerated.
2001-08-29 12:51:26 +00:00
Alan Modra ad9f78d1a8 * ld-checks/checks.exp: .lcomm is incompatible with ppc coff.
* ld-scripts/cross1.t: Add .toc section.
	* ld-scripts/cross2.t: Likewise.
	* ld-scripts/phdrs.exp: powerpc64 is 64 bit.
	* ld-srec/srec.exp: xfail powerpc64
2001-08-27 10:49:55 +00:00
Alan Modra 5c67d4bb59 * Makefile.am (ALL_EMULATIONS): Add eelf64ppc.o and eelf64lppc.o.
(eelf64ppc.c, eelf64lppc.c): Add make targets.
	Run "make dep-am"
	* Makefile.in: Regenerate.
	* configure.tgt: Add powerpc64 support.  Move pdp11, pjl, pj
	entries to correct alphabetical position.
	* emulparams/elf64ppc.sh: New.
	* emulparams/elf64lppc.sh: New.
2001-08-27 10:45:55 +00:00
Nick Clifton 081310158f Declare BSIZE as static 2001-08-27 08:52:50 +00:00
Jakub Jelinek db6751f2e7 * elf-bfd.h (enum elf_reloc_type_class): New.
(struct elf_backend_data): Add elf_backend_reloc_type_class.
	(_bfd_elf_reloc_type_class): New.
	* elfxx-target.h (elf_backend_reloc_type_class): Define.
	(elfNN_bed): Add elf_backend_reloc_type_class.
	* elf.c (_bfd_elf_reloc_type_class): New.
	* elf32-i386.c (elf_i386_check_relocs): Set DF_TEXTREL if the reloc
	is against read-only section.
	(elf_i386_size_dynamic_sections): Use DF_TEXTREL flag instead of
	looking up section names for DT_TEXTREL.
	(elf_i386_reloc_type_class): New.
	(elf_backend_reloc_type_class): Define.
	* elf32-sparc.c (elf32_sparc_check_relocs): Set DF_TEXTREL if the
	reloc is against read-only section.
	(elf32_sparc_size_dynamic_sections): Use DF_TEXTREL flag instead of
	looking up section names for DT_TEXTREL.
	(elf32_sparc_reloc_type_class): New.
	(elf_backend_reloc_type_class): Define.
	* elf64-sparc.c (sparc64_elf_check_relocs): Set DF_TEXTREL if the
	reloc is against read-only section.
	(sparc64_elf_size_dynamic_sections): Use DF_TEXTREL flag instead of
	looking up section names for DT_TEXTREL.
	(sparc64_elf_reloc_type_class): New.
	(elf_backend_reloc_type_class): Define.
	* elfxx-ia64.c (struct elfNN_ia64_link_hash_table): Add reltext field.
	(elfNN_ia64_hash_table_create): Clear ia64_info.
	(get_reloc_section): Set DF_TEXTREL if the reloc is against read-only
	section.
	(elfNN_ia64_size_dynamic_sections): Use ia64_info->reltext flag
	instead of looking up section names for DT_TEXTREL.
	(elfNN_ia64_reloc_type_class): New.
	(elf_backend_reloc_type_class): Define.
	* elflink.h (size_dynamic_sections): Add spare DT_NULL tags.
	(struct elf_link_sort_rela): New.
	(elf_link_sort_cmp1, elf_link_sort_cmp2, elf_link_sort_relocs): New.
	(elf_bfd_final_link): Call elf_link_sort_relocs.
	Convert one spare DT_NULL into DT_RELCOUNT resp. DT_RELACOUNT if
	necessary.

	* bfdlink.h (struct bfd_link_info): Add combreloc and
	spare_dynamic_tags fields.

	* emultempl/elf32.em (place_orphan): Place orphan .rel* sections
	into .rel.dyn resp. .rela.dyn if combreloc.
	(get_script): If .x linker script is equal to .xn, only put it
	once into the binary.
	Add .xc and .xsc scripts.
	(parse_args): Handle -z combreloc and -z nocombreloc.
	* scripttempl/elf.sc (.rela.sbss): Fix a typo.
	For .xc and .xsc scripts put all .rel* or .rela* input sections
	but .rel*.plt and PLT-like sections into .rel.dyn resp. .rela.dyn.
	* genscripts.sh (GENERATE_COMBRELOC_SCRIPT): Set if SCRIPT_NAME
	is elf.
	Strip trailing whitespace from script.
	Generate .xc and .xsc scripts if requested.
	* ldmain.c (main): Initialize link_info.combreloc and
	link_info.spare_dynamic_tags.
	* lexsup.c (OPTION_SPARE_DYNAMIC_TAGS): Define.
	(ld_options): Add --spare-dynamic-tags option.
	(parse_args): Likewise.
	* ld.texinfo: Document -z combreloc and -z nocombreloc.
	* ldint.texinfo: Document .xc and .xsc linker scripts.
	* NEWS: Add notes about -z combreloc and SHF_MERGE.
2001-08-23 15:14:18 +00:00
H.J. Lu 63d069c06f 2001-08-22 H.J. Lu <hjl@gnu.org>
* emulparams/elf32fr30.sh: Add a newline.
2001-08-22 16:00:25 +00:00
Nick Clifton 453abe3171 Return if target is `vax-*-ultrix*'.
Continue with other tests when there is a compilation error.
2001-08-21 16:04:37 +00:00
Andreas Jaeger 948f9114c9 * deffilep.y: Add missing prototypes.
* pe-dll.c: Likewise.
2001-08-21 11:42:57 +00:00
Alan Modra 2af022575a * ldlang.c (insert_pad): Fix typos in last patch. 2001-08-20 03:09:07 +00:00
Alan Modra bba1a0c062 * ldlang.c: When traversing lang_statement_union_type lists,
consistently use "header.next" rather than "next".
	* mpw-eppcmac.c: Likewise.
	* emultempl/beos.em: Likewise.
	* emultempl/hppaelf.em: Likewise.
	* emultempl/pe.em: Likewise.
	* ldlang.h (union lang_statement_union): Remove "next" field.
2001-08-20 02:14:50 +00:00
Alan Modra c0c330a70f * ldlang.c (insert_pad): Use offsetof macro.
(lang_size_sections): Always neuter padding statements.
	* emultempl/hppaelf.em (hppaelf_delete_padding_statements): Delete.
2001-08-20 01:21:08 +00:00
Alan Modra ae7fb08f1a * pe-dll.c (pe_dll_fill_sections): Correct type of "relax" param
passed to lang_size_sections.
	(pe_exe_fill_sections): Likewise.
	* emultempl/pe.em (output_prev_sec_find): Copied from elf32.em.
	(gld_${EMULATION_NAME}_place_orphan): Merge from elf32.em.
2001-08-20 00:22:41 +00:00
Alan Modra fab80407fe * emultempl/aix.em: Formatting fixes. 2001-08-18 15:42:26 +00:00
Alan Modra b3327aadfd * ldlang.c (insert_pad): Make use of an existing pad statement if
available.  Move code calculating alignment, adjusting section
	alignment power, and adjusting dot to ..
	(size_input_section): .. here.  Remove unused relax param.
	(lang_size_sections): Change boolean `relax' param to boolean *.
	Adjust call to size_input_section.  Make use of insert_pad to
	place pad after the assignment statement.  If relaxing, zap
	padding statements.
	(reset_memory_regions): Reset output_bfd section sizes too.
	(relax_again): Move to..
	(lang_process): ..here.  Adjust call to lang_size_sections, and
	remove duplicated code.
	* ldlang.h (lang_size_sections): Change `relax' param to boolean *.
2001-08-18 14:54:26 +00:00
Alan Modra 563e308f24 * ld.texinfo: Document that fill values now use the four least
significant bytes.
	* emulparams/elf32fr30.sh (NOP): Update.
	* emulparams/elf32mcore.sh: Likewise.
	* emulparams/elf64_s390.sh: Likewise.
	* emulparams/elf_i386.sh: Likewise.
	* emulparams/elf_i386_be.sh: Likewise.
	* emulparams/elf_i386_chaos.sh: Likewise.
	* emulparams/elf_i386_ldso.sh: Likewise.
	* emulparams/elf_s390.sh: Likewise.
	* emulparams/elf_x86_64.sh: Likewise.
	* emulparams/i386moss.sh: Likewise.
	* emulparams/i386nw.sh: Likewise.
	* emulparams/m68kelf.sh: Likewise.
	* scripttempl/elf.sc: Update NOP comment.
	* scripttempl/elfi370.sc: Likewise.
	* scripttempl/elfm68hc11.sc: Likewise.
	* scripttempl/elfm68hc12.sc: Likewise.
	* scripttempl/nw.sc: Likewise.
2001-08-17 09:51:08 +00:00
Tom Rix b90e1c6f3e Fix for ld 2001-08-15 17:10:18 +00:00
Alan Modra cde43e70f1 * emultempl/elf32.em: Formatting fixes.
(output_prev_sec_find): Test for bfd_ind_section too;  do so by
	looking at sec->owner.
	(output_rel_find): Move function inside LDEMUL_PLACE_ORPHAN test.
	(gld${EMULATION_NAME}_place_orphan): Add a few comments.  Remove
	unused code, and reorganize orphan section placement code.
2001-08-14 04:40:38 +00:00
Alan Modra 39dcfe18ca (wild_doit): Rename to lang_add_section. 2001-08-14 02:01:31 +00:00
Richard Henderson 908d20b308 * emultempl/needrelax.em: New file.
* emulparams/elf64_ia64.sh (EXTRA_EM_FILE): Reference it.
        * Makefile.am (eelf64_ia64.c): Depend on it.
        * Makefile.in: Rebuild.
2001-08-13 20:40:31 +00:00
Alan Modra 22af9fd35c * emultempl/elf32.em: For SEC_EXCLUDE sections, ensure that
output_section is set non-NULL.
2001-08-13 14:28:57 +00:00
Alan Modra 0f33d40bfc * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Return
`true' for SEC_EXCLUDE sections so that the generic code doesn't
	needlessly create an output_section_statement.  Treat a correctly
	named output_section_statement with NULL bfd_section as compatible.
2001-08-13 10:56:21 +00:00
Hans-Peter Nilsson 738472a889 Update copyright notice 2001-08-13 07:31:29 +00:00
Hans-Peter Nilsson 55ab6103c5 * emultempl/generic.em: Support EXTRA_EM_FILE.
(ld_${EMULATION_NAME}_emulation): Support emulation parameters
	LDEMUL_BEFORE_PARSE, LDEMUL_SYSLIB, LDEMUL_HLL,
	LDEMUL_AFTER_PARSE, LDEMUL_AFTER_OPEN, LDEMUL_AFTER_ALLOCATION,
	LDEMUL_SET_OUTPUT_ARCH, LDEMUL_CHOOSE_TARGET,
	LDEMUL_BEFORE_ALLOCATION, LDEMUL_GET_SCRIPT, LDEMUL_FINISH,
	LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS,
	LDEMUL_OPEN_DYNAMIC_ARCHIVE, LDEMUL_PLACE_ORPHAN,
	LDEMUL_SET_SYMBOLS, LDEMUL_PARSE_ARGS, LDEMUL_UNRECOGNIZED_FILE,
	LDEMUL_LIST_OPTIONS, LDEMUL_RECOGNIZED_FILE,
	LDEMUL_FIND_POTENTIAL_LIBRARIES.
2001-08-13 07:24:58 +00:00
Richard Henderson 24098abb6c * scripttempl/elf.sc, scripttempl/elfd30v.sc,
scripttempl/elfm68hc11.sc, scripttempl/elfm68hc12.sc,
        scripttempl/v850.sc: Keep .jcr data.
2001-08-12 20:19:49 +00:00
Nick Clifton b9a8de1ea3 Make --verbose always display linker script 2001-08-12 07:59:28 +00:00
Andreas Jaeger 0218d1e4c2 * configure.in: Add -Wstrict-prototypes and -Wmissing-prototypes
to build warnings.
	* configure: Regenerate.
2001-08-10 10:56:47 +00:00
Alan Modra 738108961e * emultempl/elf32.em (output_prev_sec_find): Add missing prototype. 2001-08-09 14:44:18 +00:00
Alan Modra 5253f23b62 * scripttempl/elf.sc: Move non-text .dynamic section before
.plt/.got/.sdata* group.
	(OTHER_GOT_SECTIONS): Move to immediately after .got.
	(OTHER_SDATA_SECTIONS): Add.
	* emulparams/criself.sh: Use OTHER_SDATA_SECTIONS rather than
	OTHER_GOT_SECTIONS.
	* emulparams/crislinux.sh: Likewise.
	* emulparams/elf32b4300.sh: Likewise.
	* emulparams/elf32bmip.sh: Likewise.
	* emulparams/elf32bmipn32.sh: Likewise.
	* emulparams/elf32bsmip.sh: Likewise.
	* emulparams/elf32btsmip.sh: Likewise.
	* emulparams/elf32ebmip.sh: Likewise.
	* emulparams/elf32elmip.sh: Likewise.
	* emulparams/elf32l4300.sh: Likewise.
	* emulparams/elf32lmip.sh: Likewise.
	* emulparams/elf32lsmip.sh: Likewise.
	* emulparams/elf32ltsmip.sh: Likewise.
	* emulparams/elf64bmip.sh: Likewise.
	* emulparams/elf64btsmip.sh: Likewise.
	* emulparams/elf64ltsmip.sh: Likewise.
2001-08-09 14:25:59 +00:00