Add support for Undefined Behavior Sanitizer

Initial support for undefined behavior sanitizer in ramstage. Enabling
this will add -fsanitize=undefined to the compiler command line and
link with ubsan.c in ramstage. Code with UB triggers a report with
error, file, and line number, then aborts.

Change-Id: Ib139a418db97b533f99fc59bcb1a71fb6dcd01d8
Signed-off-by: Ryan Salsamendi <rsalsamendi@hotmail.com>
Reviewed-on: https://review.coreboot.org/20156
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com>
This commit is contained in:
Ryan Salsamendi
2017-06-11 21:07:31 -07:00
committed by Patrick Georgi
parent fce582fa1c
commit ab37e9a171
3 changed files with 372 additions and 0 deletions

View File

@@ -200,6 +200,14 @@ config COVERAGE
coverage information in CBMEM for extraction from user space.
If unsure, say N.
config UBSAN
bool "Undefined behavior sanitizer support"
default n
help
Instrument the code with checks for undefined behavior. If unsure,
say N because it adds a small performance penalty and may abort
on code that happens to work in spite of the UB.
config RELOCATABLE_RAMSTAGE
depends on EARLY_CBMEM_INIT
bool "Build the ramstage to be relocatable in 32-bit address space."