Commit Graph

205 Commits

Author SHA1 Message Date
Alan Modra
73e87d7038 hash bfd sections for fast lookup and create.
bfd/ChangeLog
	* bfd.c (struct _bfd): Add section_htab, section_tail.
	* libbfd-in.h (_bfd_delete_bfd): Declare.
	(bfd_section_hash_newfunc): Declare.
	* opncls.c (_bfd_new_bfd): Free memory on failure.  Init
	section_htab and section_tail.
	(_bfd_delete_bfd): New function.
	(bfd_openr): Use it.
	(bfd_fdopenr): Likewise.
	(bfd_openstreamr): Likewise.
	(bfd_openw): Likewise.
	(bfd_close): Likewise.
	(bfd_close_all_done): Likewise.
	(bfd_release): Comment.
	* section.c (struct section_hash_entry): New.
	(bfd_section_hash_newfunc): New function.
	(section_hash_lookup): Define.
	(bfd_section_init): New function, split out from
	bfd_make_section_anyway.
	(bfd_get_section_by_name): Lookup via hash table.
	(bfd_get_unique_section_name): Likewise.
	(bfd_make_section_old_way): Rewrite to use hash table.
	(bfd_make_section_anyway): Likewise.
	(bfd_make_section): Likewise.  Return NULL for attempts to make
	BFD_{ABS,COM,UND,IND}_SECTION_NAME.
	(_bfd_strip_section_from_output): Adjust section_tail if needed.
	* configure.in: Bump bfd version.
	* configure: Regenerate.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.

ld/ChangeLog
	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Adjust
	section_tail when fiddling with section list.
	(gld${EMULATION_NAME}_list_options): Ensure sentences aren't
	broken into separate strings to make translation easier.
	* emultempl/mmo.em (mmo_place_orphan): Adjust section_tail when
	fiddling with section list.
	* emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
2001-12-17 00:40:53 +00:00
Jakub Jelinek
6576570080 * elf-bfd.h (enum elf_link_info_type): New.
(struct bfd_elf_section_data): Remove stab_info and merge_info
	fields, add sec_info and sec_info_type.
	(struct elf_obj_tdata): Add eh_frame_hdr field.
	(_bfd_elf_discard_section_eh_frame): New prototype.
	(_bfd_elf_discard_section_eh_frame_hdr): Likewise.
	(_bfd_elf_eh_frame_section_offset): Likewise.
	(_bfd_elf_write_section_eh_frame): Likewise.
	(_bfd_elf_write_section_eh_frame_hdr): Likewise.
	* Makefile.am (BFD32_BACKENDS): Add elf-eh-frame.lo.
	(BFD32_BACKENDS_CFILES): Add elf-eh-frame.c.
	(elf-eh-frame.lo): New.
	* Makefile.in: Rebuilt.
	* configure.in (elf): Add elf-eh-frame.lo.
	* configure: Rebuilt.
	* elf.c (_bfd_elf_print_private_bfd_data): Support PT_GNU_EH_FRAME.
	(map_sections_to_segments): Create PT_GNU_EH_FRAME if requested.
	(get_program_header_size): Take into account PT_GNU_EH_FRAME
	segment.
	(_bfd_elf_rela_local_sym): Use sec_info_type and sec_info.
	(_bfd_elf_rel_local_sym): Likewise.
	(_bfd_elf_section_offset): Likewise.  Call
	_bfd_elf_eh_frame_section_offset too.
	* elfxx-ia64.c (elfNN_ia64_relocate_section): Use sec_info_type and
	sec_info.
	* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
	* elf-eh-frame.c: New file.
	* elflink.h (elf_link_add_object_symbols): Don't optimize SHF_MERGE
	.stab sections.  Set sec_info_type, use sec_info instead
	of merge_info and stab_info.
	(elf_link_create_dynamic_sections): Create .eh_frame_hdr section
	if --eh-frame-hdr.
	(elf_bfd_final_link): Write .eh_frame_hdr section.
	(elf_link_sec_merge_syms): Use sec_info_type and sec_info.
	(elf_link_input_bfd): Likewise.
	Call _bfd_elf_write_section_eh_frame to write .eh_frame sections.
	(elf_bfd_discard_info): Add output_bfd argument.
	Call _bfd_elf_discard_section_eh_frame and
	_bfd_elf_discard_section_eh_frame_hdr.
	(elf_section_ignore_discarded_relocs): Use sec_info_type, not section
	names.
	* bfd-in.h (bfd_elf32_discard_info, bfd_elf64_discard_info): Adjust
	prototypes.
	* bfd-in2.h (bfd_elf32_discard_info, bfd_elf64_discard_info): Likewise.

	* elf/common.h (PT_GNU_EH_FRAME): Define.
	* bfdlink.h (struct bfd_link_info): Add eh_frame_hdr field.

	* emultempl/elf32.em (finish): Supply output_bfd
	to bfd_elf*_discard_info.
	(OPTION_EH_FRAME_HDR): Define.
	(longopts): Add --eh-frame-hdr.
	(parse_args): Handle it.
	(list_options): Add --eh-frame-hdr to help.
	* emultempl/hppaelf.em (finish): Supply output_bfd
	to bfd_elf*_discard_info.
	* scripttempl/elf.sc (.eh_frame_hdr): Add.

	* readelf.c (get_segment_type): Support PT_GNU_EH_FRAME.
