feat: run test with cfi
Some checks failed
Hello World (Multiplatform) / build (macos-12) (push) Waiting to run
Hello World (Multiplatform) / build (macos-14) (push) Waiting to run
Hello World (Multiplatform) / build (ubuntu-22.04) (push) Waiting to run
Hello World (Multiplatform) / build (windows-2022) (push) Waiting to run
Run tests with twister / twister-build-prep (push) Waiting to run
Run tests with twister / twister-build (push) Blocked by required conditions
Run tests with twister / Publish Unit Tests Results (push) Blocked by required conditions
Run tests with twister / Check Twister Status (push) Blocked by required conditions
Twister TestSuite / Twister Unit Tests (ubuntu-22.04, 3.10) (push) Has been cancelled
Twister TestSuite / Twister Unit Tests (ubuntu-22.04, 3.11) (push) Has been cancelled
Twister TestSuite / Twister Unit Tests (ubuntu-22.04, 3.12) (push) Has been cancelled
Twister TestSuite / Twister Unit Tests (ubuntu-22.04, 3.8) (push) Has been cancelled
Twister TestSuite / Twister Unit Tests (ubuntu-22.04, 3.9) (push) Has been cancelled
Some checks failed
Hello World (Multiplatform) / build (macos-12) (push) Waiting to run
Hello World (Multiplatform) / build (macos-14) (push) Waiting to run
Hello World (Multiplatform) / build (ubuntu-22.04) (push) Waiting to run
Hello World (Multiplatform) / build (windows-2022) (push) Waiting to run
Run tests with twister / twister-build-prep (push) Waiting to run
Run tests with twister / twister-build (push) Blocked by required conditions
Run tests with twister / Publish Unit Tests Results (push) Blocked by required conditions
Run tests with twister / Check Twister Status (push) Blocked by required conditions
Twister TestSuite / Twister Unit Tests (ubuntu-22.04, 3.10) (push) Has been cancelled
Twister TestSuite / Twister Unit Tests (ubuntu-22.04, 3.11) (push) Has been cancelled
Twister TestSuite / Twister Unit Tests (ubuntu-22.04, 3.12) (push) Has been cancelled
Twister TestSuite / Twister Unit Tests (ubuntu-22.04, 3.8) (push) Has been cancelled
Twister TestSuite / Twister Unit Tests (ubuntu-22.04, 3.9) (push) Has been cancelled
This commit is contained in:
parent
754d5e4be2
commit
f80f0fda2a
|
@ -508,7 +508,6 @@ endchoice
|
||||||
config LTO
|
config LTO
|
||||||
bool "Link Time Optimization [EXPERIMENTAL]"
|
bool "Link Time Optimization [EXPERIMENTAL]"
|
||||||
depends on !(GEN_ISR_TABLES || GEN_IRQ_VECTOR_TABLE) || ISR_TABLES_LOCAL_DECLARATION
|
depends on !(GEN_ISR_TABLES || GEN_IRQ_VECTOR_TABLE) || ISR_TABLES_LOCAL_DECLARATION
|
||||||
depends on !NATIVE_LIBRARY
|
|
||||||
depends on !CODE_DATA_RELOCATION
|
depends on !CODE_DATA_RELOCATION
|
||||||
select EXPERIMENTAL
|
select EXPERIMENTAL
|
||||||
help
|
help
|
||||||
|
|
|
@ -159,13 +159,17 @@ endif()
|
||||||
# (supported by current gcc's as well)
|
# (supported by current gcc's as well)
|
||||||
#
|
#
|
||||||
if(CONFIG_CFI)
|
if(CONFIG_CFI)
|
||||||
zephyr_compile_options(-flto -fvisibility=hidden -fno-sanitize-trap=cfi -fsanitize-ignorelist=/home/patrick/repos/uni/idp/zephyrtest/zephyr/ignore_list.txt)
|
zephyr_compile_options(-fvisibility=hidden -fno-sanitize-trap=cfi -fsanitize-ignorelist=/home/patrick/repos/uni/idp/zephyrtest/zephyr/ignore_list.txt)
|
||||||
target_link_options(native_simulator INTERFACE "-flto -fvisibility=hidden -fno-sanitize-trap=cfi -fsanitize-ignorelist=/home/patrick/repos/uni/idp/zephyrtest/zephyr/ignore_list.txt")
|
target_link_options(native_simulator INTERFACE "-fvisibility=hidden -fno-sanitize-trap=cfi -fsanitize-ignorelist=/home/patrick/repos/uni/idp/zephyrtest/zephyr/ignore_list.txt")
|
||||||
target_compile_options(native_simulator INTERFACE "-flto -fvisibility=hidden -fno-sanitize-trap=cfi -fsanitize-ignorelist=/home/patrick/repos/uni/idp/zephyrtest/zephyr/ignore_list.txt")
|
target_compile_options(native_simulator INTERFACE "-fvisibility=hidden -fno-sanitize-trap=cfi -fsanitize-ignorelist=/home/patrick/repos/uni/idp/zephyrtest/zephyr/ignore_list.txt")
|
||||||
zephyr_link_libraries("-flto")
|
|
||||||
list(APPEND LLVM_SANITIZERS "cfi")
|
list(APPEND LLVM_SANITIZERS "cfi")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(CONFIG_LTO)
|
||||||
|
target_compile_options(native_simulator INTERFACE "-flto")
|
||||||
|
target_link_options(native_simulator INTERFACE "-flto")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(CONFIG_ASAN)
|
if(CONFIG_ASAN)
|
||||||
list(APPEND LLVM_SANITIZERS "address")
|
list(APPEND LLVM_SANITIZERS "address")
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -131,7 +131,6 @@ function(toolchain_ld_link_elf)
|
||||||
${TOPT}
|
${TOPT}
|
||||||
${TOOLCHAIN_LD_LINK_ELF_LINKER_SCRIPT}
|
${TOOLCHAIN_LD_LINK_ELF_LINKER_SCRIPT}
|
||||||
${TOOLCHAIN_LD_LINK_ELF_LIBRARIES_POST_SCRIPT}
|
${TOOLCHAIN_LD_LINK_ELF_LIBRARIES_POST_SCRIPT}
|
||||||
-flto
|
|
||||||
|
|
||||||
${LINKERFLAGPREFIX},-Map=${TOOLCHAIN_LD_LINK_ELF_OUTPUT_MAP}
|
${LINKERFLAGPREFIX},-Map=${TOOLCHAIN_LD_LINK_ELF_OUTPUT_MAP}
|
||||||
${LINKERFLAGPREFIX},--whole-archive
|
${LINKERFLAGPREFIX},--whole-archive
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
src:*/native_simulator/*
|
src:*/native_simulator/*
|
||||||
|
fun:z_cbvprintf_impl
|
||||||
|
|
|
@ -2,6 +2,7 @@ CONFIG_GPIO=y
|
||||||
#CONFIG_ASAN=y
|
#CONFIG_ASAN=y
|
||||||
CONFIG_CFI=y
|
CONFIG_CFI=y
|
||||||
CONFIG_LLVM_USE_LLD=y
|
CONFIG_LLVM_USE_LLD=y
|
||||||
|
CONFIG_LTO=y
|
||||||
|
|
||||||
#CONFIG_DEBUG=y
|
#CONFIG_DEBUG=y
|
||||||
#CONFIG_DEBUG_INFO=y
|
#CONFIG_DEBUG_INFO=y
|
||||||
|
|
|
@ -285,6 +285,7 @@ class TestInstance:
|
||||||
content = content + "\nCONFIG_COVERAGE=y"
|
content = content + "\nCONFIG_COVERAGE=y"
|
||||||
content = content + "\nCONFIG_COVERAGE_DUMP=y"
|
content = content + "\nCONFIG_COVERAGE_DUMP=y"
|
||||||
|
|
||||||
|
content = content + "\nCONFIG_CFI=y\nCONFIG_LTO=y\nCONFIG_LLVM_USE_LLD=y"
|
||||||
if enable_asan:
|
if enable_asan:
|
||||||
if platform.type == "native":
|
if platform.type == "native":
|
||||||
content = content + "\nCONFIG_ASAN=y"
|
content = content + "\nCONFIG_ASAN=y"
|
||||||
|
|
|
@ -110,6 +110,8 @@ config GPROF
|
||||||
|
|
||||||
config CFI
|
config CFI
|
||||||
bool "Build with control flow integrity sanitizer"
|
bool "Build with control flow integrity sanitizer"
|
||||||
|
depends on LTO
|
||||||
|
depends on LLVM_USE_LLD
|
||||||
help
|
help
|
||||||
Builds Zephyr with Address Sanitizer enabled. This is currently
|
Builds Zephyr with Address Sanitizer enabled. This is currently
|
||||||
only supported by boards based on the posix architecture, and requires a
|
only supported by boards based on the posix architecture, and requires a
|
||||||
|
|
Loading…
Reference in a new issue