diff options
author | Jakub Jelinek <jakub@redhat.com> | 2001-04-13 00:34:36 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2001-04-13 00:34:36 +0000 |
commit | cf620a691250ee28b2d74fce4c2f83acecf624f3 (patch) | |
tree | edf4b09bcebf001a0ca7b36794708518f27339b2 /include | |
parent | 67e810e18ce87f0dc8fe9ffab6bd3a8816d2e2b0 (diff) | |
download | newlib-cf620a691250ee28b2d74fce4c2f83acecf624f3.zip newlib-cf620a691250ee28b2d74fce4c2f83acecf624f3.tar.gz newlib-cf620a691250ee28b2d74fce4c2f83acecf624f3.tar.bz2 |
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.
Diffstat (limited to 'include')
-rw-r--r-- | include/ChangeLog | 4 | ||||
-rw-r--r-- | include/bfdlink.h | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/include/ChangeLog b/include/ChangeLog index 3a37d1a..a6eb4d9 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2001-04-13 Jakub Jelinek <jakub@redhat.com> + + * bfdlink.h (bfd_link_discard): Add discard_sec_merge. + 2001-04-03 Zack Weinberg <zackw@stanford.edu> * ansidecl.h: All logic from gcc/gansidecl.h moved here. diff --git a/include/bfdlink.h b/include/bfdlink.h index 29eeb66..765a97a 100644 --- a/include/bfdlink.h +++ b/include/bfdlink.h @@ -35,6 +35,8 @@ enum bfd_link_strip if strip_all is used. */ enum bfd_link_discard { + discard_sec_merge, /* Discard local temporary symbols in SEC_MERGE + sections. */ discard_none, /* Don't discard any locals. */ discard_l, /* Discard local temporary symbols. */ discard_all /* Discard all locals. */ |