2001-12-13 11:09:34 +00:00
Christopher Faylor
583f192640 * emultempl/pe.em (gld_${EMULATION_NAME}_list_options): Fix typo. 2001-12-11 18:31:57 +00:00
Nick Clifton
e3c8793a40 Fixes to improve the ability to translate messages in the binutils tools 2001-12-06 10:22:36 +00:00
Tom Rix
249172c3f2 Formatting and misc cleanup for AIX. 2001-12-05 13:34:46 +00:00
Tom Rix
742aeb63e9 Pass argc and argv to ldemul_choose_target.
Support -b64 in AIX
2001-12-03 23:15:28 +00:00
Alan Modra
ca0b584738 * emultempl/elf32.em (gld${EMULATION_NAME}_finish): Use NULL instead
of false when calling lang_size_sections.
	(hppaelf_layout_sections_again): Likewise.
2001-11-20 15:19:39 +00:00
Alan Modra
c56feb2b8c * emultempl/elf32.em (gld${EMULATION_NAME}_finish): Only emit this
function when LDEMUL_FINISH isn't set to the same name.  Don't
	call ${LDEMUL_FINISH}.
	(ld_${EMULATION_NAME}_emulation): Call $LDEMUL_FINISH if defined.
	* emultempl/armelf.em (arm_elf_finish): Call
	gld${EMULATION_NAME}_finish.
	* emultempl/hppaelf.em (hppaelf_finish): Rename to
	gld${EMULATION_NAME}_finish.  Call bfd_elf32_discard_info and
	hppaelf_layout_sections_again if necessary.
	(need_laying_out): New var.
	(hppaelf_layaout_sections_again): Rename to
	hppaelf_layout_sections_again.  Clear need_laying_out.
	(PARSE_AND_LIST_OPTIONS): Format text.
2001-11-15 12:44:03 +00:00
H.J. Lu
a48ca7f2ea 2001-11-14 H.J. Lu <hjl@gnu.org>
* emultempl/armelf.em (arm_elf_finish): Renamed from
	gld${EMULATION_NAME}_finish.
	(LDEMUL_FINISH): Set to arm_elf_finish.
2001-11-15 07:12:48 +00:00
Daniel Jacobowitz
73d074b4e2 2001-11-11 Daniel Jacobowitz <drow@mvista.com>
* bfd-in.h (bfd_elf32_discard_info): Add prototype.
	(bfd_elf64_discard_info): Likewise.
	* bfd-in2.h: Regenerate.
	* elf-bfd.h (struct elf_reloc_cookie): New.
	(struct elf_backend_data): Add elf_backend_discard_info,
	elf_backend_ignore_discarded_relocs, and elf_backend_write_section.
	(_bfd_elf32_reloc_symbol_deleted_p): Add prototype.
	(_bfd_elf64_reloc_symbol_deleted_p): Likewise.
	* elf32-mips.c (_bfd_elf32_mips_discard_info): New.
	(_bfd_elf32_mips_ignore_discarded_relocs): New.
	(_bfd_elf32_mips_write_section): New.
	(elf_backend_discard_info): Define.
	(elf_backend_ignore_discarded_relocs): Define.
	(elf_backend_write_section): Define.
	* elfcode.h (elf_bfd_discard_info): Define.
	(elf_reloc_symbol_deleted_p): Define.
	* elflink.h (elf_link_input_bfd): Check
	elf_section_ignore_discarded_relocs.  Call
	bed->elf_backend_write_section if available.
	(elf_reloc_symbol_deleted_p): New.
	(elf_bfd_discard_info): New.
	(elf_section_ignore_discarded_relocs): New.
	* elfxx-target.h (elf_backend_discard_info): Define.
	(elf_backend_ignore_discarded_relocs): Define.
	(elf_backend_write_section): Define.
	(elfNN_bed): Add elf_backend_discard_info,
	elf_backend_ignore_discarded_relocs, and
	elf_backend_write_section.
	* libbfd-in.h (_bfd_discard_section_stabs): Add prototype.
	* libbfd.h: Regenerate.
	* stabs.c (_bfd_discard_section_stabs): New.

2001-11-11  Daniel Jacobowitz  <drow@mvista.com>

	* emultempl/elf32.em (gld${EMULATION_NAME}_finish): New.
	(struct ld_emulation_xfer_struct): Use it.
2001-11-15 01:34:12 +00:00
Nick Clifton
3c3bdf30e4 Add MMIX support 2001-10-30 15:20:14 +00:00
Alan Modra
146e7110d8 * emultempl/elf32.em (gld*_list_options): Remove extra '\t' from
-z nocopyreloc and -z nocombreloc usage strings.
2001-10-15 23:28:21 +00:00
Nick Clifton
b4330e85f7 Include -z nocopyreloc in usage 2001-10-12 10:34:25 +00:00
Chris Demetriou
61585df298 2001-10-10 Chris Demetriou <cgd@broadcom.com>
* emultempl/elf32.em: Fix shell 'if' usage for portability.
2001-10-10 23:05:55 +00:00
Jakub Jelinek
ec38dd0548 * doc/as.texinfo: Document M and S ELF section flags.
* emultempl/elf32.em (gld_*_list_options): Include -z combreloc and
	-z nocombreloc in usage.
2001-10-05 16:36:55 +00:00
Alan Modra
8bd621d883 Add support for -z nocopyreloc. 2001-10-03 15:11:48 +00:00
Nick Clifton
aa3d9aba51 oops - omitted from previous delta 2001-09-24 18:21:24 +00:00
Nick Clifton
72358f6568 Define and use pe_get_data_import_dll_name(). 2001-09-24 15:03:01 +00:00
H.J. Lu
3882b01078 Locale changes from Bruno Haible <haible@clisp.cons.org>. 2001-09-19 05:33:36 +00:00
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
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
Tom Rix
1fdf02497c Fix import symbols for AIX. 2001-09-06 15:20:01 +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
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
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
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
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
Alan Modra
738108961e * emultempl/elf32.em (output_prev_sec_find): Add missing prototype. 2001-08-09 14:44:18 +00:00
Alan Modra
20713691c2 * emultempl/aix.em: ldexp.h,ldlang.h,ldfile.h,ldemul.h go in this
order.
2001-08-04 04:14:10 +00:00
Alan Modra
3fd367102d * emultempl/beos.em (sort_sections): Modify for 2001-08-03 change,
ie. iterate over wild_statement.section_list.
	(gld${EMULATION_NAME}_place_orphan): Likewise.
