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
..
1999-05-03 07:29:11 +00:00
2007-08-09 11:02:24 +00:00
2007-08-09 11:02:24 +00:00
1999-05-03 07:29:11 +00:00
2016-12-02 10:44:29 +00:00
ld/
2009-11-20 15:04:51 +00:00
2006-05-30 16:45:32 +00:00
2006-05-30 16:45:32 +00:00
2016-08-09 12:09:17 -07:00
2016-12-02 10:44:29 +00:00
2002-05-21 15:11:04 +00:00
2007-08-09 11:02:24 +00:00
ld/
2009-11-20 15:04:51 +00:00
2007-08-09 11:02:24 +00:00
2007-08-09 11:02:24 +00:00
2006-06-20 02:22:16 +00:00
2006-06-20 02:22:16 +00:00
2006-06-20 02:22:16 +00:00
1999-05-03 07:29:11 +00:00
2006-06-20 02:22:16 +00:00
ld:
2010-10-22 12:08:32 +00:00
2006-04-05 12:41:59 +00:00
2009-08-05 20:40:34 +00:00
2010-03-25 21:12:36 +00:00
ld/
2011-05-13 18:15:33 +00:00
ld/
2011-05-13 18:15:33 +00:00
ld/
2011-05-13 18:15:33 +00:00
ld/
2011-05-13 18:15:33 +00:00
2013-08-26 22:18:07 +00:00
2007-08-09 11:02:24 +00:00
2010-12-31 11:01:00 +00:00
2013-06-24 23:55:46 +00:00
2010-12-31 11:01:00 +00:00
2006-05-30 16:45:32 +00:00
2004-07-07 17:28:53 +00:00
ld/
2007-05-18 09:18:18 +00:00
2011-10-25 11:18:16 +00:00
2006-06-20 02:22:16 +00:00
2015-01-28 16:25:18 +10:30
2006-05-30 16:45:32 +00:00
2008-12-23 19:10:25 +00:00
2008-12-23 19:10:25 +00:00
2013-04-25 13:22:52 +00:00
2013-04-25 13:22:52 +00:00
2006-05-30 16:45:32 +00:00
2010-12-31 11:01:00 +00:00
2010-12-31 11:01:00 +00:00
2017-02-20 19:33:28 +10:30
2017-01-02 22:44:29 +10:30
ld/
2012-08-06 22:40:36 +00:00
2012-09-13 22:24:51 +00:00
2017-02-20 19:33:28 +10:30
2013-01-10 20:08:03 +00:00
2006-05-30 16:45:32 +00:00
2017-02-20 19:33:28 +10:30
2017-02-20 19:33:28 +10:30
2014-12-06 16:45:22 +01:00
2006-05-30 16:45:32 +00:00
2006-05-30 16:45:32 +00:00
2006-05-30 16:45:32 +00:00
2001-12-08 03:46:03 +00:00
2006-05-30 16:45:32 +00:00
2006-05-30 16:45:32 +00:00
2016-10-10 17:09:03 +02:00
ld:
2010-10-22 12:08:32 +00:00
2010-12-31 11:01:00 +00:00
ld/
2006-10-16 21:34:25 +00:00
2010-12-31 11:01:00 +00:00
2015-04-23 09:49:19 +09:30
2013-08-26 22:18:07 +00:00
2009-07-25 15:08:26 +00:00
ld/
2013-08-23 22:38:42 +00:00
2013-01-10 20:08:03 +00:00
2006-08-02 16:25:14 +00:00
2013-08-26 22:18:07 +00:00
1999-05-03 07:29:11 +00:00
2003-04-24 15:25:24 +00:00
1999-05-03 07:29:11 +00:00
2003-04-24 15:25:24 +00:00
2003-06-10 07:09:31 +00:00
2003-06-10 07:09:31 +00:00
1999-05-03 07:29:11 +00:00
1999-05-03 07:29:11 +00:00
1999-05-03 07:29:11 +00:00
1999-05-03 07:29:11 +00:00
1999-05-03 07:29:11 +00:00
1999-05-03 07:29:11 +00:00
1999-05-03 07:29:11 +00:00
2017-01-02 22:42:45 +10:30
2004-07-27 22:30:25 +00:00
2006-05-30 16:45:32 +00:00
2007-08-09 11:02:24 +00:00
2007-08-09 11:02:24 +00:00
1999-05-03 07:29:11 +00:00
2007-08-09 11:02:24 +00:00
2007-08-09 11:02:24 +00:00
2007-08-09 11:02:24 +00:00
2007-08-09 11:02:24 +00:00
1999-05-03 07:29:11 +00:00
2006-05-30 16:45:32 +00:00
2007-08-09 11:02:24 +00:00
2007-08-09 11:02:24 +00:00
1999-05-03 07:29:11 +00:00
2007-08-09 11:02:24 +00:00
2007-08-09 11:02:24 +00:00
2006-05-30 16:45:32 +00:00
2006-06-20 02:22:16 +00:00
2014-07-27 08:51:20 -04:00
2013-12-13 11:52:32 +00:00
2013-12-13 11:52:32 +00:00
1999-05-03 07:29:11 +00:00
2014-01-30 17:47:07 -08:00
2007-08-09 11:02:24 +00:00
2007-08-09 11:02:24 +00:00
2001-02-18 23:33:11 +00:00
2006-06-20 02:22:16 +00:00
2015-04-08 04:55:23 -07:00
2007-08-09 11:02:24 +00:00
2016-12-31 12:04:11 +10:30
1999-05-03 07:29:11 +00:00
2006-05-30 16:45:32 +00:00
2017-02-20 19:33:28 +10:30
2002-06-04 02:57:44 +00:00
2017-02-20 19:33:28 +10:30
2017-02-20 19:33:28 +10:30
2002-06-04 02:57:44 +00:00
2002-02-08 06:39:01 +00:00
2002-06-04 02:57:44 +00:00
2002-02-08 06:39:01 +00:00
2002-01-08 04:23:02 +00:00
2006-08-04 13:13:56 +00:00
2015-09-22 11:12:51 +02:00
2007-08-09 11:02:24 +00:00
2007-08-09 11:02:24 +00:00
1999-05-03 07:29:11 +00:00
1999-05-03 07:29:11 +00:00
2007-08-09 11:02:24 +00:00
2007-08-09 11:02:24 +00:00
1999-05-03 07:29:11 +00:00
1999-05-03 07:29:11 +00:00
2000-06-20 13:29:07 +00:00
2007-08-09 11:02:24 +00:00
2007-08-09 11:02:24 +00:00
1999-05-03 07:29:11 +00:00
1999-05-03 07:29:11 +00:00
1999-05-03 07:29:11 +00:00

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 read by genscripts.sh as shell commands.
They set parameters for the emulations.

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.