explicitly link msvc runtime libs & shared-libasan. stack-frame warning.

This commit is contained in:
jacob 2024-04-06 20:21:32 -05:00
parent 103a87281c
commit 4a371eb3b9

View File

@ -144,21 +144,25 @@ target_precompile_headers(powerplay_exe PRIVATE src/common.h)
set(COMPILER_WARNINGS " \
-Weverything -Werror \
-Wframe-larger-than=65536 \
\
-Wno-unused-macros -Wno-gnu-zero-variadic-macro-arguments -Wno-documentation \
-Wno-old-style-cast \
-Wno-conversion -Wno-sign-conversion -Wno-declaration-after-statement -Wno-extra-semi \
-Wno-extra-semi-stmt -Wno-bad-function-cast -Wno-class-varargs \
-Wno-unreachable-code-break -Wno-cast-align -Wno-float-equal \
-Wno-zero-as-null-pointer-constant -Wno-cast-qual -Wno-missing-noreturn \
-Wno-missing-field-initializers -Wno-missing-braces -Wno-initializer-overrides \
-Wno-old-style-cast -Wno-conversion -Wno-sign-conversion \
-Wno-declaration-after-statement -Wno-extra-semi -Wno-extra-semi-stmt \
-Wno-bad-function-cast -Wno-class-varargs -Wno-unreachable-code-break \
-Wno-cast-align -Wno-float-equal -Wno-zero-as-null-pointer-constant \
-Wno-cast-qual -Wno-missing-noreturn -Wno-missing-field-initializers \
-Wno-missing-braces -Wno-initializer-overrides \
-Wno-c99-extensions -Wno-c++98-compat-pedantic -Wno-c++98-compat \
-Wno-switch-enum -Wno-switch-default \
-Wno-reserved-identifier -Wno-reserved-macro-identifier \
-Wno-unsafe-buffer-usage \
-Wno-unsafe-buffer-usage -Wno-writable-strings \
")
# -Wno-unused-variable -Wno-unused-but-set-variable -Wno-unused-parameter
# -Wno-unused-vfariable -Wno-unused-but-set-variable -Wno-unused-parameter
set(COMPILER_FLAGS "
-fuse-ld=lld-link \
-nostdlib \
-fno-strict-aliasing \
-fno-finite-loops \
-fwrapv \
@ -166,7 +170,6 @@ set(COMPILER_FLAGS "
")
set(LINKER_FLAGS " \
-fuse-ld=lld-link \
${rc_res_sources} \
-fno-strict-aliasing \
-fno-finite-loops \
@ -187,8 +190,15 @@ endif()
# CRTLIB (C runtime library)
if (CRTLIB)
set(COMPILER_FLAGS "${COMPILER_FLAGS} -DCRTLIB=1")
if (RTC)
set(COMPILER_FLAGS "${COMPILER_FLAGS} -D_DEBUG -D_MT -D_DLL")
set(LINKER_FLAGS "${LINKER_FLAGS} -lmsvcrtd -lucrtd -lmsvcprtd -lvcruntimed")
else()
set(COMPILER_FLAGS "${COMPILER_FLAGS} -mno-stack-arg-probe -fno-builtin -nostdlib")
set(COMPILER_FLAGS "${COMPILER_FLAGS} -D_MT -D_DLL")
set(LINKER_FLAGS "${LINKER_FLAGS} -lmsvcrt -lucrt -lmsvcprt -lvcruntime")
endif()
else()
set(COMPILER_FLAGS "${COMPILER_FLAGS} -mno-stack-arg-probe -fno-builtin")
endif()
# Optimization
@ -208,7 +218,7 @@ if (ASAN)
if (NOT CRTLIB)
message(FATAL_ERROR "CRTLIB (C runtime library) Must be enabled when compiling with ASAN")
endif()
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fsanitize=address -DASAN=1")
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fsanitize=address -shared-libasan -DASAN=1")
endif()
# Developer mode