2001-08-04 01:21:43 +00:00
H.J. Lu
ff7e6f8868 2001-08-03 H.J. Lu <hjl@gnu.org>
* emultempl/beos.em (init): Add the missing initialization.
2001-08-03 19:19:42 +00:00
Charles Wilson
decc363800 2001-08-02 Charles Wilson <cwilson@ece.gatech.edu>
* ldmain.c (main): initialize link_info.pei386_auto_import
        * pe-dll.c: new tables for auto-export filtering
        (auto_export): change API, pass abfd for contextual filtering.
        Loop thru tables of excluded symbols instead of comparing
        "by hand".
2001-08-02  Paul Sokolovsky  <paul.sokolovsky@technologist.com>
        * pe-dll.c: new variable pe_dll_enable_extra_debug. New
        static variable current_sec (static struct sec *). Add
        forward declaration for add_bfd_to_link.
        (process_def_file): Don't export undefined symbols. Do not
        export symbols starting with  "_imp__".  Call auto_export()
        with new API.
        (pe_walk_relocs_of_symbol): New function.
        (generate_reloc): add optional extra debugging
        (pe_dll_generate_def_file): eliminate extraneous initial blank
        line in output
        (make_one): enlarge symtab to make room for __nm__ symbols
        (DATA auto-import support).
        (make_singleton_name_thunk): New function.
        (make_import_fixup_mark): New function.
        (make_import_fixup_entry): New function.
        (pe_create_import_fixup): New function.
        (add_bfd_to_link): Specify that 'name' argument is a CONST
        char *.
        * pe-dll.h: declare new variable pe_dll_extra_pe_debug;
        declare new functions pe_walk_relocs_of_symbol and
        pe_create_import_fixup.
        * emultempl/pe.em: add new options --enable-auto-import,
        --disable-auto-import, and --enable-extra-pe-debug.
        (make_import_fixup): New function.
        (pe_find_data_imports): New function.
        (pr_sym): New function.
        (gld_${EMULATION_NAME}_after_open): Add optional extra pe
        debugging. Call pe_find_data_imports.  Mark .idata as DATA, not
        CODE.
2001-08-02  Charles Wilson  <cwilson@ece.gatech.edu>
        * ld.texinfo: add additional documentation for
        --export-all-symbols.  Document --out-implib,
        --enable-auto-image-base, --disable-auto-image-base,
        --dll-search-prefix, --enable-auto-import, and
        --disable-auto-import.
        * ldint.texinfo: Add detailed documentation on auto-import
        implementation.
2001-08-02 23:03:10 +00:00
H.J. Lu
5030876b5d 2001-07-14 H.J. Lu <hjl@gnu.org>
* emultempl/elf32.em (output_prev_sec_find): Never return
	bfd_abs_section_ptr, bfd_com_section_ptr nor
	bfd_und_section_ptr.
2001-07-14 16:36:25 +00:00
Jakub Jelinek
95500e1ca4 * emultempl/elf32.em (output_prev_sec_find): New.
(place_orphan): Use it.
2001-07-13 07:25:18 +00:00
Nick Clifton
d29d80f20c Check for the output_bfd not having any coff_data structure allocated to it. 2001-07-11 08:11:16 +00:00
David O'Brien
c2a1a436ff 2001-07-09 David O'Brien <obrien@FreeBSD.org>
* emultempl/elf32.em: Do not assuming that contents of the buffer
	returned from basename function will remain unchanged accross other
	function calls.

NOTE: DJ Delorie recomends doing a basename()->lbasename() conversion.

Approved by:  DJ Delorie
              <200107100030.UAA01223@envy.delorie.com>
2001-07-10 00:38:16 +00:00
Hans-Peter Nilsson
605d9b3a4f * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):
Update for API change in bfd_elf${ELFSIZE}_size_dynamic_sections.
	* mpw-elfmips.c (gldelf32ebmip_before_allocation): Ditto.
	* ld.h (args_type): Remove member export_dynamic.  All users
	changed to use struct bfd_link_info member.
