elfedit: Add --enable-x86-feature/--disable-x86-feature
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 6 Nov 2018 17:38:33 +0000 (09:38 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 6 Nov 2018 17:38:51 +0000 (09:38 -0800)
commit8a6b075bc07f66678ed0176f895847df3ea7fcef
treeb900eb85546d6700c2ff9af49d863bf08e5e490a
parentddea148b3da27eb681504bf341f45abb7a74580b
elfedit: Add --enable-x86-feature/--disable-x86-feature

Add --enable-x86-feature and --disable-x86-feature options to elfedit
to set and clear the IBT and SHSTK bits in program property in ELF
executables and shared objects.

binutils/

* doc/binutils.texi: Document --enable-x86-feature and
--disable-x86-feature options for elfedit.
* elfedit.c: Include "config.h" and <sys/mman.h>.
(enable_x86_features): New.
(disable_x86_features): Likewise.
(update_gnu_property): Likewise.
(elf_x86_feature): Likewise.
(process_file): Call update_gnu_property on ET_EXEC or ET_DYN
file.
(command_line_switch): Add OPTION_ENABLE_X86_FEATURE and
OPTION_DISABLE_X86_FEATURE.
(options): Add--enable-x86-feature and --disable-x86-feature.
(usage): Likewise.
(main): Handle OPTION_ENABLE_X86_FEATURE and
OPTION_DISABLE_X86_FEATURE.

ld/

* testsuite/config/default.exp (ELFEDIT): New.
* testsuite/ld-elf/linux-x86.exp (elfedit_test): New proc.
Run elfedit tests.
* testsuite/ld-elf/x86-feature-1a.rd: New file.
* testsuite/ld-elf/x86-feature-1b.rd: Likewise.
* testsuite/ld-elf/x86-feature-1c.rd: Likewise.
* testsuite/ld-elf/x86-feature-1d.rd: Likewise.
* testsuite/ld-elf/x86-feature-1e.rd: Likewise.
binutils/ChangeLog
binutils/doc/binutils.texi
binutils/elfedit.c
ld/ChangeLog
ld/testsuite/config/default.exp
ld/testsuite/ld-elf/linux-x86.exp
ld/testsuite/ld-elf/x86-feature-1a.rd [new file with mode: 0644]
ld/testsuite/ld-elf/x86-feature-1b.rd [new file with mode: 0644]
ld/testsuite/ld-elf/x86-feature-1c.rd [new file with mode: 0644]
ld/testsuite/ld-elf/x86-feature-1d.rd [new file with mode: 0644]
ld/testsuite/ld-elf/x86-feature-1e.rd [new file with mode: 0644]