llvm-project/compiler-rt/test/crt
jinge90 6fab274275 Control-flow Enforcement Technology (CET), published by Intel, introduces
indirect branch tracking(IBT) feature aiming to ensure the target address
of an indirect jump/call is not tampered.
When IBT is enabled, each function or target of any indirect jump/call will start
with an 'endbr32/64' instruction otherwise the program will crash during execution.
To build an application with CET enabled. we need to ensure:

  1. build the source code with "-fcf-protection=full"
  2. all the libraries linked with .o files must be CET enabled too

This patch aims to enable CET for compiler-rt builtins library, we add an option
"COMPILER_RT_ENABLE_CET" whose default value is OFF to enable CET for compiler-rt
in building time and when this option is "ON", "-fcf-protection=full" is added to
BUILTINS_CFLAG and the "endbr32/64" will be placed in the beginning of each assembly
function. We also enabled CET for crtbegin, crtend object files in this patch.

Reviewed by: MaskRay, compnerd, manojgupta, efriedma
Differential Revision: https://reviews.llvm.org/D109811

Signed-off-by: jinge90 <ge.jin@intel.com>
2022-01-10 11:01:11 +08:00
..
CMakeLists.txt Control-flow Enforcement Technology (CET), published by Intel, introduces 2022-01-10 11:01:11 +08:00
ctor_dtor.c [crt][test] Make ctor_dtor.c robust if DT_INIT/DT_FINI is disabled 2021-08-12 09:31:31 -07:00
dso_handle.cpp These compiler-rt tests should be UNSUPPORTED instead of XFAIL. 2020-10-23 20:57:18 +04:00
lit.cfg.py [CRT][LIT] split target_cflags using shlex 2021-08-19 21:44:20 -04:00
lit.site.cfg.py.in