2001-06-18 22:20:57 +00:00
Alan Modra
8529105a0e * ldlang.c (record_bfd_errors): Remove.
* emultempl/aix.em: Fix copyright dates.
2001-06-08 01:58:20 +00:00
DJ Delorie
3763134dca * emultempl/pe.em (init): Reduce default stack reserve to 0x200000. 2001-06-05 00:48:41 +00:00
H.J. Lu
db8d4f2320 2001-05-25 H.J. Lu <hjl@gnu.org>
* emultempl/beos.em (gld${EMULATION_NAME}_before_parse): Move
	setting of output_filename after bfd_scan_arch.
	* emultempl/pe.em: Likewise.
2001-05-25 22:48:14 +00:00
H.J. Lu
5f64210127 2001-05-25 H.J. Lu <hjl@gnu.org>
* emulparams/aixrs6.sh: Add SYSCALL_MASK and SYMBOL_MODE_MASK
	like emulparams/aixppc.sh.

	* emultempl/aix.em (sc): Use ${srcdir}/emultempl/ostring.sed
	instead of ${srcdir}/emultempl/stringify.sed.
2001-05-25 21:19:46 +00:00
H.J. Lu
6cbdcc6fa9 2001-05-24 H.J. Lu <hjl@gnu.org>
* emultempl/stringify.sed: Removed again.
2001-05-25 05:56:38 +00:00
H.J. Lu
86af25fe1d 2001-05-24 H.J. Lu <hjl@gnu.org>
* emultempl/aix.em (OUTPUT_ARCH): Defined.
	(gld${EMULATION_NAME}_before_parse): Initialize
	ldfile_output_architecture, ldfile_output_machine and
	ldfile_output_machine_name from ${OUTPUT_ARCH} if possible.
	* emultempl/beos.em: Likewise.
	* emultempl/elf32.em: Likewise.
	* emultempl/linux.em: Likewise.
	* emultempl/mipsecoff.em: Likewise.
	* emultempl/pe.em: Likewise.
	* emultempl/sunos.em: Likewise.
2001-05-25 05:39:22 +00:00
Tom Rix
3b1b01cf25 Support for xcoff64 2001-05-24 20:59:23 +00:00
Alexandre Oliva
57e6abd277 * emultempl/elf32.em (ELF_INTERPRETER_SET_DEFAULT): Use this new
variable to avoid non-portable shell construct.
2001-05-24 02:44:06 +00:00
Nick Clifton
506eee2253 Improve Solaris compatability 2001-05-22 14:00:18 +00:00
H.J. Lu
1c9acd948f 2001-05-03 H.J. Lu <hjl@gnu.org>
* emultempl/elf32.em: Include "libiberty.h".
	(gld${EMULATION_NAME}_vercheck): Call basename () to get the
	basename of the bfd filename.
	(gld${EMULATION_NAME}_stat_needed): Likewise.
	(gld${EMULATION_NAME}_try_needed): Likewise.
	(gld${EMULATION_NAME}_open_dynamic_archive): Likewise.
2001-05-03 06:26:26 +00:00
H.J. Lu
14fe918ef2 2001-05-02 H.J. Lu <hjl@gnu.org>
* emultempl/pe.em: Include <ctype.h>.
2001-05-02 21:01:03 +00:00
Nick Clifton
c7e4034828 Add gas and ld support for openrisc 2001-05-02 18:14:31 +00:00
Ulrich Drepper
cc5ce05235 * emultmpl/elf32.em (gld${EMULATION_NAME}_search_needed): If NAME
is an absolute path look only for this file and not along the path.
2001-03-20 18:39:21 +00:00
Ulrich Drepper
a1ab1d2aa3 * emultempl/elf32.em (OPTION_GROUP): New macro.
Add new option Bgroup to longopts.
	(gld*_parse_args): Handle GROUP_OPTION and recognize -z defs.
	(gld*_list_options): Add -Bgroup and -z defs.
	* ld.1: Document -Bgroup and -z defs.
	* ld.texinfo: Likewise.
