Alan Modra
abc6ab0a54
* ldlang.c (map_input_to_output_sections): Replace "break"
...
accidentally removed with 2001-08-03 change.
(lang_gc_sections_1): Likewise.
2001-11-21 01:13:15 +00:00
Alan Modra
2181f54fd8
* ldlang.c (walk_wild_section): Move sec == NULL case out of loop.
2001-11-20 15:31:10 +00:00
Alan Modra
6e814ff881
* ldlang.c (lang_size_sections): Keep a valid output_offset field
...
for padding statements.
2001-10-31 01:12:26 +00:00
Kazu Hirata
ca0c1d3ede
* ldlang.c: Fix a comment typo.
2001-10-29 22:36:32 +00:00
Alan Modra
4818e05fe5
From John Reiser <jreiser@BitWagon.com>
...
* ldlang.c (lang_common): Conditionally inhibit Common allocation.
* lexsup.c: Add --no-define-common commandline option.
* ldgram.y: Add INHIBIT_COMMON_ALLOCATION script command.
* ldlex.l: Likewise.
* ld.h: Add command_line.inhibit_common_definition.
* ldmain.c (main): Initialize.
* ld.texinfo: Document.
2001-09-29 12:57:54 +00:00
Alan Modra
862517b650
* section.c (struct sec): Remove kept_section.
...
(STD_SECTION): Remove kept_section initialisation.
(bfd_make_section_anyway): Here too.
* ecoff.c (bfd_debug_section): Remove kept_section initialisation.
* cofflink.c (_bfd_coff_link_input_bfd): Don't test kept_section.
* elflink.h (elf_link_input_bfd): Set discarded link-once section
symbols to zero, and remove all code involved with kept_section
and tracking section symbol values.
* bfd-in2.h: Regenerate.
* configure.in: Bump version number.
* configure: Regenerate.
* ldlang.c (section_already_linked): Remove assignment to kept_section.
2001-09-29 12:07: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
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
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
39dcfe18ca
(wild_doit): Rename to lang_add_section.
2001-08-14 02:01:31 +00:00
Alan Modra
b6bf44ba1b
* ld.texinfo (Input Section Basics): Clarify ordering of output
...
sections.
* ldlang.c (callback_t): Add wildcard_list param.
(walk_wild_section): Remove "section" param. Rewrite for
lang_wild_statement_type change. Remove unique_section_p test.
(walk_wild_file): Remove "section" param.
(walk_wild): Remove "section" and "file" params.
(lang_gc_wild): Likewise.
(wild): Likewise. Modify for lang_wild_statement_type change.
(wild_sort): Likewise. Add "sec" param.
(gc_section_callback): Likewise.
(output_section_callback): Likewise. Do unique_section_p test.
(map_input_to_output_sections): Modify call to wild.
(lang_gc_sections_1): Likewise.
(print_wild_statement): Modify for lang_wild_statement_type
change.
(lang_add_wild): Replace filename, filenames_sorted param with
filespec. Replace section_name, sections_sorted,
exclude_filename_list with section_list.
* ldlang.h (lang_add_wild): Here too.
(lang_wild_statement_type): Replace section_name, sections_sorted,
and exclude_filename_list with section_list.
* ldgram.y (current_file): Delete.
(%union): Add wildcard_list.
(file_NAME_list): Set type to wildcard_list. Build a linked list
rather than calling lang_add_wild for each entry.
(input_section_spec_no_keep): Call lang_add_wild here instead.
* ld.h (struct wildcard_list): Declare.
* mri.c (mri_draw_tree): Modify to suit new lang_add_wild.
2001-08-03 01:11:21 +00:00
Nick Clifton
1545243be0
If a region is specified assign it to all sections inside the overlay unless they have been assigned to the own, non-default, memory region.
2001-07-19 16:21:39 +00:00
Hans-Peter Nilsson
429d935daa
* ldlang.c (lang_check): Emit fatal error if relocatable link
...
between different object flavours with relocations in input.
2001-06-19 19:57:39 +00:00
H.J. Lu
9bf03accc3
2001-06-19 H.J. Lu <hjl@gnu.org>
...
* ldlang.c (lang_check): Revert the change mode on 2001-06-15.
2001-06-19 14:39:02 +00:00
H.J. Lu
6f9efd9751
2001-06-18 H.J. Lu <hjl@gnu.org>
...
* ldlang.c (init_os): Add the newline to the einfo call.
(lang_check): Likewise.
(lang_do_version_exports_section): Likewise.
2001-06-18 17:23:52 +00:00
Hans-Peter Nilsson
7e66c3f530
* ldlang.c (lang_check): Emit fatal error if relocatable link
...
between different object flavours.
2001-06-15 13:13:46 +00:00
Nick Clifton
6770ec8c9e
Chnage load_symbols() to a boolean function
2001-06-15 09:00:11 +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
H.J. Lu
5929ebc003
2001-05-31 H.J. Lu <hjl@gnu.org>
...
* ldlang.c (open_input_bfds): Don't change the bfd error
handler whilst loading symbols.
2001-05-31 21:14:59 +00:00
Alan Modra
d1778b88f8
Add a flag to asection, linker_has_input, and use it to reliably
...
determine whether an input section is the first one assigned to
an output section.
2001-05-17 03:58:45 +00:00
Jakub Jelinek
8550eb6e64
* merge.c (struct sec_merge_hash_entry): Add u.entsize and u.suffix
...
fields, change sec into secinfo.
(struct sec_merge_info): Add chain, remove last fields.
(struct sec_merge_sec_info): Add next, sec, psecinfo fields.
(sec_merge_hash_lookup): If lookup could not use a string only
because it has bad alignment, mark the old string for deletion.
(sec_merge_add): Add secinfo argument. Don't compute entry's
position, instead record the section.
(sec_merge_emit): Update for the sec into secinfo change in
struct sec_merge_hash_entry.
(_bfd_merge_section): Only record the section for merging, defer
putting strings into the hash table.
(cmplengthentry, last4_eq, last_eq, record_section, merge_strings,
_bfd_merge_sections): New functions.
(_bfd_merged_section_offset): Update for the sec_merge_hash_entry
changes.
* libbfd-in.h (_bfd_merge_sections): Add prototype.
(_bfd_nolink_bfd_merge_sections): Define.
* libbfd.h: Likewise.
(bfd_generic_merge_sections): Add prototype.
* targets.c (BFD_JUMP_TABLE_LINK): Add _bfd_merge_sections.
(struct bfd_target): Likewise.
* bfd.c (bfd_merge_sections): Define.
* bfd-in2.h: Rebuilt.
* elf.c (_bfd_elf_merge_sections): New function.
* elf-bfd.h (_bfd_elf_merge_sections): Add prototype.
* elfxx-target.h (bfd_elfNN_bfd_merge_sections): Define.
* reloc.c (bfd_generic_merge_sections): New function.
* vms.c (vms_bfd_merge_sections): New function.
* aout-adobe.c (aout_32_bfd_merge_sections): Define.
* aout-target.h (MY_bfd_merge_sections): Define.
* aout-tic30.c (MY_bfd_merge_sections): Define.
* binary.c (binary_bfd_merge_sections): Define.
* bout.c (b_out_bfd_merge_sections): Define.
* coff-alpha.c (_bfd_ecoff_bfd_merge_sections): Define.
* coffcode.c (coff_bfd_merge_sections): Define.
* coff-mips.c (_bfd_ecoff_bfd_merge_sections): Define.
* i386msdos.c (msdos_bfd_merge_sections): Define.
* i386os9k.c (os9k_bfd_merge_sections): Define.
* ieee.c (ieee_bfd_merge_sections): Define.
* ihex.c (ihex_bfd_merge_sections): Define.
* nlm-target.h (nlm_bfd_merge_sections): Define.
* oasys.c (oasys_bfd_merge_sections): Define.
* ppcboot.c (ppcboot_bfd_merge_sections): Define.
* som.c (som_bfd_merge_sections): Define.
* srec.c (srec_bfd_merge_sections): Define.
* tekhex.c (tekhex_bfd_merge_sections): Define.
* versados.c (versados_bfd_merge_sections): Define.
* xcoff-target.h (_bfd_xcoff_bfd_merge_sections): Define.
* ldlang.c (lang_process): Call bfd_merge_sections.
2001-05-11 12:23:48 +00:00
H.J. Lu
d1b2b2dcb9
2001-05-02 H.J. Lu <hjl@gnu.org>
...
* ldfile.c: Include "libiberty.h".
* ldlex.l: Likewise.
* ldmisc.c (buystring): Removed.
* ldmisc.h: Likewise.
* ldfile.c: Replace buystring with xstrdup.
* ldlang.c: Likewise.
* ldlex.l: Likewise.
* ldmain.c: Likewise.
* ldmisc.c: Likewise.
* lexsup.c: Likewise.
* mpw-eppcmac.c: Likewise.
2001-05-02 16:42:55 +00:00
Nick Clifton
884fb58eeb
Give emulation a chance to process unrecognized file before fatal error is
...
reported, not after.
2001-04-28 18:00:10 +00:00
Jakub Jelinek
f5fa8ca231
bfd/
...
* libbfd-in.h (_bfd_merge_section): New.
(_bfd_write_merged_section): New.
(_bfd_merged_section_offset): New.
* libbfd.h: Rebuilt.
* linker.c (_bfd_generic_link_output_symbols): Handle
discard_sec_merge.
* aoutx.h (aout_link_write_symbols): Likewise.
* pdp11.c (aout_link_write_symbols): Likewise.
* elflink.h (elf_link_add_object_symbols): Call _bfd_merge_section.
(elf_bfd_final_link): Adjust global symbols pointing into SEC_MERGE
sections.
(elf_link_sec_merge_syms): New.
(elf_link_input_bfd): Call _bfd_merged_section_offset
and _bfd_write_merged_section.
Handle discard_sec_merge.
* elf-bfd.h (struct elf_link_hash_table): Add merge_info
field.
(struct bfd_elf_section_data): Likewise.
* elf.c (_bfd_elf_make_section_from_shdr): Set SEC_MERGE and
SEC_STRINGS section flags and entsize from their ELF counterparts.
(_bfd_elf_link_hash_table_init): Initialize merge_info.
(elf_fake_sections): Set SHF_MERGE, SHF_STRINGS and sh_entsize
from their BFD counterparts.
* merge.c: New file.
* Makefile.am: Add strtab.lo.
* Makefile.in: Rebuilt.
include/
* bfdlink.h (bfd_link_discard): Add discard_sec_merge.
gas/
* config/obj-elf.c (obj_elf_change_section): Add entsize argument,
handle SHF_MERGE and SHF_STRINGS.
(obj_elf_parse_section_letters): Set SHF_MERGE and SHF_STRINGS.
(obj_elf_section): Allow additional argument specifying entity size.
* write.c (adjust_reloc_syms): Keep relocations against local symbols
in SEC_MERGE sections.
ld/
* ldmain.c (main): Default to discard_sec_merge.
* lexsup.c (OPTION_DISCARD_NONE): Define.
(ld_options): Add --discard-none.
(parse_args): Handle OPTION_DISCARD_NONE.
* ldlang.c (wild_doit): SEC_MERGE should be set in the output
section only if SEC_MERGE and SEC_STRINGS flags and entsize of
all its input sections match.
2001-04-13 00:34:36 +00:00
Nick Clifton
a2b64bede3
Fixtypos in ChangeLogs, fix copyright dates in files
2001-03-13 06:14:29 +00:00
Nick Clifton
1276aefac0
BFD: Catch & report unhandled PE section flags.
...
LD: Catch BFD errors whilst loading symbols and do not produce an executable.
2001-02-27 01:38:06 +00:00
Alan Modra
02aa14fb32
(lang_leave_overlay): Don't set lma_region when load_base is specified.
2001-01-25 02:31:42 +00:00
Alan Modra
c1eb148815
Only set lma_region from the default for the first section
...
of a group of overlay sections.
2001-01-23 11:48:28 +00:00
H.J. Lu
b92473047e
2001-01-16 H.J. Lu <hjl@gnu.org>
...
* ldlang.c (lang_check): Merge the private data only if the
input file has contents.
2001-01-16 21:04:29 +00:00
Alan Modra
577a062318
Extend "ld --unique" functionality.
2001-01-14 04:36:35 +00:00
Nick Clifton
037849a9a0
Revert the last beautification with "innocent" whitespace,
...
it breaks the K&R C preprocessor.
2000-12-13 18:28:52 +00:00
Nick Clifton
2be3aa031f
Add support for x86_64-*-linux-gnu* target
2000-11-30 19:30:33 +00:00
Alan Modra
24376d1b58
Another try at correcting relocations against discarded
...
link-once section symbols.
2000-10-12 03:44:51 +00:00
Kazu Hirata
89cdebba13
2000-10-09 Kazu Hirata <kazu@hxi.com>
...
* ldcref.c: Fix formatting.
* ldctor.h: Likewise.
* ldemul.c: Likewise.
* ldemul.h: Likewise.
* ldexp.c: Likewise.
* ldexp.h: Likewise.
* ldfile.c: Likewise.
* ldfile.h: Likewise.
* ld.h: Likewise.
* ldlang.c: Likewise.
* ldlang.h: Likewise.
* ldmain.c: Likewise.
2000-10-09 15:09:17 +00:00
Kazu Hirata
08da4cac4a
2000-10-05 Kazu Hirata <kazu@hxi.com>
...
* ldlang.c: Fix formatting.
2000-10-05 13:03:30 +00:00
Kazu Hirata
4de2d33d1b
2000-09-29 Kazu Hirata <kazu@hxi.com>
...
* ldcref.c: Fix formatting.
* ldctor.c: Likewise.
* ldemul.c: Likewise.
* ldexp.c: Likewise.
* ldfile.c: Likewise.
* ldlang.c: Likewise.
2000-09-29 11:18:18 +00:00
Alan Modra
5f992e6228
A tidy of ld/ldlang.c, and add missing Makefile dependencies
...
I should have added with the 2000-07-28 patch.
2000-09-05 03:21:16 +00:00
Nick Clifton
c13b1b775b
When choosing the target for a particular endianness, do nothing if the target
...
is not supported.
2000-08-25 20:44:09 +00:00
Alan Modra
b71e277823
Remove some forward declarations in ldemul.h and ldfile.h, and
...
re-arrange header include order.
Fix shadowing warnings in ldlang.h
Fix compile errors in mpw-elfmips.c
2000-07-11 03:42:41 +00:00
Timothy Wall
74459f0e3e
tic54x/ibmc54xdsp target for ld.
2000-06-20 13:29:07 +00:00
H.J. Lu
cd4c806ac9
2000-05-10 H.J. Lu <hjl@gnu.org>
...
* ldlang.c (open_input_bfds): Don't load the same file within
a group again if the whole archive has been loaded already.
2000-05-10 23:12:35 +00:00
Alan Modra
aea4bd9d34
place_orphan optimisations
2000-04-25 05:14:16 +00:00
Alan Modra
f6af82bd44
This lot mainly cleans up `comparison between signed and unsigned' gcc
...
warnings. One usused var, and a macro parenthesis fix too. Also check
input sections are elf when doing gc in elflink.h.
2000-02-21 12:01:27 +00:00
Timothy Wall
562d3460fb
Add LMA memory region functionality.
2000-02-16 18:53:32 +00:00
Timothy Wall
9e4ed18ce8
These snippets were missed in the previous bytes vs octets patch to
...
the linker.
2000-02-09 14:42:48 +00:00
Timothy Wall
32edc927fa
Fix typo in ALIGN_N usage.
2000-02-04 19:49:21 +00:00
Timothy Wall
4cbfc3ac19
Add octets vs bytes functionality to LD.
2000-02-03 18:24:46 +00:00
Nick Clifton
13392b77a7
fix typo in comment.
2000-01-21 17:44:51 +00:00