Enable Control flow guard and Qspectre protection for windows binaries
found by BinSkim
@@ -60,6 +60,18 @@ include_directories(.)
if(WIN32)
add_definitions(-DWIN32 -D_WINDOWS -DOS_WIN32 -D_CRT_SECURE_NO_WARNINGS)
+
+ #
+ # https://msrc-blog.microsoft.com/2020/08/17/control-flow-guard-for-clang-llvm-and-rust/
+ #
+
+ message("Setting CONTROL FLOW GUARD")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /guard:cf")
+ set(CMAKE_EXE_LINKER_FLAGS "/guard:cf /DYNAMICBASE")
+
+ message("Setting QSPECTRE")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Qspectre")
+
endif()
if(UNIX)
