Age | Commit message (Collapse) | Author | Files | Lines |
|
* emultempl/hppaelf.em (hppaelf_create_output_section_statements):
Handle bfd_elf32_hppa_nbsd_vec.
|
|
* elflink.c (elf_link_add_object_symbols): Don't set up merge
section data here..
* elf.c (_bfd_elf_merge_sections): .. Do it here instead.
* merge.c: Formatting. Remove unnecessary casts. Expand
bfd_get_section_alignment macro.
(struct sec_merge_sec_info): Rename "first" to "first_str". Update
use throughout file.
(_bfd_add_merge_section): Rename from _bfd_merge_section. Update
comment. Abort on dynamic or non-SEC_MERGE input. Don't test
section name to determine sinfo group, instead test output section
and alignment.
(_bfd_merge_sections): Add struct bfd_link_info param. Call
_bfd_strip_section_from_output rather than just twiddling flags.
* libbfd-in.h (_bfd_add_merge_section): Rename, update comment.
(_bfd_merge_sections): Update prototype.
* libbfd.h: Regenerate.
ld/
* ldlang.c (lang_process): Call bfd_merge_sections later, and
only when not a relocatable link.
(print_input_section): Handle SEC_EXCLUDE sections.
(size_input_section): Don't update dot on SEC_EXCLUDE sections.
(lang_do_assignments_1): Likewise.
* ldwrite.c (build_link_order): Ignore SEC_EXCLUDE input sections.
* emultempl/armelf.em (arm_elf_set_bfd_for_interworking): Likewise.
* emultempl/hppaelf.em (build_section_lists): Likewise.
* emultempl/ppc64elf.em (build_toc_list): Likewise.
(build_section_lists): Likewise.
|
|
* emultempl/hppaelf.em: Likewise.
* emultempl/ppc64elf.em: Likewise.
* emultempl/sh64elf.em: Likewise.
|
|
hash table type rather than testing creator flavour.
* emultempl/hppaelf.em (hppaelf_create_output_section_statements):
Only create stub_file bfd if hash table creator is as expected.
(gld${EMULATION_NAME}_finish): Test stub_file.
|
|
and casts. Replace PTR with void *. Formatting.
* emultempl/alphaelf.em: Likewise
* emultempl/armcoff.em: Likewise
* emultempl/armelf.em: Likewise
* emultempl/armelf_oabi.em: Likewise
* emultempl/beos.em: Likewise
* emultempl/elf32.em: Likewise
* emultempl/generic.em: Likewise
* emultempl/gld960.em: Likewise
* emultempl/gld960c.em: Likewise
* emultempl/hppaelf.em: Likewise
* emultempl/linux.em: Likewise
* emultempl/lnk960.em: Likewise
* emultempl/m68hc1xelf.em: Likewise
* emultempl/m68kcoff.em: Likewise
* emultempl/m68kelf.em: Likewise
* emultempl/mipsecoff.em: Likewise
* emultempl/mipself.em: Likewise
* emultempl/mmix-elfnmmo.em: Likewise
* emultempl/mmixelf.em: Likewise
* emultempl/mmo.em: Likewise
* emultempl/needrelax.em: Likewise
* emultempl/netbsd.em: Likewise
* emultempl/pe.em: Likewise
* emultempl/sh64elf.em: Likewise
* emultempl/sunos.em: Likewise
* emultempl/ticoff.em: Likewise
* emultempl/vanilla.em: Likewise
* emultempl/xtensaelf.em: Likewise
* Makefile.am: Correct dependencies.
* Makefile.in: Regenerate.
|
|
|
|
(ldemul_parse_args): Return bfd_boolean. Formatting.
* ldemul.h (ldemul_add_options, ldemul_handle_option): Declare.
(ldemul_parse_args): Adjust.
(struct ld_emulation_xfer_struct): Add add_options and handle_option.
Return bfd_boolean from parse_args.
* lexsup.c (parse_args): Malloc shortopts, longopts and
really_longopts. Call ldemul_add_options and ldemul_handle_option.
* emultempl/aix.em (gld${EMULATION_NAME}_add_options): Split out from
gld${EMULATION_NAME}_parse_args.
(gld${EMULATION_NAME}_handle_option): Likewise.
(ld_${EMULATION_NAME}_emulation): Adjust initializer.
* emultempl/armcoff.em: As for aix.em, but remove parse_args.
* emultempl/beos.em: Likewise.
* emultempl/pe.em: Likewise.
* emultempl/ticoff.em: Likewise.
* emultempl/elf32.em: Likewise. Don't duplicate long options either.
(gld${EMULATION_NAME}_add_sysroot): Prototype.
* emultempl/armelf.em (PARSE_AND_LIST_LONGOPTS): Don't duplicate
options.
* emultempl/hppaelf.em (PARSE_AND_LIST_LONGOPTS): Likewise.
* emultempl/ppc32elf.em (PARSE_AND_LIST_LONGOPTS): Likewise.
* emultempl/ppc64elf.em (PARSE_AND_LIST_LONGOPTS): Likewise.
* emultempl/armelf_oabi.em (ld_${EMULATION_NAME}_emulation): Adjust
initializer.
* emultempl/generic.em: Likewise.
* emultempl/gld960.em: Likewise.
* emultempl/gld960c.em: Likewise.
* emultempl/linux.em: Likewise.
* emultempl/lnk960.em: Likewise.
* emultempl/m68kcoff.em: Likewise.
* emultempl/mipsecoff.em: Likewise.
* emultempl/sunos.em: Likewise.
* emultempl/vanilla.em: Likewise.
* emultempl/netbsd.em (gldnetbsd_before_parse): Prototype.
|
|
|
|
|
|
|
|
comparisons of bfd_boolean vars with TRUE/FALSE. Formatting.
|
|
(LDEMUL_BEFORE_ALLOCATION): Define.
(gld${EMULATION_NAME}_finish): Run discard_info for relocatable
linking.
* emultemp/hppaelf.em ((gld${EMULATION_NAME}_finish): Likewise.
|
|
(gld${EMULATION_NAME}_finish): Call elf32_hppa_setup_section_lists
and build_section_lists.
|
|
* ldexp.h (etree_value_type): Add "str" field.
(union etree_union): Add "str" to "value" struct.
(exp_bigintop): Declare.
(exp_get_fill): Declare.
* ldexp.c: Include "safe-ctype.h".
(exp_intop): Set value.str to NULL.
(exp_bigintop): New function.
(new_rel): Pass in "str", and set new.str from it.
(new_rel_from_section): Set new.str to NULL.
(fold_name): Adjust calls to new_rel.
(exp_fold_tree): Likewise.
(exp_get_fill): New function.
* ldgram.y (struct big_int bigint, fill_type *fill): New.
(INT): Returns a "bigint". Adjust all code handling INTs.
(fill_opt): Returns a "fill".
(fill_exp): Split out of fill_opt, use for FILL.
* ldlang.h (struct _fill_type): New.
(fill_type): Move typedef to ldexp.h.
(lang_output_section_statement_type): "fill" is now a pointer.
(lang_fill_statement_type): Likewise.
(lang_padding_statement_type): Likewise.
(lang_add_fill): Now takes a "fill_type *" param.
(lang_leave_output_section_statement): Likewise.
(lang_do_assignments): Likewise.
(lang_size_sections): Likewise.
(lang_leave_overlay_section): Likewise.
(lang_leave_overlay): Likewise.
* ldlang.c: Include ldgram.h after ldexp.h.
(lang_output_section_statement_lookup): Adjust for fill_type change.
(print_fill_statement): Likewise.
(print_padding_statement): Likewise.
(insert_pad): Now takes a "fill_type *" arg.
(size_input_section): Likewise.
(lang_size_sections_1): Likewise.
(lang_size_sections): Likewise.
(lang_do_assignments): Likewise.
(lang_add_fill): Likewise.
(lang_leave_output_section_statement): Likewise.
(lang_leave_overlay_section): Likewise.
(lang_leave_overlay): Likewise.
Adjust all callers of the above function.
* ldlex.l: Include ldgram.h after ldexp.h. Allow hex numbers
starting with "0X" as well as "0x". Return bigint.str for hex
numbers starting with "0x" or "0X", zero bigint.str otherwise.
Always use base 16 for numbers starting with "$".
* ldmain.c: Include ldgram.h after ldexp.h.
* ldwrite.c (build_link_order): Use bfd_data_link_order in place
of bfd_fill_link_order.
* pe-dll.c: Adjust lang_do_assignments calls.
* emultempl/elf32.em: Likewise.
* emultempl/hppaelf.em: Likewise.
* emultempl/ppc64elf.em: Likewise.
* emultempl/beos.em: Include ldgram.h after ldexp.h, adjust
lang_add_assignment call.
* emultempl/pe.em: Likewise.
|
|
|
|
* emultempl/ppc64elf.em (gld${EMULATION_NAME}_finish): Likewise.
|
|
(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.
|
|
of false when calling lang_size_sections.
(hppaelf_layout_sections_again): Likewise.
|
|
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.
|
|
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.
|
|
(lang_size_sections): Always neuter padding statements.
* emultempl/hppaelf.em (hppaelf_delete_padding_statements): Delete.
|
|
|
|
|
|
|
|
import stub fix, extra DIR14F reloc to fix abort in tc_gen_reloc
|
|
|
|
|
|
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
|
|
re-arrange header include order.
Fix shadowing warnings in ldlang.h
Fix compile errors in mpw-elfmips.c
|
|
Makefile.am: Re-enable ehppaelf.o, add ehppalinux.o
configure.tgt: targ_emul=hppalinux for hppa*linux
|
|
|
|
* emultempl/*.em (ld_emulation_xfer_struct): Add missing NULL
initialisers, and comments.
* testsuite/ld-srec/sr3.cc (__rethrow): New.
|
|
* emultempl/astring.sed: New file.
* Makefile.am (stringify.sed): New target.
(GEN_DEPENDS): Change $(srcdir)/emultempl/stringify.sed to
stringify.sed.
* configure.in: Define and substitute STRINGIFY.
* emultempl/*.em: Use stringify.sed from build directory rather
than source directory.
* emultempl/elf32.em: Use stringify.sed rather than inline sed
script.
* emultempl/gld960.em, emultempl/gld960c.em: Likewise.
* emultempl/hppaelf.em, emultempl/linux.em: Likewise.
* emultempl/lnk960.em, emultempl/sunos.em: Likewise.
* configure, Makefile.in: Rebuild.
|
|
|