2001-03-17 21:24:26 +00:00
Nick Clifton
a2b64bede3 Fixtypos in ChangeLogs, fix copyright dates in files 2001-03-13 06:14:29 +00:00
Alan Modra
1c7566d167 * emultempl/m68kelf.em (m68k_elf_after_allocation): Call
after_allocation_default, not gld..._before_allocation.
2001-03-05 05:02:03 +00:00
Hans-Peter Nilsson
f813923cf3 * emultempl/elf32.em: Correct spelling in comments and listed
options.
2001-01-24 06:14:09 +00:00
Alan Modra
ffd6e9debc Automatically enable --unique=.text for elf32-hppa. 2001-01-14 07:39:01 +00:00
Alan Modra
577a062318 Extend "ld --unique" functionality. 2001-01-14 04:36:35 +00:00
David O'Brien
482e8b3206 2000-01-07 David O'Brien <obrien@BSDi.com>
* emultempl/elf32.em: Only perform Linux ld hints processing when
	targeting Linux.

Approved by:  Nick Clifton <nickc@redhat.com>
              Message-Id: <200101040127.RAA15127@elmo.cygnus.com>
2001-01-08 05:25:58 +00:00
Nick Clifton
1122a5fc50 Add --no-default-excludes option for PE targets 2000-12-26 20:55:30 +00:00
Nick Clifton
6d02a66752 Remove spurious whitespace 2000-12-12 19:37:01 +00:00
Phil Blundell
2e41854770 2000-11-09 Philip Blundell <pb@futuretv.com>
* emultempl/pe.em: Define ___start_SECNAME and ___stop_SECNAME
	around orphan sections whose names can be represented in C.
2000-11-13 10:15:23 +00:00
Jim Wilson
c940e6fcdf Handle srdata sections emitted by Intel compiler.
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): New local
	hold_sdata.  If SEC_SMALL_DATA set, set place to hold_sdata.
2000-11-08 00:39:32 +00:00
Nick Clifton
6e45556a36 Add tests of return values from bfd function calls 2000-10-16 19:08:45 +00:00
Nick Clifton
102c86f873 Oops - fix mistake in previous delta where unused variable 'nsyms' was
deleted, but along with its (necessary) call to bfd_canonicalize_symtab.
2000-10-13 20:41:08 +00:00
Nick Clifton
b9a6918857 Add #ifdef DLL_SUPPORT around use of pe_dll_search_prefix. 2000-10-13 20:16:03 +00:00
DJ Delorie
627427debc * emultempl/pe.em (pe_dll_search_prefix): New variable,
(longopts): New --dll-search-prefix option.
(gld_${EMULATION_NAME}_list_options): Document.
(gld_${EMULATION_NAME}_parse_args): Handle.
(gld_${EMULATION_NAME}_open_dynamic_archive): When linking
dynamically, search for a dll named '<prefix><basename>.dll'
in preference to 'lib<basename>.dll' if --dll-search-prefix
is specified.
2000-10-12 19:18:20 +00:00
DJ Delorie
486e80e2d5 * emultempl/pe.em (gld_*_after_open): detect case where there two
import libraries for same dll; rename one to ensure proper link
order.

* pe-dll.c (process_def_file): compare ordinals to -1, not 0; fix
typo
(generate_edata): fix typo
2000-10-02 14:39:46 +00:00
DJ Delorie
1bd591624c oops, didn't mean to check in that change yet 2000-09-28 20:58:57 +00:00
DJ Delorie
45b1f63c8c * pe-dll.c (process_def_file): Uninitialized data wasn't
exported with --export-all-symbols switch.

