8sa1-binutils-gdb/include/elf
H.J. Lu 48580982ef x86: Support Intel Shadow Stack with SHSTK property
To support Intel Shadow Stack (SHSTK) in Intel Control-flow Enforcement
Technology (CET) instructions:

https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-enforcement-technology-preview.pdf

 #define GNU_PROPERTY_X86_FEATURE_1_SHSTK (1U << 1)

is added to GNU program properties to indicate that all executable sections
are compatible with SHSTK where return address popped from shadow stack
always matches return address popped from normal stack.

GNU_PROPERTY_X86_FEATURE_1_SHSTK is set on output only if it is set on all
relocatable inputs.

bfd/

	* elf32-i386.c (elf_i386_merge_gnu_properties): If info->shstk
	is set, turn on GNU_PROPERTY_X86_FEATURE_1_SHSTK.
	(elf_i386_link_setup_gnu_properties): If info->shstk is set,
	turn on GNU_PROPERTY_X86_FEATURE_1_IBT.
	* elf64-x86-64.c (elf_x86_64_merge_gnu_properties): If
	info->shstk is set, turn on GNU_PROPERTY_X86_FEATURE_1_SHSTK.
	(elf_x86_64_link_setup_gnu_properties): If info->shstk is set,
	turn on GNU_PROPERTY_X86_FEATURE_1_IBT.

binutils/

	* readelf.c (decode_x86_feature): Decode
	GNU_PROPERTY_X86_FEATURE_1_SHSTK.
	* testsuite/binutils-all/i386/shstk.d: New file.
	* testsuite/binutils-all/i386/shstk.s: Likewise.
	* testsuite/binutils-all/x86-64/shstk-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/shstk.d: Likewise.
	* testsuite/binutils-all/x86-64/shstk.s: Likewise.

include/

	* bfdlink.h (bfd_link_info): Add shstk.
	* elf/common.h (GNU_PROPERTY_X86_FEATURE_1_SHSTK): New.

ld/

	* NEWS: Mention -z shstk and GNU_PROPERTY_X86_FEATURE_1_SHSTK.
	* emulparams/cet.sh (PARSE_AND_LIST_OPTIONS_CET): Add "-z shstk".
	(PARSE_AND_LIST_ARGS_CASE_Z_CET): Support "-z shstk".
	* ld.texinfo: Document -z shstk.
	* testsuite/ld-i386/i386.exp: Run SHSTK tests.
	* testsuite/ld-x86-64/x86-64.exp: Likewise.
	* testsuite/ld-i386/property-x86-shstk.s: New file.
	* testsuite/ld-i386/property-x86-shstk1a.d: Likewise.
	* testsuite/ld-i386/property-x86-shstk1b.d: Likewise.
	* testsuite/ld-i386/property-x86-shstk2.d: Likewise.
	* testsuite/ld-i386/property-x86-shstk3a.d: Likewise.
	* testsuite/ld-i386/property-x86-shstk3b.d: Likewise.
	* testsuite/ld-i386/property-x86-shstk4.d: Likewise.
	* testsuite/ld-i386/property-x86-shstk5.d: Likewise.
	* testsuite/ld-x86-64/property-x86-shstk.s: Likewise.
	* testsuite/ld-x86-64/property-x86-shstk1a-x32.d: Likewise.
	* testsuite/ld-x86-64/property-x86-shstk1a.d: Likewise.
	* testsuite/ld-x86-64/property-x86-shstk1b-x32.d: Likewise.
	* testsuite/ld-x86-64/property-x86-shstk1b.d: Likewise.
	* testsuite/ld-x86-64/property-x86-shstk2-x32.d: Likewise.
	* testsuite/ld-x86-64/property-x86-shstk2.d: Likewise.
	* testsuite/ld-x86-64/property-x86-shstk3a-x32.d: Likewise.
	* testsuite/ld-x86-64/property-x86-shstk3a.d: Likewise.
	* testsuite/ld-x86-64/property-x86-shstk3b-x32.d: Likewise.
	* testsuite/ld-x86-64/property-x86-shstk3b.d: Likewise.
	* testsuite/ld-x86-64/property-x86-shstk4-x32.d: Likewise.
	* testsuite/ld-x86-64/property-x86-shstk4.d: Likewise.
	* testsuite/ld-x86-64/property-x86-shstk5-x32.d: Likewise.
	* testsuite/ld-x86-64/property-x86-shstk5.d: Likewise.
2017-06-22 05:50:31 -07:00
..
aarch64.h Rename R_AARCH64_TLSDESC_LD64_LO12_NC to R_AARCH64_TLSDESC_LD64_LO12 and R_AARCH64_TLSDESC_ADD_LO12_NC to R_AARCH64_TLSDESC_ADD_LO12. 2017-03-13 09:58:04 +00:00
alpha.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
arc-cpu.def [ARC] Add arc-cpu.def with processor definitions 2017-05-30 16:52:28 +03:00
arc-reloc.def Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
arc.h [ARC] Object attributes. 2017-05-10 14:42:22 +02:00
arm.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
avr.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
bfin.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ChangeLog-0415 binutils ChangeLog rotation 2016-01-01 22:59:17 +10:30
ChangeLog-9103 Add copyright notices 2012-12-10 12:48:03 +00:00
common.h x86: Support Intel Shadow Stack with SHSTK property 2017-06-22 05:50:31 -07:00
cr16.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
cr16c.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
cris.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
crx.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
d10v.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
d30v.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
dlx.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
dwarf.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
epiphany.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
external.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
fr30.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
frv.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ft32.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
h8.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
hppa.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
i370.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
i386.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
i860.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
i960.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ia64.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
internal.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ip2k.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
iq2000.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
lm32.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
m32c.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
m32r.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
m68hc11.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
m68k.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
mcore.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
mep.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
metag.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
microblaze.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
mips.h MIPS16e2: Add MIPS16e2 ASE support 2017-05-15 13:57:10 +01:00
mmix.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
mn10200.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
mn10300.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
moxie.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
msp430.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
mt.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
nds32.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
nios2.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
or1k.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
pj.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ppc64.h PPC64_OPT_LOCALENTRY 2017-06-01 22:47:32 +09:30
ppc.h PowerPC addpcis fix 2017-02-28 11:59:47 +10:30
pru.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
reloc-macros.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
riscv.h RISC-V: Resurrect GP-relative disassembly hints 2017-04-04 08:29:16 -07:00
rl78.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
rx.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
s390.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
score.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
sh.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
sparc.h binutils: support for the SPARC M8 processor 2017-05-19 09:27:08 -07:00
spu.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
tic6x-attrs.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
tic6x.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
tilegx.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
tilepro.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
v850.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
vax.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
visium.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
vxworks.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
wasm32.h Add support for the WebAssembly file format and the wasm32 ELF conversion to gas and the binutils. 2017-03-30 10:57:21 +01:00
x86-64.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
xc16x.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
xgate.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
xstormy16.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
xtensa.h Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30