binutils-gdb/ld/emultempl
Catherine Moore 2f0c68f23b 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 15:21:17 -07:00
..
README ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
aarch64elf.em [AArch64] Workaround for Cortex A53 erratum 843419 2015-04-01 13:16:38 +01:00
aix.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
alphaelf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
armcoff.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
armelf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
astring.sed * emultempl/ostring.sed: Rename from stringify.sed. 1999-08-06 22:46:03 +00:00
avrelf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
beos.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
bfin.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
cr16elf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
crxelf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
elf-generic.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
elf32.em Compact EH Support 2015-05-28 15:21:17 -07:00
epiphanyelf_4x4.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
genelf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
generic.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
gld960.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
gld960c.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
hppaelf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ia64elf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
irix.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
linux.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
lnk960.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
m68hc1xelf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
m68kcoff.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
m68kelf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
metagelf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
mipself.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
mmix-elfnmmo.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
mmixelf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
mmo.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
msp430.em Add support to the MSP430 linker for the automatic placement of code and data into either low or high memory regions. 2015-05-05 13:38:00 +01:00
nds32elf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
needrelax.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
netbsd.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
nios2elf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ostring.sed * emultempl/ostring.sed: Rename from stringify.sed. 1999-08-06 22:46:03 +00:00
pe.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
pep.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ppc32elf.em PowerPC non-PIC to PIC editing for protected var access 2015-04-07 23:00:07 +09:30
ppc64elf.em Non-alloc sections don't belong in PT_LOAD segments 2015-04-25 09:15:49 +09:30
rxelf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
scoreelf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
sh64elf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
solaris2.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
spu_icache.S bfd/ 2009-03-17 12:46:19 +00:00
spu_icache.o_c Regenerate spu overlay and icache manager files 2014-11-04 22:36:13 +10:30
spu_ovl.S ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
spu_ovl.o_c Regenerate spu overlay and icache manager files 2014-11-04 22:36:13 +10:30
spuelf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
sunos.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
tic6xdsbt.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ticoff.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
v850elf.em Adds support for generating notes in V850 binaries. 2015-02-24 17:54:09 +00:00
vanilla.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
vms.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
vxworks.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
xtensaelf.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
z80.em ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30

README

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

The files in this directory are sourced by genscripts.sh, after
setting some variables to substitute in, to produce
C source files that contain jump tables for each emulation.

Copyright (C) 2012-2015 Free Software Foundation, Inc.

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.