mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 19:57:44 +00:00
Kernel: KUBSAN! (Kernel Undefined Behavior SANitizer) :^)
We now build the kernel with partial UBSAN support. The following -fsanitize sub-options are enabled: * nonnull-attribute * bool If the kernel detects UB at runtime, it will now print a debug message with a stack trace. This is very cool! I'm leaving it on by default for now, but we'll probably have to re-evaluate this as more options are enabled and slowdown increases.
This commit is contained in:
parent
7df3b95126
commit
d44be96893
3 changed files with 135 additions and 0 deletions
|
@ -197,6 +197,7 @@ set(KERNEL_SOURCES
|
|||
Time/RTC.cpp
|
||||
Time/TimeManagement.cpp
|
||||
TimerQueue.cpp
|
||||
UBSanitizer.cpp
|
||||
UserOrKernelBuffer.cpp
|
||||
VM/AnonymousVMObject.cpp
|
||||
VM/ContiguousVMObject.cpp
|
||||
|
@ -269,6 +270,7 @@ set(SOURCES
|
|||
${C_SOURCES}
|
||||
)
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=nonnull-attribute,bool")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-warning-option -DKERNEL")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pie -fPIE -fno-rtti -ffreestanding -fbuiltin")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mno-80387 -mno-mmx -mno-sse -mno-sse2")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue