Compact EH Support
The specification for the Compact EH format is available at:
https://github.com/MentorEmbedded/cxx-abi/blob/master/MIPSCompactEH.pdf
2015-05-28 Catherine Moore <clm@codesourcery.com>
Bernd Schmidt <bernds@codesourcery.com>
Paul Brook <paul@codesourcery.com>
bfd/
* bfd-in2.h: Regenerated.
* elf-bfd.h (DWARF2_EH_HDR, COMPACT_EH_HDR): Define.
(COMPACT_EH_CANT_UNWIND_OPCODE): Define.
(dwarf_eh_frame_hdr_info): Move dwarf-specific fields from
eh_frame_hdr_info.
(compact_eh_frame_hdr_info): Declare.
(eh_frame_hdr_info): Redeclare with union for dwarf-specific
fields and compact-eh fields.
(elf_backend_data): Add cant_unwind_opcode and compact_eh_encoding.
(bfd_elf_section_data): Add eh_frame_entry_field.
(elf_section_eh_frame_entry): Define.
(bfd_elf_parse_eh_frame_entries): Declare.
(_bfd_elf_parse_eh_frame_entry): Declare.
(_bfd_elf_end_eh_frame_parsing): Declare.
(_bfd_elf_write_section_eh_frame_entry): Declare.
(_bfd_elf_eh_frame_entry_present): Declare.
(_bfd_elf_section_for_symbol): Declare.
* elf-eh-frame.c (bfd_elf_discard_eh_frame_entry): New function.
(bfd_elf_record_eh_frame_entry): New function.
(_bfd_elf_parse_eh_frame_entry): New function.
(_bfd_elf_parse_eh_frame): Update hdr_info field references.
(cmp_eh_frame_hdr): New function.
(add_eh_frame_hdr_terminator): New function.
(_bfd_elf_end_eh_frame_parsing): New function.
(find_merged_cie): Update hdr_info field references.
(_bfd_elf_discard_section_eh_frame): Likewise.
(_bfd_elf_discard_section_eh_frame_hdr): Add Compact EH support.
(_bfd_elf_eh_frame_entry_present): New function.
(_bfd_elf_maybe_strip_eh_frame_hdr): Add Compact EH support.
(_bfd_elf_write_section_eh_frame_entry): New function.
(_bfd_elf_write_section_eh_frame): Update hdr_info field references.
(_bfd_elf_fixup_eh_frame_hdr): New function.
(write_compact_eh_frame_hdr): New function.
(write_dwarf_eh_frame_hdr): New function.
(_bfd_elf_write_section_eh_frame_hdr): Add Compact EH support.
* elflink.c (_bfd_elf_section_for_symbol): New function.
(elf_section_ignore_discarded_relocs): Add Compact EH support.
(elf_link_input_bfd): Likewise.
(bfd_elf_final_link): Likewise.
(_bfd_elf_gc_mark): Likewise.
(bfd_elf_parse_eh_frame_entries): New function.
(bfd_elf_gc_sections): Add Compact EH support.
(bfd_elf_discard_info): Likewise.
* elfxx-mips.c: Include dwarf2.h.
(_bfd_mips_elf_compact_eh_encoding): New function.
(_bfd_mips_elf_cant_unwind_opcode): New function.
* elfxx-mips.h (_bfd_mips_elf_compact_eh_encoding): Declare.
(_bfd_mips_elf_cant_unwind_opcode): Declare.
(elf_backend_compact_eh_encoding): Define.
(elf_backend_cant_unwind_opcode): Define.
* elfxx-target.h (elf_backend_compact_eh_encoding): Provide default.
(elf_backend_cant_unwind_opcode): Provide default.
(elf_backend_data elfNN_bed): Add elf_backend_compact_eh_encoding and
elf_backend_cant_unwind_opcode.
* section.c (SEC_INFO_TYPE_EH_FRAME_ENTRY): Add definition.
gas/
* config/tc-alpha.c (all_cfi_sections): Declare.
(s_alpha_ent): Initialize all_cfi_sections.
(alpha_elf_md_end): Invoke cfi_set_sections.
* config/tc-mips.c (md_apply_fix): Handle BFD_RELOC_NONE.
(s_ehword): Use BFD_RELOC_32_PCREL.
(mips_fix_adjustable): Handle BFD_RELOC_32_PCREL.
(mips_cfi_reloc_for_encoding): New function.
* tc-mips.h (DWARF2_FDE_RELOC_SIZE): Redefine.
(DWARF2_FDE_RELOC_ENCODING): Define.
(tc_cfi_reloc_for_encoding): Define.
(mips_cfi_reloc_for_encoding): Define.
(tc_compact_eh_opcode_stop): Define.
(tc_compact_eh_opcode_pad): Define.
* doc/as.texinfo: Document Compact EH extensions.
* doc/internals.texi: Likewise.
* dw2gencfi.c (EH_FRAME_LINKONCE): Redefine.
(tc_cfi_reloc_for_encoding): Provide default.
(compact_eh): Declare.
(emit_expr_encoded): New function.
(get_debugseg_name): Add Compact EH support.
(alloc_debugseg_item): Likewise.
(cfi_set_sections): New function.
(dot_cfi_fde_data): New function.
(dot_cfi_personality_id): New function.
(dot_cfi_inline_lsda): New function.
(cfi_pseudo_table): Add cfi_fde_data, cfi_personality_id,
and cfi_inline_lsda.
(dot_cfi_personality): Add Compact EH support.
(dot_cfi_lsda): Likewise.
(dot_cfi_sections): Likewise.
(dot_cfi_startproc): Likewise.
(get_cfi_seg): Likewise.
(output_compact_unwind_data): New function.
(output_cfi_insn): Add Compact EH support.
(output_cie): Likewise.
(output_fde): Likewise.
(cfi_finish): Likewise.
(cfi_emit_eh_header): New function.
(output_eh_header): New function.
* dw2gencfi.h (cfi_set_sections): Declare.
(SUPPORT_COMPACT_EH): Define.
(MULTIPLE_FRAME_SECTIONS): Define.
New enumeration to describe the Compact EH header format.
(fde_entry): Add new fields personality_id, eh_header_type, eh_data_size,
eh_data, eh_loc and sections.
(CFI_EMIT_eh_frame, CFI_EMIT_debug_frame, CFI_EMIT_target,
CFI_EMIT_eh_frame_compact): Define.
2015-05-22 Catherine Moore <clm@codesourcery.com>
Bernd Schmidt <bernds@codesourcery.com>
gas/testsuite/
* gas/mips/mips.exp: Run new tests.
* gas/mips/compact-eh-1.s: New file.
* gas/mips/compact-eh-2.s: New file.
* gas/mips/compact-eh-3.s: New file.
* gas/mips/compact-eh-4.s: New file.
* gas/mips/compact-eh-5.s: New file.
* gas/mips/compact-eh-6.s: New file.
* gas/mips/compact-eh-7.s: New file.
* gas/mips/compact-eh-eb-1.d: New file.
* gas/mips/compact-eh-eb-2.d: New file.
* gas/mips/compact-eh-eb-3.d: New file.
* gas/mips/compact-eh-eb-4.d: New file.
* gas/mips/compact-eh-eb-5.d: New file.
* gas/mips/compact-eh-eb-6.d: New file.
* gas/mips/compact-eh-eb-7.d: New file.
* gas/mips/compact-eh-el-1.d: New file.
* gas/mips/compact-eh-el-2.d: New file.
* gas/mips/compact-eh-el-3.d: New file.
* gas/mips/compact-eh-el-4.d: New file.
* gas/mips/compact-eh-el-5.d: New file.
* gas/mips/compact-eh-el-6.d: New file.
* gas/mips/compact-eh-el-7.d: New file.
* gas/mips/compact-eh-err1.l: New file.
* gas/mips/compact-eh-err1.s: New file.
* gas/mips/compact-eh-err2.l: New file.
* gas/mips/compact-eh-err2.s: New file.
2015-05-22 Catherine Moore <clm@codesourcery.com>
include/
* bfdlink.h: Rename eh_frame_hdr to eh_frame_hdr_type.
2015-05-22 Catherine Moore <clm@codesourcery.com>
Paul Brook <paul@codesourcery.com>
ld/
* emultempl/elf32.em (gld${EMULATION_NAME}_after_open):
Add Compact EH support.
* scripttempl/elf.sc: Handle .eh_frame_entry and .gnu_extab
sections.
2015-05-22 Catherine Moore <clm@codesourcery.com>
ld/testsuite/
* ld-mips-elf/compact-eh.ld: New linker script.
* ld-mips-elf/compact-eh1.d: New.
* ld-mips-elf/compact-eh1.s: New.
* ld-mips-elf/compact-eh1a.s: New.
* ld-mips-elf/compact-eh1b.s: New.
* ld-mips-elf/compact-eh2.d: New.
* ld-mips-elf/compact-eh2.s: New.
* ld-mips-elf/compact-eh3.d: New.
* ld-mips-elf/compact-eh3.s: New.
* ld-mips-elf/compact-eh3a.s: New.
* ld-mips-elf/compact-eh4.d: New.
* ld-mips-elf/compact-eh5.d: New.
* ld-mips-elf/compact-eh6.d: New.
* ld-mips-elf/mips-elf.exp: Run new tests.
2015-05-28 23:50:36 +02:00
|
|
|
|
2015-05-28 Catherine Moore <clm@codesourcery.com>
|
|
|
|
|
Paul Brook <paul@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
ld/
|
|
|
|
|
* emultempl/elf32.em (gld${EMULATION_NAME}_after_open):
|
|
|
|
|
Add Compact EH support.
|
|
|
|
|
* scripttempl/elf.sc: Handle .eh_frame_entry and .gnu_extab
|
|
|
|
|
sections.
|
|
|
|
|
|
2015-05-14 12:40:57 +02:00
|
|
|
|
2015-05-17 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac (AC_PROG_GREP): Check for grep program.
|
|
|
|
|
(elf_list_options,elf_shlib_list_options,elf_plt_unwind_list_options):
|
|
|
|
|
Enable ELF option printing for emulations containing
|
|
|
|
|
'TEMPLATE_NAME=elf32'.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2015-05-14 13:32:12 +02:00
|
|
|
|
2015-05-14 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* ld.texinfo (ASSERT): Describe the interaction with PROVIDEd
|
|
|
|
|
symbols.
|
|
|
|
|
|
2015-05-11 21:01:57 +02:00
|
|
|
|
2015-05-11 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* configure.tgt: Support i[3-7]86-*-elfiamcu target.
|
|
|
|
|
|
2015-05-11 20:27:34 +02:00
|
|
|
|
2015-05-11 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (ALL_EMULATION_SOURCES): Add eelf_iamcu.c.
|
|
|
|
|
(eelf_iamcu.c): New.
|
|
|
|
|
* configure.tgt (targ_extra_emuls): Add elf_iamcu if elf_i386 is
|
|
|
|
|
enabled in BFD.
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
* emulparams/elf_iamcu.sh: New file.
|
|
|
|
|
|
2015-05-05 14:38:00 +02:00
|
|
|
|
2015-05-05 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* emulparams/msp430elf.sh (TEMPLATE_NAME): Change to msp430.
|
|
|
|
|
* scripttempl/msp430.sc (.text): Add .lower.text and .either.text.
|
|
|
|
|
(.data): Add .lower.data and .either.data.
|
|
|
|
|
(.bss): Add .lower.bss and .either.bss.
|
|
|
|
|
(.rodata): Add .lower.rodata and .either.rodata.
|
|
|
|
|
* emultempl/msp430.em: New file. Implements a new orphan
|
|
|
|
|
placement algorithm that divides sections between lower and upper
|
|
|
|
|
memory regions.
|
|
|
|
|
* Makefile.am (emsp430elf.c): Depend upon msp430.em.
|
|
|
|
|
*emsp430X.c): Likewise.
|
|
|
|
|
* Makefine.in: Regenerate.
|
|
|
|
|
|
2015-04-28 20:32:06 +02:00
|
|
|
|
2015-04-28 Andreas Schwab <schwab@linux-m68k.org>
|
|
|
|
|
|
|
|
|
|
PR ld/18344
|
|
|
|
|
* ldlex.l (INPUTLIST): Increment lineno on newline.
|
|
|
|
|
|
2015-04-24 11:49:37 +02:00
|
|
|
|
2015-04-24 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* emultempl/ppc64elf.em (gld${EMULATION_NAME}_after_allocation):
|
|
|
|
|
Call gld${EMULATION_NAME}_map_segments regardless of need_laying_out.
|
|
|
|
|
|
2015-04-24 23:05:13 +02:00
|
|
|
|
2015-04-24 DJ Delorie <dj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (msp430): Rename primary emulation to msp430elf.
|
|
|
|
|
(emsp430.c): Rename to emsp430elf.c, update dependencies
|
|
|
|
|
(emsp430X.c): Update dependencies.
|
|
|
|
|
* Makefile.in: Likewise.
|
|
|
|
|
* configure.tgt (msp430-*-*): Rename primary emulation to msp430elf.
|
2015-04-24 23:17:02 +02:00
|
|
|
|
* emulparams/msp430.sh: Rename to msp430elf.sh.
|
2015-04-24 23:05:13 +02:00
|
|
|
|
* emulparams/msp430X.sh: Update.
|
|
|
|
|
|
2015-04-23 16:58:05 +02:00
|
|
|
|
2015-04-23 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR binutils/18209
|
|
|
|
|
* ldfile.c (ldfile_try_open_bfd): Set is_linker_input to 1.
|
|
|
|
|
|
2015-04-21 11:48:24 +02:00
|
|
|
|
2015-04-23 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* emulparams/elf64ppc.sh (GOT): Align.
|
|
|
|
|
|
Rewrite relro adjusting code
The linker tries to put the end of the last section in the relro
segment exactly on a page boundary, because the relro segment itself
must end on a page boundary. If for any reason this can't be done,
padding is inserted. Since the end of the relro segment is typically
between .got and .got.plt, padding effectively increases the size of
the GOT. This isn't nice for targets and code models with limited GOT
addressing.
The problem with the current code is that it doesn't cope very well
with aligned sections in the relro segment. When making .got aligned
to a 256 byte boundary for PowerPC64, I found that often the initial
alignment attempt failed and the fallback attempt to be less than
adequate. This is a particular problem for PowerPC64 since the
distance between .got and .plt affects the size of plt call stubs,
leading to "stubs don't match calculated size" errors.
So this rewrite takes a direct approach to calculating a new relro
base. Starting from the last section in the segment, we calculate
where it must start to position its end on the boundary, or as near as
possible considering alignment requirements. The new start then
becomes the goal for the previous section to end, and so on for all
sections. This of course ignores the possibility that user scripts
will place . = ALIGN(xxx); in the relro segment, or provide section
address expressions. In those cases we might fail, but the old code
probably did too, and a fallback is provided.
ld/
* ldexp.h (struct ldexp_control): Delete dataseg.min_base. Add
data_seg.relro_offset.
* ldexp.c (fold_binary <DATA_SEGMENT_ALIGN>): Don't set min_base.
(fold_binary <DATA_SEGMENT_RELRO_END>): Do set relro_offset.
* ldlang.c (lang_size_sections): Rewrite code adjusting relro
segment base to line up last section on page boundary.
ld/testsuite/
* ld-x86-64/pr18176.d: Update.
2015-04-22 15:16:19 +02:00
|
|
|
|
2015-04-22 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ldexp.h (struct ldexp_control): Delete dataseg.min_base. Add
|
|
|
|
|
data_seg.relro_offset.
|
|
|
|
|
* ldexp.c (fold_binary <DATA_SEGMENT_ALIGN>): Don't set min_base.
|
|
|
|
|
(fold_binary <DATA_SEGMENT_RELRO_END>): Do set relro_offset.
|
|
|
|
|
* ldlang.c (lang_size_sections): Rewrite code adjusting relro
|
|
|
|
|
segment base to line up last section on page boundary.
|
|
|
|
|
|
2015-04-15 14:25:58 +02:00
|
|
|
|
2015-04-15 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* NEWS: Mention
|
|
|
|
|
--compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi].
|
|
|
|
|
|
2015-04-15 07:01:25 +02:00
|
|
|
|
2015-04-14 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* ld.texinfo: Document --compress-debug-sections=.
|
|
|
|
|
* ldmain.c (main): Set BFD_COMPRESS on output_bfd if
|
|
|
|
|
COMPRESS_DEBUG is set. Set BFD_COMPRESS_GABI on output_bfd
|
|
|
|
|
for COMPRESS_DEBUG_GABI_ZLIB.
|
|
|
|
|
* lexsup.c (elf_static_list_options): Add
|
|
|
|
|
--compress-debug-sections=.
|
|
|
|
|
* emultempl/elf32.em (OPTION_COMPRESS_DEBUG): New.
|
|
|
|
|
(xtra_long): Add "compress-debug-sections".
|
|
|
|
|
(gld${EMULATION_NAME}_handle_option): Handle
|
|
|
|
|
OPTION_COMPRESS_DEBUG.
|
|
|
|
|
|
2015-04-14 13:12:55 +02:00
|
|
|
|
2015-04-14 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/pr17709
|
|
|
|
|
* ld.texinfo: Document "-z noextern-protected-data".
|
|
|
|
|
* ldmain.c (main): Initialize link_info.extern_protected_data
|
|
|
|
|
to -1.
|
|
|
|
|
* lexsup.c (elf_shlib_list_options): Add
|
|
|
|
|
"-z [no]extern-protected-data".
|
|
|
|
|
* emulparams/elf32_x86_64.sh: Source extern_protected_data.sh.
|
|
|
|
|
* emulparams/elf_i386.sh: Likewise.
|
|
|
|
|
* emulparams/elf_i386_be.sh: Likewise.
|
|
|
|
|
* emulparams/elf_i386_chaos.sh: Likewise.
|
|
|
|
|
* emulparams/elf_i386_ldso.sh: Likewise.
|
|
|
|
|
* emulparams/elf_i386_vxworks.sh: Likewise.
|
|
|
|
|
* emulparams/elf_k1om.sh: Likewise.
|
|
|
|
|
* emulparams/elf_l1om.sh: Likewise.
|
|
|
|
|
* emulparams/elf_x86_64.sh: Source extern_protected_data.sh.
|
|
|
|
|
(PARSE_AND_LIST_OPTIONS): Renamed to ...
|
|
|
|
|
(PARSE_AND_LIST_OPTIONS_BNDPLT): This.
|
|
|
|
|
(PARSE_AND_LIST_ARGS_CASE_Z): Renamed to ...
|
|
|
|
|
(PARSE_AND_LIST_ARGS_CASE_Z_BNDPLT): This.
|
|
|
|
|
(PARSE_AND_LIST_OPTIONS): Append $PARSE_AND_LIST_OPTIONS_BNDPLT.
|
|
|
|
|
(PARSE_AND_LIST_ARGS_CASE_Z): Append
|
|
|
|
|
$PARSE_AND_LIST_ARGS_CASE_Z_BNDPLT.
|
|
|
|
|
* emulparams/extern_protected_data.sh: New file.
|
|
|
|
|
|
2015-04-11 21:06:33 +02:00
|
|
|
|
2015-04-11 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* plugin.c (plugin_load_plugins): Removed an extra ';'.
|
|
|
|
|
|
2015-04-10 09:26:07 +02:00
|
|
|
|
2015-04-10 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR binutils/18198
|
|
|
|
|
* ld.texinfo (--be8): Add a note about the interaction of this
|
|
|
|
|
option with the assembler's -EB option.
|
|
|
|
|
|
2015-04-10 10:51:32 +02:00
|
|
|
|
2015-04-10 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Set elf_list_options etc. in proper case.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2015-04-09 11:08:03 +02:00
|
|
|
|
2015-04-10 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR ld/18223
|
|
|
|
|
* ldlang.c (lang_process): Add _init and _fini to gc_sym_list.
|
|
|
|
|
|
2015-04-09 16:46:21 +02:00
|
|
|
|
2015-04-09 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* emulparams/elf_x86_64.sh (BNDPLT): Removed.
|
|
|
|
|
(PARSE_AND_LIST_OPTIONS): New.
|
|
|
|
|
(PARSE_AND_LIST_ARGS_CASE_Z): Likewise.
|
|
|
|
|
* emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Remove
|
|
|
|
|
BNDPLT check. Handle PARSE_AND_LIST_ARGS_CASE_Z.
|
|
|
|
|
(gld${EMULATION_NAME}_list_options): Remove BNDPLT check.
|
|
|
|
|
|
2015-04-09 15:56:29 +02:00
|
|
|
|
2015-04-09 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* po/fr.po: Updated French translation.
|
|
|
|
|
|
2015-04-09 02:05:54 +02:00
|
|
|
|
2015-04-08 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac (elf_list_options): Set to TRUE for
|
|
|
|
|
--enable-targets=all.
|
|
|
|
|
(elf_shlib_list_options): Likewise.
|
|
|
|
|
(elf_plt_unwind_list_options): Likewise.
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
|
2015-04-08 18:46:50 +02:00
|
|
|
|
2015-04-08 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* emulparams/elf32bmipn32-defs.sh: Skip empty EMULATION_NAME.
|
|
|
|
|
|
2015-04-08 13:55:07 +02:00
|
|
|
|
2015-04-08 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (ELF_CLFAGS): New.
|
|
|
|
|
(AM_CFLAGS): Add $(ELF_CLFAGS).
|
|
|
|
|
* configure.ac (elf_list_options): New. AC_SUBST.
|
|
|
|
|
(elf_shlib_list_options): Likewise.
|
|
|
|
|
(elf_plt_unwind_list_options): Likewise.
|
|
|
|
|
* lexsup.c (elf_shlib_list_options): New.
|
|
|
|
|
(elf_static_list_options): Likewise.
|
|
|
|
|
(elf_plt_unwind_list_options): Likewise.
|
|
|
|
|
(ld_list_options): Likewise.
|
|
|
|
|
(help): Call ld_list_options.
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
* configure: Likewise.
|
|
|
|
|
* emulparams/plt_unwind.sh (PLT_UNWIND): New.
|
|
|
|
|
(PARSE_AND_LIST_OPTIONS): Removed.
|
|
|
|
|
* emultempl/elf32.em (gld_list_options): New.
|
|
|
|
|
(gld${EMULATION_NAME}_list_options): Define only if BNDPLT or
|
|
|
|
|
PARSE_AND_LIST_OPTIONS is defined.
|
|
|
|
|
(ld_${EMULATION_NAME}_emulation): Replace
|
|
|
|
|
gld${EMULATION_NAME}_list_options with ${gld_list_options.
|
|
|
|
|
|
2015-04-07 03:09:59 +02:00
|
|
|
|
2015-04-07 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR ld/18176
|
|
|
|
|
* ldlang.c (lang_size_sections): Cast shift expression.
|
|
|
|
|
|
2015-04-01 01:29:46 +02:00
|
|
|
|
2015-04-07 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* emultempl/ppc32elf.em: Handle --no-pic-fixup.
|
|
|
|
|
(params): Init new field.
|
|
|
|
|
(ppc_before_allocation): Enable relaxation for pic_fixup.
|
|
|
|
|
|
2015-04-07 17:29:41 +02:00
|
|
|
|
2015-04-07 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* ld.h (struct ld_config_type): Add new field: warn_orphan.
|
|
|
|
|
* ldlex.h (enum option_values): Add OPTION_WARN_ORPHAN and
|
|
|
|
|
OPTION_NO_WARN_ORPHAN.
|
|
|
|
|
* lexsup.c (ld_options): Add --warn-orphan and --no-warn-orphan.
|
|
|
|
|
(parse_args): Handle the new options.
|
|
|
|
|
* ldemul.c (ldemul_place_orphan): If requested, generate a warning
|
|
|
|
|
message when an orphan section is placed in the output file.
|
|
|
|
|
* ld.texinfo: Document the new option.
|
|
|
|
|
* NEWS: Mention the new feature.
|
|
|
|
|
|
2015-04-02 16:07:27 +02:00
|
|
|
|
2015-04-02 Andrew Turner <andrew@freebsd.org>
|
|
|
|
|
|
|
|
|
|
* Makefile.am: Add FreeBSD aarch64 files.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* configure.tgt: Add aarch64-*-freebsd* target triple.
|
|
|
|
|
* emulparams/aarch64fbsd.sh: New file.
|
|
|
|
|
* emulparams/aarch64fbsdb.sh: New file.
|
|
|
|
|
|
2015-04-01 17:14:32 +02:00
|
|
|
|
2015-04-01 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Work
|
|
|
|
|
around a GCC uninitialized warning bug fixed in GCC 4.6.
|
|
|
|
|
|
2015-02-24 13:04:41 +01:00
|
|
|
|
2015-04-01 Tejas Belagod <tejas.belagod@arm.com>
|
|
|
|
|
|
|
|
|
|
* emultempl/aarch64elf.em
|
|
|
|
|
(aarch64_elf_create_output_section_statements): Add parameter in
|
|
|
|
|
bfd_elf${ELFSIZE}_aarch64_set_options call.
|
|
|
|
|
(OPTION_FIX_ERRATUM_843419): Define.
|
|
|
|
|
(PARSE_AND_LIST_LONGOPTS): Add fix-cortex-a53-843419.
|
|
|
|
|
(PARSE_AND_LIST_ARGS_CASES): Add OPTION_FIX_ERRATUM_843419.
|
|
|
|
|
|
2015-04-01 12:29:46 +02:00
|
|
|
|
2015-04-01 Chen Gang <gang.chen.5i5j@gmail.com>
|
|
|
|
|
|
|
|
|
|
* emulparams/elf32_tic6x_le.sh: Skip OTHER_BSS_SECTIONS for
|
|
|
|
|
relocating operation.
|
|
|
|
|
|
2015-04-01 10:49:27 +02:00
|
|
|
|
2015-04-01 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
2015-04-01 13:24:05 +02:00
|
|
|
|
PR ld/18176
|
2015-04-01 10:49:27 +02:00
|
|
|
|
* ldlang.c (lang_size_sections): When alignment of sections
|
|
|
|
|
results in relro base adjustment being too large, don't go lower
|
|
|
|
|
than the initial value.
|
|
|
|
|
* ldexp.c (fold_binary <DATA_SEGMENT_RELRO_END>): Comment.
|
|
|
|
|
* scripttempl/elf.sc (DATA_SEGMENT_ALIGN): Omit SEGMENT_SIZE
|
|
|
|
|
alignment when SEGMENT_SIZE is the same as MAXPAGESIZE.
|
|
|
|
|
|
2015-04-01 04:31:38 +02:00
|
|
|
|
2015-04-01 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Don't
|
|
|
|
|
init ehdr_start_save.
|
|
|
|
|
|
2015-04-01 02:13:20 +02:00
|
|
|
|
2015-04-01 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (eelf32ppcvxworks.c): Depend on ppc32elf.em and
|
|
|
|
|
ldemul-list.h.
|
|
|
|
|
(eelf32lppc.c, eelf32lppclinux.c, eelf32lppcnto.c, eelf32lppcsim.c,
|
|
|
|
|
eelf32ppc.c, eelf32ppc_fbsd.c, eelf32ppclinux.c, eelf32ppcnto.c,
|
|
|
|
|
eelf32ppcsim.c): Rearrange deps for consistency.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2015-03-31 16:47:10 +02:00
|
|
|
|
2015-04-01 Ed Schouten <ed@nuxi.nl>
|
|
|
|
|
|
|
|
|
|
* emultempl/elf32.em (gld*_before_allocation): Zero-initialize
|
|
|
|
|
the ehdr_start_save variable.
|
|
|
|
|
|
2015-03-31 11:33:45 +02:00
|
|
|
|
2015-03-31 Ed Schouten <ed@nuxi.nl>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (ALL_64_EMULATION_SOURCES): Add
|
|
|
|
|
eelf_x86_64_cloudabi.c.
|
|
|
|
|
(eelf_x86_64_cloudabi.c): New.
|
|
|
|
|
* configure.tgt (targ_emul): Set to elf_x86_64_cloudabi for
|
|
|
|
|
x86_64-*-cloudabi*.
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
* emulparams/elf_x86_64_cloudabi.sh: New file.
|
|
|
|
|
|
2015-03-31 12:58:15 +02:00
|
|
|
|
2015-03-31 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac (AM_ZLIB): Removed.
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
* config.in: Likewise.
|
|
|
|
|
* configure: Likewise.
|
|
|
|
|
|
2015-03-22 08:48:07 +01:00
|
|
|
|
2015-03-24 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
|
|
|
|
|
|
|
|
|
* emultempl/aarch64elf.em (_aarch64_add_stub_section): Set section
|
|
|
|
|
alignment to 2.
|
|
|
|
|
|
2015-03-22 08:47:38 +01:00
|
|
|
|
2015-03-23 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
|
|
|
|
|
|
|
|
|
* emultempl/aarch64elf.em
|
|
|
|
|
(elf${ELFSIZE}_aarch64_add_stub_section): Adjust layout.
|
|
|
|
|
|
2015-03-18 02:12:19 +01:00
|
|
|
|
2015-03-18 Chen Gang <gang.chen.5i5j@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ldmain.c (main): Use %F instead of %X for einfo.
|
|
|
|
|
|
2015-03-02 07:23:07 +01:00
|
|
|
|
2015-03-02 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ld.texinfo (Options <-z nocopyreloc>): Rewrite.
|
|
|
|
|
|
2015-02-27 17:19:57 +01:00
|
|
|
|
2015-02-27 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR ld/17900
|
|
|
|
|
* ldlang.c (lang_set_flags): Allow exclamation mark to reverse the
|
|
|
|
|
sense of the following memory region attribute characters.
|
|
|
|
|
|
2015-02-26 03:31:50 +01:00
|
|
|
|
2015-02-27 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (ALL_EMULATION_SOURCES): Sort new h8300 entries.
|
|
|
|
|
(eh8300elf_linux.c, eh8300helf_linux.c, eh8300self_linux.c,
|
|
|
|
|
eh8300sxelf_linux.c): Do not invoke genscripts here.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2015-02-24 18:54:09 +01:00
|
|
|
|
2015-02-24 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (ev850.c): Add dependency upon
|
|
|
|
|
$(srcdir)/emultempl/v850elf.em.
|
|
|
|
|
(ev850_rh850.c): Likewise.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* emultempl/v850elf.em: New file.
|
|
|
|
|
* emulparams/v850.sh (EXTRA_EM_FILE): Define.
|
|
|
|
|
* emulparams/v850_rh850.sh (EXTRA_EM_FILE): Define.
|
|
|
|
|
* scripttempl/v850.sc: Add .note.renesas section.
|
|
|
|
|
* scripttempl/v850_rh850.sc: Likewise.
|
|
|
|
|
|
2015-02-24 12:26:28 +01:00
|
|
|
|
2015-02-24 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
|
|
|
|
|
|
|
|
|
|
* scripttempl/avr.sc: Add new user_signatures region. Define and
|
|
|
|
|
use symbols for all region lengths.
|
|
|
|
|
* scripttempl/avrtiny.sc: Define and use symbols for all region
|
|
|
|
|
lengths.
|
|
|
|
|
|
2015-02-23 18:04:53 +01:00
|
|
|
|
2015-01-21 Yoshinori Sato <ysato@users.sourceforge.jp>
|
|
|
|
|
|
|
|
|
|
* Makefile.am: (ALL_EMULATION_SOURCES): Add new emulations.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* configure.tgt: Add h8300-*-linux
|
|
|
|
|
* emulparams/h8300elf_linux.sh: Add new emulation.
|
|
|
|
|
* emulparams/h8300helf_linux.sh: Likewise.
|
|
|
|
|
* emulparams/h8300self_linux.sh: Likewise.
|
|
|
|
|
* emulparams/h8300sxelf_linux.sh: Likewise.
|
|
|
|
|
|
2015-02-23 16:33:56 +01:00
|
|
|
|
2015-02-23 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* lexsup.c (parse_args): Produce a more reasonable error message
|
|
|
|
|
when -ixxx or -rxxx is the last option on the linker command line.
|
|
|
|
|
|
2015-02-14 14:45:08 +01:00
|
|
|
|
2015-02-14 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/17973
|
|
|
|
|
* testplug2.c (allsymbolsread_silent): New.
|
|
|
|
|
(set_register_hook): Handle allsymbolsreadsilent.
|
|
|
|
|
(onall_symbols_read): Skip a message if allsymbolsread_silent is
|
|
|
|
|
TRUE.
|
|
|
|
|
|
2015-02-14 09:08:32 +01:00
|
|
|
|
2015-02-14 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR ld/17973
|
|
|
|
|
* ldlang.h (struct lang_input_statement_flags): Add lto_output.
|
|
|
|
|
* ldlang.c (lang_process): Don't set loading_lto_outputs.
|
|
|
|
|
* ldfile.c (ldfile_try_open_bfd): Transfer entry flags.lto_output
|
|
|
|
|
to bfd.
|
|
|
|
|
* plugin.c (add_input_file, add_input_library): Set flags.lto_output.
|
|
|
|
|
|
2015-02-13 16:54:21 +01:00
|
|
|
|
2015-02-13 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* NEWS: Mention support for LLVM plugin.
|
|
|
|
|
|
2015-02-12 04:10:33 +01:00
|
|
|
|
2015-02-13 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ld.texinfo (Options <--defsym>): Correct cross reference.
|
|
|
|
|
|
2015-02-11 21:16:36 +01:00
|
|
|
|
2015-02-11 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* lexsup.c (ld_options): Add --[no-]map-whole-files for gold
|
|
|
|
|
option compatibility.
|
|
|
|
|
|
2015-02-11 21:16:07 +01:00
|
|
|
|
2015-02-11 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* plugin.c (message): Output "warning:" for LDPL_WARNING. Output
|
|
|
|
|
"error:" for LDPL_FATAL and LDPL_ERROR.
|
|
|
|
|
* testplug2.c (parse_option): Handle fatal, error and warning.
|
|
|
|
|
|
2015-02-11 22:35:07 +01:00
|
|
|
|
2015-02-11 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* testplug2.c (dump_tv_tag): Removed.
|
|
|
|
|
(onall_symbols_read): Return LDPS_ERR if the file descriptor isn't
|
|
|
|
|
closed.
|
|
|
|
|
* testplug3.c (dump_tv_tag): Removed.
|
|
|
|
|
(onclaim_file): Fix typo.
|
|
|
|
|
|
2015-02-11 14:16:40 +01:00
|
|
|
|
2015-02-11 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/17878
|
|
|
|
|
* Makefile.am (noinst_LTLIBRARIES): Add libldtestplug2.la and
|
|
|
|
|
libldtestplug3.la.
|
|
|
|
|
(libldtestplug2_la_SOURCES): New.
|
|
|
|
|
(libldtestplug2_la_CFLAGS): Likewise.
|
|
|
|
|
(libldtestplug2_la_LDFLAGS): Likewise.
|
|
|
|
|
(libldtestplug3_la_SOURCES): New.
|
|
|
|
|
(libldtestplug3_la_CFLAGS): Likewise.
|
|
|
|
|
(libldtestplug3_la_LDFLAGS): Likewise.
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
* testplug2.c: New file.
|
|
|
|
|
* testplug3.c: Likewise.
|
|
|
|
|
|
2015-02-11 14:14:11 +01:00
|
|
|
|
2015-02-11 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/17878
|
|
|
|
|
* plugin.c: Include ../bfd/plugin.h.
|
|
|
|
|
(plugin_get_ir_dummy_bfd): Call bfd_create with
|
|
|
|
|
link_info.output_bfd instead of srctemplate. Copy BFD info
|
|
|
|
|
from srctemplate only if it doesn't use BFD plugin target
|
|
|
|
|
vector.
|
|
|
|
|
(plugin_load_plugins): Call register_ld_plugin_object_p with
|
|
|
|
|
(plugin_object_p)
|
|
|
|
|
(plugin_maybe_claim): Renamed to ...
|
|
|
|
|
(plugin_object_p): This. Return dummy BFD target vector if
|
|
|
|
|
input is calimed by plugin library, otherwise return NULL.
|
|
|
|
|
Update plugin_format and plugin_dummy_bfd.
|
|
|
|
|
(plugin_maybe_claim): New. Use plugin_object_p.
|
|
|
|
|
|
2015-02-11 04:02:07 +01:00
|
|
|
|
2015-02-10 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* plugin.c (plugin_maybe_claim): Initialize use_mmap.
|
|
|
|
|
|
2015-02-11 02:01:17 +01:00
|
|
|
|
2015-02-10 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* plugin.c (plugin_input_file_t): Add use_mmap.
|
|
|
|
|
(plugin_pagesize): New.
|
|
|
|
|
(get_view): Use plugin_pagesize. Set use_mmap if mmap is used.
|
|
|
|
|
(plugin_load_plugins): Initialize plugin_pagesize.
|
|
|
|
|
(plugin_maybe_claim): Unmap the buffer if plugin didn't claim the
|
|
|
|
|
file.
|
|
|
|
|
|
2015-02-10 14:28:26 +01:00
|
|
|
|
2015-02-10 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* plugin.c (get_view): Align offset passed to mmap.
|
|
|
|
|
|
2015-02-09 00:00:34 +01:00
|
|
|
|
2015-02-08 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* ldfile.c (ldfile_try_open_bfd): Don't call bfd_check_format
|
|
|
|
|
if plugin isn't active or there is no thing more to claim.
|
|
|
|
|
|
2015-02-08 17:45:23 +01:00
|
|
|
|
2015-02-08 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* plugin.c (plugin_maybe_claim): Check format against bfd_object
|
|
|
|
|
directly.
|
|
|
|
|
|
2015-02-07 21:50:17 +01:00
|
|
|
|
2015-02-07 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* plugin.c (plugin_maybe_claim): Replace entry->the_bfd with
|
|
|
|
|
ibfd.
|
|
|
|
|
|
2015-02-07 20:01:22 +01:00
|
|
|
|
2015-02-07 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* plugin.c: Include "libbfd.h".
|
|
|
|
|
(plugin_strdup): New.
|
|
|
|
|
(plugin_maybe_claim): Remove the argument of pointer to struct
|
|
|
|
|
ld_plugin_input_file. Open and handle input entry.
|
|
|
|
|
* plugin.h (plugin_maybe_claim): Updated.
|
|
|
|
|
* ldfile.c (ldfile_try_open_bfd): Call plugin_maybe_claim directly
|
|
|
|
|
without passing a pointer to struct ld_plugin_input_file.
|
|
|
|
|
* ldmain.c: Don't include "libbfd.h".
|
|
|
|
|
(add_archive_element): Call plugin_maybe_claim directly without
|
|
|
|
|
passing a pointer to struct ld_plugin_input_file.
|
|
|
|
|
|
2015-02-06 19:01:35 +01:00
|
|
|
|
2015-02-06 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* ld.texinfo: Document -z text, -z notext and -z textoff.
|
|
|
|
|
* emultempl/elf32.em (gld${EMULATION_NAME}_list_options): Add
|
|
|
|
|
-z text, -z notext and -z textoff.
|
|
|
|
|
|
2015-02-06 18:05:35 +01:00
|
|
|
|
2015-02-06 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Add AC_FUNC_MMAP.
|
|
|
|
|
* config.in: Regenerated.
|
|
|
|
|
* configure: Likewise.
|
|
|
|
|
* plugin.c: Include <sys/mman.h>.
|
|
|
|
|
(MAP_FAILED): New. Defined if not defined.
|
|
|
|
|
(PROT_READ): Likewise.
|
|
|
|
|
(MAP_PRIVATE): Likewise.
|
|
|
|
|
(view_buffer_t): New.
|
|
|
|
|
(plugin_input_file_t): Add view_buffer.
|
|
|
|
|
(get_view): Try mmap and cache the view buffer.
|
|
|
|
|
(plugin_maybe_claim): Initialize view_buffer.
|
|
|
|
|
|
2015-02-06 01:57:09 +01:00
|
|
|
|
2015-02-05 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* plugin.c (release_input_file): Set fd to -1 after closing it.
|
|
|
|
|
(plugin_maybe_claim): Close fd only if fd != -1.
|
|
|
|
|
|
2015-02-05 14:00:52 +01:00
|
|
|
|
2015-02-05 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/17878
|
|
|
|
|
* plugin.c: Include <errno.h>.
|
|
|
|
|
(errno): New. Declare if needed.
|
|
|
|
|
(plugin_input_file_t): New.
|
|
|
|
|
(get_input_file): Implemented.
|
|
|
|
|
(get_view): Likewise.
|
|
|
|
|
(release_input_file): Likewise.
|
|
|
|
|
(add_symbols): Updated.
|
|
|
|
|
(get_symbols): Likewise.
|
|
|
|
|
(plugin_maybe_claim): Allocate a plugin_input_file_t. Close fd
|
|
|
|
|
only for a bfd_object input.
|
|
|
|
|
|
2015-02-02 12:18:46 +01:00
|
|
|
|
2015-02-02 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* emultempl/ppc64elf.em (toc_section_name): New var.
|
|
|
|
|
(ppc_after_open): Set it.
|
|
|
|
|
(ppc_before_allocation): Use it.
|
|
|
|
|
(gld${EMULATION_NAME}_after_allocation): Here too.
|
|
|
|
|
|
2015-01-29 13:56:39 +01:00
|
|
|
|
2015-01-29 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* ldfile.c (ldfile_try_open_bfd): Replace plugin_active_plugins_p()
|
|
|
|
|
with link_info.lto_plugin_active.
|
|
|
|
|
* ldlang.c (lang_process): Likewise.
|
|
|
|
|
* ldmain.c (add_archive_element): Likewise.
|
|
|
|
|
* plugin.c (plugin_active_plugins_p): Removed.
|
|
|
|
|
* plugin.h (plugin_active_plugins_p): Likewise.
|
|
|
|
|
|
2015-01-28 21:56:18 +01:00
|
|
|
|
2015-01-28 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* plugin.h (plugin_get_ir_dummy_bfd): Removed. Move comments to
|
|
|
|
|
...
|
|
|
|
|
* plugin.c (plugin_get_ir_dummy_bfd): Here. Make it static.
|
|
|
|
|
|
2015-01-28 19:27:31 +01:00
|
|
|
|
2015-01-28 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/17878
|
|
|
|
|
* plugin.c (tv_header_tags(): Add LDPT_GET_VIEW.
|
|
|
|
|
(get_view): New function.
|
|
|
|
|
(set_tv_header): Handle LDPT_GET_VIEW.
|
|
|
|
|
* testplug.c (tag_names): Add LDPT_GET_VIEW.
|
|
|
|
|
(tv_get_view): New.
|
|
|
|
|
(dump_tv_tag): Handle LDPT_GET_VIEW.
|
|
|
|
|
(parse_tv_tag): Likewise.
|
|
|
|
|
|
2015-01-27 14:10:05 +01:00
|
|
|
|
2015-01-28 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* emulparams/elf64ppc.sh (INITIAL_READWRITE_SECTIONS): Define.
|
|
|
|
|
* emultempl/ppc64elf.em (params): Init new field.
|
|
|
|
|
(ppc_after_open): New function.
|
|
|
|
|
(LDEMUL_AFTER_OPEN): Define.
|
|
|
|
|
* ldlang.c (lang_final): Whitespace fix.
|
|
|
|
|
|
2015-01-28 06:06:43 +01:00
|
|
|
|
2015-01-28 James Bowman <james.bowman@ftdichip.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am: Add FT32 files.
|
|
|
|
|
* configure.tgt: Handle FT32 target.
|
|
|
|
|
* emulparams/elf32ft32.sh: New file.
|
|
|
|
|
* scripttempl/ft32.sc: New file.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2015-01-28 05:31:50 +01:00
|
|
|
|
2015-01-28 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
|
|
|
|
|
|
|
|
|
|
PR 4643
|
|
|
|
|
* ldexp.c (fold_name): Fold LENGTH only after
|
|
|
|
|
lang_first_phase_enum.
|
|
|
|
|
* ldgram.y (memory_spec): Don't evaluate ORIGIN and LENGTH
|
|
|
|
|
rightaway.
|
|
|
|
|
* ldlang.h (struct memory_region_struct): Add origin_exp and
|
|
|
|
|
length_exp fields.
|
|
|
|
|
* ldlang.c (lang_do_memory_regions): New.
|
|
|
|
|
(lang_memory_region_lookup): Initialize origin_exp and
|
|
|
|
|
length_exp fields.
|
|
|
|
|
(lang_process): Call lang_do_memory_regions.
|
|
|
|
|
|
ld: Don't evaluate unneeded PROVIDE expressions.
When creating a linker mapfile (using -Map=MAPFILE), we previously would
always try to evaluate the expression from a PROVIDE statement.
However, this is not always safe, consider:
PROVIDE (foo = 0x10);
PROVIDE (bar = foo);
In this example, if neither 'foo' or 'bar' is needed, then while
generating the linker mapfile evaluating the expression for 'foo' is
harmless (just the value 0x10). However, evaluating the expression for
'bar' requires the symbol 'foo', which is undefined. This used to cause
a fatal error.
This patch changes the behaviour, so that when the destination of the
PROVIDE is not defined (that is the PROVIDE is not going to provide
anything) the expression is not evaluated, and instead a special string
is displayed to indicate that the linker is discarding the PROVIDE
statement.
This change not only fixes the spurious undefined symbol error, but also
means that a user can now tell if a PROVIDE statement has provided
anything by inspecting the linker mapfile, something that could not be
done before.
ld/ChangeLog:
* ldlang.c (print_assignment): Only evaluate the expression for a
PROVIDE'd assignment when the destination is being defined.
Display a special message for PROVIDE'd symbols that are not being
provided.
ld/testsuite/ChangeLog:
* ld-scripts/provide-4.d: New file.
* ld-scripts/provide-4-map.d: New file.
* ld-scripts/provide-4.t: New file.
* ld-scripts/provide-5.d: New file.
* ld-scripts/provide-5.s: New file.
* ld-scripts/provide-5-map.d: New file.
* ld-scripts/provide-5.t: New file.
* ld-scripts/provide.exp: Run the provide-4.d and provide-5.d
tests.
2015-01-07 11:51:35 +01:00
|
|
|
|
2015-01-20 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* ldlang.c (print_assignment): Only evaluate the expression for a
|
|
|
|
|
PROVIDE'd assignment when the destination is being defined.
|
|
|
|
|
Display a special message for PROVIDE'd symbols that are not being
|
|
|
|
|
provided.
|
|
|
|
|
|
2015-01-20 11:41:37 +01:00
|
|
|
|
2015-01-20 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* emulparams/elf64ppc.sh (OTHER_SDATA_SECTIONS): Use in place of..
|
|
|
|
|
(OTHER_BSS_SYMBOLS): ..this.
|
|
|
|
|
(OTHER_PLT_RELOC_SECTIONS): Don't define.
|
|
|
|
|
(OTHER_GOT_RELOC_SECTIONS): Add rela.toc1 and rela.tocbss.
|
|
|
|
|
(OTHER_READWRITE_SECTIONS): Don't define. Move .toc1 to..
|
|
|
|
|
(OTHER_RELRO_SECTIONS_2): ..here.
|
|
|
|
|
* scripttempl/elf.sc: Move SBSS too when DATA_SDATA.
|
|
|
|
|
|
Reorder more powerpc64 sections for -z relro
This moves .got too, which requires .sdata and .sbss to move with it,
because these sections share addressing via the toc pointer and with
small-model code must be within a 16-bit signed offset. .plt, .iplt
and .branch_lt must also be moved since they are addressed via a
32-bit offset from the toc pointer, and we might have a very large
.data section.
This change means we may have some bss style sections before the data
segment, necessitating another PT_LOAD header. Also, since _edata is
defined at the end of the data segment it's possible with an empty
.data to have _edata at the end of .plt which looks a little unusual
since .plt is a bss style section. That should only happen rarely in
real world binaries, but does occur in the ld testsuite.
ld/
* emulparams/elf64ppc.sh (BSS_PLT): Don't define.
(OTHER_READWRITE_SECTIONS): Move .branch_lt to..
(OTHER_RELRO_SECTIONS_2): ..here.
(DATA_GOT, SEPARATE_GOTPLT, DATA_SDATA, DATA_PLT,
PLT_BEFORE_GOT): Define.
* scripttempl/elf.sc: Handle DATA_SDATA and DATA_GOT/DATA_PLT/
PLT_BEFORE_GOT combination.
(DATA_GOT, SDATA_GOT): Don't define if either is already defined.
ld/testsuite/
* ld-powerpc/ambiguousv1.d,
* ld-powerpc/ambiguousv1b.d,
* ld-powerpc/ambiguousv2.d,
* ld-powerpc/ambiguousv2b.d,
* ld-powerpc/elfv2exe.d,
* ld-powerpc/elfv2so.d,
* ld-powerpc/tlsexe.r,
* ld-powerpc/tlsexetoc.r,
* ld-powerpc/tlsso.r,
* ld-powerpc/tlstocso.r: Update.
2015-01-20 07:49:15 +01:00
|
|
|
|
2015-01-20 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* emulparams/elf64ppc.sh (BSS_PLT): Don't define.
|
|
|
|
|
(OTHER_READWRITE_SECTIONS): Move .branch_lt to..
|
|
|
|
|
(OTHER_RELRO_SECTIONS_2): ..here.
|
|
|
|
|
(DATA_GOT, SEPARATE_GOTPLT, DATA_SDATA, DATA_PLT,
|
|
|
|
|
PLT_BEFORE_GOT): Define.
|
|
|
|
|
* scripttempl/elf.sc: Handle DATA_SDATA and DATA_GOT/DATA_PLT/
|
|
|
|
|
PLT_BEFORE_GOT combination.
|
|
|
|
|
(DATA_GOT, SDATA_GOT): Don't define if either is already defined.
|
|
|
|
|
|
2015-01-20 07:41:21 +01:00
|
|
|
|
2015-01-20 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* emulparams/elf64ppc.sh (OTHER_READWRITE_SECTIONS): Move .opd to..
|
|
|
|
|
(OTHER_RELRO_SECTIONS_2): ..here, new define.
|
|
|
|
|
* scripttempl/elf.sc: Add OTHER_RELRO_SECTIONS_2.
|
|
|
|
|
|
Fix garbage collection of common symbols
Running lang_common before garbage collection means slightly less work
in garbage collection code, since common symbols should no longer
appear there. It does have the side effect of keeping linker script
symbols (at least those defined outside of sections) global too,
hence some testsuite churn.
bfd/
PR 17165
* elf-bfd.h (ELF_COMMON_DEF): Note that this might be true for
linker script assignments too.
* elflink.c (elf_gc_sweep_symbol): Don't drop ELF_COMMON_DEF syms.
(bfd_elf_gc_mark_dynamic_ref_symbol): Similarly.
ld/
PR 17165
* ldlang.c (lang_process): Run lang_common before lang_gc_sections.
ld/testsuite/
* ld-gc/pr14265.d,
* ld-cris/tls-gc-68.d,
* ld-cris/tls-gc-69.d,
* ld-cris/tls-gc-70.d,
* ld-cris/tls-gc-71.d,
* ld-cris/tls-gc-75.d,
* ld-cris/tls-gc-76.d,
* ld-cris/tls-gc-79.d,
* ld-mmix/bpo-10.d,
* ld-mmix/bpo-11.d: Update.
2015-01-17 12:03:43 +01:00
|
|
|
|
2015-01-19 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
2015-01-19 18:23:29 +01:00
|
|
|
|
PR ld/17615
|
Fix garbage collection of common symbols
Running lang_common before garbage collection means slightly less work
in garbage collection code, since common symbols should no longer
appear there. It does have the side effect of keeping linker script
symbols (at least those defined outside of sections) global too,
hence some testsuite churn.
bfd/
PR 17165
* elf-bfd.h (ELF_COMMON_DEF): Note that this might be true for
linker script assignments too.
* elflink.c (elf_gc_sweep_symbol): Don't drop ELF_COMMON_DEF syms.
(bfd_elf_gc_mark_dynamic_ref_symbol): Similarly.
ld/
PR 17165
* ldlang.c (lang_process): Run lang_common before lang_gc_sections.
ld/testsuite/
* ld-gc/pr14265.d,
* ld-cris/tls-gc-68.d,
* ld-cris/tls-gc-69.d,
* ld-cris/tls-gc-70.d,
* ld-cris/tls-gc-71.d,
* ld-cris/tls-gc-75.d,
* ld-cris/tls-gc-76.d,
* ld-cris/tls-gc-79.d,
* ld-mmix/bpo-10.d,
* ld-mmix/bpo-11.d: Update.
2015-01-17 12:03:43 +01:00
|
|
|
|
* ldlang.c (lang_process): Run lang_common before lang_gc_sections.
|
|
|
|
|
|
2015-01-14 20:11:54 +01:00
|
|
|
|
2015-01-14 Jiong Wang <jiong.wang@arm.com>
|
|
|
|
|
|
|
|
|
|
* ld-arm/elf32-reject.s: New testcase.
|
|
|
|
|
* ld-arm/elf32-reject.d: Likewise.
|
|
|
|
|
* ld-arm/elf32-reject-pie.s: Likewise.
|
|
|
|
|
* ld-arm/elf32-reject-pie.d: Likewise.
|
|
|
|
|
* ld-arm/arm-elf.exp: Run new testcases.
|
|
|
|
|
* ld-arm/ifunc-7.s: Delete f2/f4 test items.
|
|
|
|
|
* ld-arm/ifunc-7.rd: Likewise.
|
|
|
|
|
* ld-arm/ifunc-7.gd: Likewise.
|
|
|
|
|
* ld-arm/ifunc-7.dd: Likewise.
|
|
|
|
|
* ld-arm/ifunc-8.s: Likewise.
|
|
|
|
|
* ld-arm/ifunc-8.rd: Likewise.
|
|
|
|
|
* ld-arm/ifunc-8.gd: Likewise.
|
|
|
|
|
* ld-arm/ifunc-8.dd: Likewise.
|
|
|
|
|
|
2015-01-01 15:38:15 +01:00
|
|
|
|
2015-01-01 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ldver.c (ldversion): Just print current year.
|
|
|
|
|
|
2015-01-01 15:15:26 +01:00
|
|
|
|
2015-01-01 Alan Modra <amodra@gmail.com>
|
2014-12-24 12:37:42 +01:00
|
|
|
|
|
2015-01-01 15:15:26 +01:00
|
|
|
|
Update year range in copyright notice of all files.
|
2014-12-24 12:37:42 +01:00
|
|
|
|
|
2015-01-01 15:15:26 +01:00
|
|
|
|
For older changes see ChangeLog-2014
|
1999-05-03 09:29:11 +02:00
|
|
|
|
|
2015-01-01 15:15:26 +01:00
|
|
|
|
Copyright (C) 2015 Free Software Foundation, Inc.
|
2012-12-10 13:48:03 +01:00
|
|
|
|
|
|
|
|
|
Copying and distribution of this file, with or without modification,
|
|
|
|
|
are permitted in any medium without royalty provided the copyright
|
|
|
|
|
notice and this notice are preserved.
|
|
|
|
|
|
1999-05-03 09:29:11 +02:00
|
|
|
|
Local Variables:
|
|
|
|
|
mode: change-log
|
|
|
|
|
left-margin: 8
|
|
|
|
|
fill-column: 74
|
|
|
|
|
version-control: never
|
|
|
|
|
End:
|