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 " \ set(COMPILER_WARNINGS " \
-Weverything -Werror \ -Weverything -Werror \
-Wframe-larger-than=65536 \
\
-Wno-unused-macros -Wno-gnu-zero-variadic-macro-arguments -Wno-documentation \ -Wno-unused-macros -Wno-gnu-zero-variadic-macro-arguments -Wno-documentation \
-Wno-old-style-cast \ -Wno-old-style-cast -Wno-conversion -Wno-sign-conversion \
-Wno-conversion -Wno-sign-conversion -Wno-declaration-after-statement -Wno-extra-semi \ -Wno-declaration-after-statement -Wno-extra-semi -Wno-extra-semi-stmt \
-Wno-extra-semi-stmt -Wno-bad-function-cast -Wno-class-varargs \ -Wno-bad-function-cast -Wno-class-varargs -Wno-unreachable-code-break \
-Wno-unreachable-code-break -Wno-cast-align -Wno-float-equal \ -Wno-cast-align -Wno-float-equal -Wno-zero-as-null-pointer-constant \
-Wno-zero-as-null-pointer-constant -Wno-cast-qual -Wno-missing-noreturn \ -Wno-cast-qual -Wno-missing-noreturn -Wno-missing-field-initializers \
-Wno-missing-field-initializers -Wno-missing-braces -Wno-initializer-overrides \ -Wno-missing-braces -Wno-initializer-overrides \
-Wno-c99-extensions -Wno-c++98-compat-pedantic -Wno-c++98-compat \ -Wno-c99-extensions -Wno-c++98-compat-pedantic -Wno-c++98-compat \
-Wno-switch-enum -Wno-switch-default \ -Wno-switch-enum -Wno-switch-default \
-Wno-reserved-identifier -Wno-reserved-macro-identifier \ -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 " set(COMPILER_FLAGS "
-fuse-ld=lld-link \
-nostdlib \
-fno-strict-aliasing \ -fno-strict-aliasing \
-fno-finite-loops \ -fno-finite-loops \
-fwrapv \ -fwrapv \
@ -166,7 +170,6 @@ set(COMPILER_FLAGS "
") ")
set(LINKER_FLAGS " \ set(LINKER_FLAGS " \
-fuse-ld=lld-link \
${rc_res_sources} \ ${rc_res_sources} \
-fno-strict-aliasing \ -fno-strict-aliasing \
-fno-finite-loops \ -fno-finite-loops \
@ -187,15 +190,22 @@ endif()
# CRTLIB (C runtime library) # CRTLIB (C runtime library)
if (CRTLIB) if (CRTLIB)
set(COMPILER_FLAGS "${COMPILER_FLAGS} -DCRTLIB=1") 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} -D_MT -D_DLL")
set(LINKER_FLAGS "${LINKER_FLAGS} -lmsvcrt -lucrt -lmsvcprt -lvcruntime")
endif()
else() else()
set(COMPILER_FLAGS "${COMPILER_FLAGS} -mno-stack-arg-probe -fno-builtin -nostdlib") set(COMPILER_FLAGS "${COMPILER_FLAGS} -mno-stack-arg-probe -fno-builtin")
endif() endif()
# Optimization # Optimization
if (UNOPTIMIZED) if (UNOPTIMIZED)
set(COMPILER_FLAGS "${COMPILER_FLAGS} -O0 -DUNOPTIMIZED=1") set(COMPILER_FLAGS "${COMPILER_FLAGS} -O0 -DUNOPTIMIZED=1")
else() else()
set(COMPILER_FLAGS "${COMPILER_FLAGS} -O3 -flto") set(COMPILER_FLAGS "${COMPILER_FLAGS} -O3 -flto")
endif() endif()
# Debug info # Debug info
@ -208,7 +218,7 @@ if (ASAN)
if (NOT CRTLIB) if (NOT CRTLIB)
message(FATAL_ERROR "CRTLIB (C runtime library) Must be enabled when compiling with ASAN") message(FATAL_ERROR "CRTLIB (C runtime library) Must be enabled when compiling with ASAN")
endif() endif()
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fsanitize=address -DASAN=1") set(COMPILER_FLAGS "${COMPILER_FLAGS} -fsanitize=address -shared-libasan -DASAN=1")
endif() endif()
# Developer mode # Developer mode