|
78556561
|
2020-02-21T19:08:06
|
|
x86: Add indirect branch tracking support (#540)
Intel Control-flow Enforcement Technology (CET):
https://software.intel.com/en-us/articles/intel-sdm
contains shadow stack (SHSTK) and indirect branch tracking (IBT). When
CET is enabled, ELF object files must be marked with .note.gnu.property
section. When Intel CET is enabled, include <cet.h> in assembly codes
to mark Intel CET support.
Also when IBT is enabled, all indirect branch targets must start with
ENDBR instruction and notrack prefix can be used to disable IBT on
indirect branch. <cet.h> defines _CET_ENDBR which can be used in
assembly codes for ENDBR instruction. If <cet.h> isn't included,
define _CET_ENDBR as empty so that _CET_ENDBR can be used in assembly
codes.
Trampoline must be enlarged to add ENDBR instruction unconditionally,
which is NOP on non-CET processors. This is required regardless if
libffi is enabled with CET since libffi.so will be marked in legacy
bitmap, but trampoline won't. Update library version for larger
FFI_TRAMPOLINE_SIZE.
This fixed:
https://github.com/libffi/libffi/issues/474
Tested with
$ CC="gcc -Wl,-z,cet-report=error -fcf-protection" CXX="g++ -Wl,-z,cet-report=error -fcf-protection" .../configure
on Linux CET machines in i686, x32 and x86-64 modes.
|
|
8a0a4e25
|
2016-05-04T07:33:41
|
|
Update symbol versioning for ffi_get_struct_offsets
Given that the original symbol versioning patch has shipped
with gcc-6, it would be kind to keep that as a valid base ABI
and make subsequent changes to version 7.1.
|
|
c02c3414
|
2016-03-03T13:51:44
|
|
Use ELF symbol versioning
At the same time, we must bump the (major) ABI version. This needed to be
done anyway due to ABI breakage in the AArch64 port (see 12cf89ee and the
corresponding GCC PR70024).
|
|
ee826b93
|
2014-11-11T07:29:26
|
|
Final 3.2 changes
|
|
18d56cca
|
2014-05-19T18:05:33
|
|
Increment libtool version number
|
|
94ac0c16
|
2014-05-19T09:37:21
|
|
Increment libtool library revision number
|
|
c4dfa259
|
2013-02-06T17:43:24
|
|
Bump soversion
|
|
8bad679a
|
2013-01-02T08:28:35
|
|
New stand-alone patch
|
|
981c32ee
|
2013-01-02T07:34:03
|
|
Merge with GCC. Eliminate quilt bits.
|
|
59bb61a3
|
2012-04-06T08:26:14
|
|
Update libtool version, README, tests dists
|
|
84d3253f
|
2012-03-19T23:07:35
|
|
Rebase post GCC merge
|
|
6a6e7f86
|
2011-11-12T16:20:42
|
|
Fix kfreebsd
|
|
c411f140
|
2011-11-12T07:32:36
|
|
Fix ax_enable_builddir macro on BSD systems
|
|
ee6696fd
|
2011-08-23T12:30:29
|
|
3.0.11-rc1. soname bump.
|
|
3b7efa4e
|
2011-08-15T13:25:13
|
|
Revert remove-debug-code patch temporarily (for ARM Fedora release)
|
|
1fbf9dc4
|
2011-02-13T08:06:39
|
|
Fix bad_abi test. rc5.
|
|
5cbe2058
|
2009-10-04T23:53:11
|
|
Initial stand-alone patch.
|
|
c6dddbd0
|
2009-10-04T08:11:33
|
|
Initial commit
|