cmake: toolchain abstraction for undefined behaviour sanitizer
Added toolchain abstraction for undefined behaviour sanitizer Signed-off-by: Jan Van Winkel <jan.van_winkel@dxplore.eu>
This commit is contained in:
parent
6933248e0c
commit
23a866b828
4 changed files with 32 additions and 4 deletions
|
@ -27,6 +27,10 @@ if (CONFIG_ASAN)
|
||||||
toolchain_cc_asan()
|
toolchain_cc_asan()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (CONFIG_UBSAN)
|
||||||
|
toolchain_cc_ubsan()
|
||||||
|
endif ()
|
||||||
|
|
||||||
zephyr_compile_definitions(_POSIX_C_SOURCE=200809 _XOPEN_SOURCE=600 _XOPEN_SOURCE_EXTENDED)
|
zephyr_compile_definitions(_POSIX_C_SOURCE=200809 _XOPEN_SOURCE=600 _XOPEN_SOURCE_EXTENDED)
|
||||||
|
|
||||||
zephyr_ld_options(
|
zephyr_ld_options(
|
||||||
|
|
|
@ -6,3 +6,10 @@ zephyr_compile_options(-fsanitize=address)
|
||||||
zephyr_ld_options(-fsanitize=address)
|
zephyr_ld_options(-fsanitize=address)
|
||||||
|
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
macro(toolchain_cc_ubsan)
|
||||||
|
|
||||||
|
zephyr_compile_options(-fsanitize=undefined)
|
||||||
|
zephyr_ld_options(-fsanitize=undefined)
|
||||||
|
|
||||||
|
endmacro()
|
||||||
|
|
|
@ -7,3 +7,10 @@ zephyr_link_libraries(-lasan)
|
||||||
zephyr_ld_options(-fsanitize=address)
|
zephyr_ld_options(-fsanitize=address)
|
||||||
|
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
macro(toolchain_cc_ubsan)
|
||||||
|
|
||||||
|
zephyr_compile_options(-fsanitize=undefined)
|
||||||
|
zephyr_ld_options(-fsanitize=undefined)
|
||||||
|
|
||||||
|
endmacro()
|
||||||
|
|
|
@ -45,14 +45,24 @@ config TRACING
|
||||||
help
|
help
|
||||||
Enable system tracing. This requires a backend such as SEGGER
|
Enable system tracing. This requires a backend such as SEGGER
|
||||||
Systemview to be enabled as well.
|
Systemview to be enabled as well.
|
||||||
|
|
||||||
config ASAN
|
config ASAN
|
||||||
bool "Build with address sanitizer"
|
bool "Build with address sanitizer"
|
||||||
depends on ARCH_POSIX
|
depends on ARCH_POSIX
|
||||||
help
|
help
|
||||||
Builds Zephyr with Address Sanitizer enabled. This is currently
|
Builds Zephyr with Address Sanitizer enabled. This is currently
|
||||||
only supported by the native_posix port, and requires a recent-ish
|
only supported by boards based on the posix architecture, and requires a
|
||||||
compiler with the ``-fsanitize=address`` command line option, and
|
recent-ish compiler with the ``-fsanitize=address`` command line option,
|
||||||
the libasan library.
|
and the libasan library.
|
||||||
|
|
||||||
|
config UBSAN
|
||||||
|
bool "Build with undefined behavior sanitizer"
|
||||||
|
depends on ARCH_POSIX
|
||||||
|
help
|
||||||
|
Builds Zephyr with Undefined Behavior Sanitizer enabled.
|
||||||
|
This is currently only supported by boards based on the posix
|
||||||
|
architecture, and requires a recent-ish compiler with the
|
||||||
|
``-fsanitize=undefined`` command line option.
|
||||||
|
|
||||||
config STACK_USAGE
|
config STACK_USAGE
|
||||||
bool "Generate stack usage information"
|
bool "Generate stack usage information"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue