diff options
author | Jakub Jelinek <jakub@redhat.com> | 2001-05-11 12:23:48 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2001-05-11 12:23:48 +0000 |
commit | 8550eb6e64bdd0582528498c5cad6f80014b7deb (patch) | |
tree | bf986785eadc085984ebc5781024a9ede9be16a8 /bfd/targets.c | |
parent | 15f65ae41209a87410a3b2734985db016e4e8905 (diff) | |
download | gdb-8550eb6e64bdd0582528498c5cad6f80014b7deb.zip gdb-8550eb6e64bdd0582528498c5cad6f80014b7deb.tar.gz gdb-8550eb6e64bdd0582528498c5cad6f80014b7deb.tar.bz2 |
* 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.
Diffstat (limited to 'bfd/targets.c')
-rw-r--r-- | bfd/targets.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/bfd/targets.c b/bfd/targets.c index 0e2ca4d..c46ecc3 100644 --- a/bfd/targets.c +++ b/bfd/targets.c @@ -416,7 +416,8 @@ BFD_JUMP_TABLE macros. .CAT(NAME,_bfd_link_add_symbols),\ .CAT(NAME,_bfd_final_link),\ .CAT(NAME,_bfd_link_split_section),\ -.CAT(NAME,_bfd_gc_sections) +.CAT(NAME,_bfd_gc_sections),\ +.CAT(NAME,_bfd_merge_sections) . int (*_bfd_sizeof_headers) PARAMS ((bfd *, boolean)); . bfd_byte * (*_bfd_get_relocated_section_contents) PARAMS ((bfd *, . struct bfd_link_info *, struct bfd_link_order *, @@ -443,6 +444,9 @@ BFD_JUMP_TABLE macros. . {* Remove sections that are not referenced from the output. *} . boolean (*_bfd_gc_sections) PARAMS ((bfd *, struct bfd_link_info *)); . +. {* Attempt to merge SEC_MERGE sections. *} +. boolean (*_bfd_merge_sections) PARAMS ((bfd *, struct bfd_link_info *)); +. . {* Routines to handle dynamic symbols and relocs. *} .#define BFD_JUMP_TABLE_DYNAMIC(NAME)\ .CAT(NAME,_get_dynamic_symtab_upper_bound),\ |