binutils-gdb/ld/emultempl
H.J. Lu a91e1603af Support ELF SHF_GNU_MBIND and PT_GNU_MBIND_XXX
Mark an ALLOC section, which should be placed in special memory area,
with SHF_GNU_MBIND.  Its sh_info field indicates the special memory
type.  GNU_MBIND section names start with ".mbind" so that they are
placed as orphan sections by linker.  All input GNU_MBIND sections
with the same sh_type, sh_flags and sh_info are placed in one output
GNU_MBIND section.  In executable and shared object, create a
GNU_MBIND segment for each GNU_MBIND section and its segment type is
PT_GNU_MBIND_LO plus the sh_info value.  Each GNU_MBIND segment is
aligned at page boundary.

The assembler syntax:

    .section .mbind.foo,"adx",%progbits
                          ^             0: Special memory type.
                          |
                         'd' for SHF_GNU_MBIND.

    .section .mbind.foo,"adx",%progbits,0x1
                          ^             1: Special memory type.
                          |
                         'd' for SHF_GNU_MBIND.

    .section .mbind.bar,"adG",%progbits,.foo_group,comdat,0x2
                          ^                               2: Special memory type.
                          |
                         'd' for SHF_GNU_MBIND.

bfd/

	* elf.c (get_program_header_size): Add a GNU_MBIND segment for
	each GNU_MBIND section and align GNU_MBIND section to page size.
	(_bfd_elf_map_sections_to_segments): Create a GNU_MBIND
	segment for each GNU_MBIND section.
	(_bfd_elf_init_private_section_data): Copy sh_info from input
	for GNU_MBIND section.

binutils/

	* NEWS: Mention support for ELF SHF_GNU_MBIND and
	PT_GNU_MBIND_XXX.
	* readelf.c (get_segment_type): Handle PT_GNU_MBIND_XXX.
	(get_elf_section_flags): Handle SHF_GNU_MBIND.
	(process_section_headers): Likewise.
	* testsuite/binutils-all/mbind1.s: New file.
	* testsuite/binutils-all/objcopy.exp: Run readelf test on
	mbind1.s.

gas/

	* NEWS: Mention support for ELF SHF_GNU_MBIND.
	* config/obj-elf.c (section_match): New.
	(get_section): Match both sh_info and group name.
	(obj_elf_change_section): Add argument for sh_info.  Pass both
	sh_info and group name to get_section. Issue an error for
	SHF_GNU_MBIND section without SHF_ALLOC.  Set sh_info.
	(obj_elf_parse_section_letters): Set SHF_GNU_MBIND for 'd'.
	(obj_elf_section): Support SHF_GNU_MBIND section info.
	* config/obj-elf.h (obj_elf_change_section): Add argument for
	sh_info.
	* config/tc-arm.c (start_unwind_section): Pass 0 as sh_info to
	obj_elf_change_section.
	* config/tc-ia64.c (obj_elf_vms_common): Likewise.
	* config/tc-microblaze.c (microblaze_s_data): Likewise.
	(microblaze_s_sdata): Likewise.
	(microblaze_s_rdata): Likewise.
	(microblaze_s_bss): Likewise.
	* config/tc-mips.c (s_change_section): Likewise.
	* config/tc-msp430.c (msp430_profiler): Likewise.
	* config/tc-rx.c (parse_rx_section): Likewise.
	* config/tc-tic6x.c (tic6x_start_unwind_section): Likewise.
	* doc/as.texinfo: Document 'd' for SHF_GNU_MBIND.
	* testsuite/gas/elf/elf.exp: Run section12a, section12b and
	section13.
	* testsuite/gas/elf/section10.d: Updated.
	* testsuite/gas/elf/section10.s: Likewise.
	* testsuite/gas/elf/section12.s: New file.
	* testsuite/gas/elf/section12a.d: Likewise.
	* testsuite/gas/elf/section12b.d: Likewise.
	* testsuite/gas/elf/section13.l: Likewise.
	* testsuite/gas/elf/section13.d: Likewise.
	* testsuite/gas/elf/section13.s: Likewise.

include/

	* elf/common.h (PT_GNU_MBIND_NUM): New.
	(PT_GNU_MBIND_LO): Likewise.
	(PT_GNU_MBIND_HI): Likewise.
	(SHF_GNU_MBIND): Likewise.

ld/

	* NEWS: Mention support for ELF SHF_GNU_MBIND and
	PT_GNU_MBIND_XXX.
	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Place
	input GNU_MBIND sections with the same type, attributes and
	sh_info field into a single output GNU_MBIND section.
	* testsuite/ld-elf/elf.exp: Run mbind2a and mbind2b.
	* testsuite/ld-elf/mbind1.s: New file.
	* testsuite/ld-elf/mbind1a.d: Likewise.
	* testsuite/ld-elf/mbind1b.d: Likewise.
	* testsuite/ld-elf/mbind1c.d: Likewise.
	* testsuite/ld-elf/mbind2a.s: Likewise.
	* testsuite/ld-elf/mbind2b.c: Likewise.
2017-04-04 09:06:04 -07:00
..
README Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
aarch64elf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
aix.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
alphaelf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
arclinux.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
armcoff.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
armelf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
astring.sed
avrelf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
beos.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
bfin.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
cr16elf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
crxelf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
elf-generic.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
elf32.em Support ELF SHF_GNU_MBIND and PT_GNU_MBIND_XXX 2017-04-04 09:06:04 -07:00
epiphanyelf_4x4.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
genelf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
generic.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
gld960.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
gld960c.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
hppaelf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ia64elf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
irix.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
linux.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
lnk960.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
m68hc1xelf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
m68kcoff.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
m68kelf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
metagelf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
mipself.em MIPS: Add options to control branch ISA checks 2017-01-30 17:16:01 +00:00
mmix-elfnmmo.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
mmixelf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
mmo.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
msp430.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
nds32elf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
needrelax.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
netbsd.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
nios2elf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ostring.sed
pe.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
pep.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ppc32elf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ppc64elf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
pruelf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
riscvelf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
rxelf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
scoreelf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
sh64elf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
solaris2.em Solaris2/LD: Fix anonymous version script acceptance bug 2017-01-24 12:53:52 +00:00
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 Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
spu_ovl.o_c Regenerate spu_ovl.o_c 2016-10-15 12:53:57 +10:30
spuelf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
sunos.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
tic6xdsbt.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ticoff.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
v850elf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
vanilla.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
vms.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
vxworks.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
xtensaelf.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
z80.em Update year range in copyright notice of all files. 2017-01-02 14:08:56 +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-2017 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.