This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 2/2] x86: Support Intel Shadow Stack with SHSTK property


On Wed, Jun 21, 2017 at 12:50 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
> 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.
>
> include/
>
>         * bfdlink.h (bfd_link_info): Add shstk.
>         * elf/common.h (GNU_PROPERTY_X86_FEATURE_1_SHSTK): New.
>         * 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.
>
> 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.

I checked it in.

--
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]