* pe-dll.c (fill_edata): rearrange the data so that ordinals and
noname work properly.
2000-09-28 20:53:40 +00:00
Alan Modra
47d89dba5e .plt stub for lazy linking, --stub-group-size=N ld switch,
import stub fix, extra DIR14F reloc to fix abort in tc_gen_reloc
2000-09-27 17:30:19 +00:00
Nick Clifton
36bdbeeca5 Conditionalise the embedded relocs feature on the m68*-*-elf target 2000-09-22 00:41:50 +00:00
Alan Modra
b3ea35849f Handle out of memory situations. 2000-09-20 04:20:26 +00:00
Alan Modra
25f7275229 Group stub sections. 2000-09-18 12:22:43 +00:00
Nick Clifton
0752970ef8 add support for embedded relocs in m68k ELF port 2000-09-15 18:52:52 +00:00
Alan Modra
ed15ac6a0a Fix an orphan section problem caused by weird linker scripts. 2000-09-07 09:09:19 +00:00
Alan Modra
71bfc0aef6 Fix list handling for orphan section output statements. 2000-09-07 07:08:58 +00:00
Alan Modra
f998903041 Fix place_orphan crash. 2000-09-06 15:28:25 +00:00
Nick Clifton
5b343f5ae8 Regenerate files using fixed aclocal install. 2000-09-06 00:13:34 +00:00
Alan Modra
3231d22e8f Shared lib support for elf32-hppa 2000-09-05 04:07:46 +00:00
Alan Modra
a854a4a7c8 --split-by-reloc, --split-by-file extensions. --unique option. 2000-09-05 03:05:19 +00:00
H.J. Lu
dcb0bd0eef 2000-08-24 H.J. Lu <hjl@gnu.org>
* emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Don't
	check -rpath nor LD_RUN_PATH for cross link.
	* ld.texinfo: Document the change.
2000-08-25 20:24:11 +00:00
H.J. Lu
6dd8c765d3 2000-08-23 H.J. Lu <hjl@gnu.org>
* emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Get
	the current runpath list from bfd_elf_get_runpath_list ()
	before search.
2000-08-23 23:03:00 +00:00
H.J. Lu
ec4eb78a39 2000-08-22 H.J. Lu <hjl@gnu.org>
* emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Search
	the DT_RPATH/DT_RUNPATH entries for DT_NEEDED after
	LD_LIBRARY_PATH for native linker. Display the needed DSO if
	trace_file_tries is non-zero.
	(gld${EMULATION_NAME}_try_needed): Report the needed DSO found
	if trace_file_tries is non-zero.

	* ld.texinfo: Document the usage of DT_RPATH/DT_RUNPATH.
	* News: Mention it.
2000-08-22 19:34:37 +00:00
Nick Clifton
e374f1d977 Refer to -rpath not --rpath in error message 2000-08-09 00:51:42 +00:00
Alan Modra
4b209b2234 Keep track of last optind value, and rename a couple of functions
for consistency.
2000-08-04 04:41:33 +00:00
Alan Modra
41392f033d Add some shell variables and shell code to elf32.em
to allow elf32.em to be used by ports that require
some minor variations or a few extra functions.
Implement for hppaelf and armelf.
Fix header file include order in m68kcoff.em
2000-07-28 01:33:14 +00:00
Alan Modra
04925e1e0b Move functions around in preparation for next patch 2000-07-28 01:07:09 +00:00
Nick Clifton
20bccb3485 Applied Michael's Sokolov's patch to implement --embedded-relocs for m68k coff. 2000-07-21 23:31:53 +00:00
H.J. Lu
699845ef7b 2000-07-20 H.J. Lu <hjl@gnu.org>
* emultempl/elf32.em (longopts): Duplicate "disable-new-dtags"
	and "disable-new-dtags" to stop getopt from treating -d/-e as
	abbreviations for these options.
2000-07-20 21:59:40 +00:00
H.J. Lu
6c1439be21 2000-07-20 H.J. Lu <hjl@gnu.org>
* ld.texinfo: Add documentation for --disable-new-dtags and
	--enable-new-dtags.

	* ldmain.c (main): Initialize link_info.new_dtags to false.

	* emultempl/elf32.em (gld_${EMULATION_NAME}_parse_args): Add
	--disable-new-dtags and --enable-new-dtags.
	(gld_${EMULATION_NAME}_list_options): Likewise.
2000-07-20 21:18:23 +00:00
H.J. Lu
19e3be22a4 2000-07-20 H.J. Lu <hjl@gnu.org>
* emultempl/elf32.em (gld_${EMULATION_NAME}_list_options):
	Print out ignored -z options.
2000-07-20 16:13:26 +00:00