Add undefined behavior sanitizer option
This commit is contained in:
parent
8e7fb0433b
commit
53e3e5bf78
@ -23,7 +23,7 @@ SOURCE_DIRS::=src
|
|||||||
SOURCES::=
|
SOURCES::=
|
||||||
OBJDIR::=obj
|
OBJDIR::=obj
|
||||||
DEPDIR::=$(OBJDIR)/dep
|
DEPDIR::=$(OBJDIR)/dep
|
||||||
LIBDIRS::=
|
LIBDIRS::=lib
|
||||||
INCLUDE_DIRS::=include
|
INCLUDE_DIRS::=include
|
||||||
CFLAGS::=-std=c18 -Wall -pedantic -Wextra
|
CFLAGS::=-std=c18 -Wall -pedantic -Wextra
|
||||||
CXXFLAGS::=-std=c++17 -Wall -pedantic -Wextra
|
CXXFLAGS::=-std=c++17 -Wall -pedantic -Wextra
|
||||||
@ -32,6 +32,7 @@ LANG::=$(EXT)
|
|||||||
MAIN_EXECUTABLE::=tester
|
MAIN_EXECUTABLE::=tester
|
||||||
RELEASE?=0
|
RELEASE?=0
|
||||||
MEMCHK?=0
|
MEMCHK?=0
|
||||||
|
UNDEFCHK?=0
|
||||||
SAVEFLAGS?=1
|
SAVEFLAGS?=1
|
||||||
|
|
||||||
ifneq ($(WINDOWS),1)
|
ifneq ($(WINDOWS),1)
|
||||||
@ -107,16 +108,20 @@ endif
|
|||||||
|
|
||||||
|
|
||||||
ifeq ($(RELEASE),1)
|
ifeq ($(RELEASE),1)
|
||||||
#a lot of false strict aliasing warnings from gcc 9
|
#a lot of false strict aliasing warnings from gcc 9
|
||||||
COMPILER_FLAGS+=-O2 -Wno-strict-aliasing
|
COMPILER_FLAGS+=-O2 -Wno-strict-aliasing
|
||||||
|
|
||||||
else ifeq ($(MEMCHK),1)
|
|
||||||
#use asan to check memory leaks/invalid accesses
|
|
||||||
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
|
||||||
COMPILER_FLAGS+=-O0 -g3 -ggdb -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
|
||||||
else
|
else
|
||||||
#default target
|
#default target
|
||||||
COMPILER_FLAGS+=-O0 -g3 -ggdb
|
COMPILER_FLAGS+=-O0 -g3 -ggdb
|
||||||
|
ifeq ($(MEMCHK),1)
|
||||||
|
#use asan to check memory leaks/invalid accesses
|
||||||
|
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
||||||
|
COMPILER_FLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
||||||
|
endif
|
||||||
|
ifeq ($(UNDEFCHK),1)
|
||||||
|
LDFLAGS+=-fsanitize=undefined
|
||||||
|
COMPILER_FLAGS+=-fsanitize=undefined
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(SAVEFLAGS),1)
|
ifeq ($(SAVEFLAGS),1)
|
||||||
|
|||||||
@ -35,6 +35,7 @@ POST_TARGETS::=
|
|||||||
CLEAN_TARGETS::=
|
CLEAN_TARGETS::=
|
||||||
RELEASE?=0
|
RELEASE?=0
|
||||||
MEMCHK?=0
|
MEMCHK?=0
|
||||||
|
UNDEFCHK?=0
|
||||||
SAVECFLAGS?=1
|
SAVECFLAGS?=1
|
||||||
VERBOSE=0
|
VERBOSE=0
|
||||||
|
|
||||||
@ -106,13 +107,18 @@ ifeq ($(RELEASE),1)
|
|||||||
#a lot of false strict aliasing warnings from gcc 9
|
#a lot of false strict aliasing warnings from gcc 9
|
||||||
COMPILER_FLAGS+=-O2 -Wno-strict-aliasing
|
COMPILER_FLAGS+=-O2 -Wno-strict-aliasing
|
||||||
POST_TARGETS+= do_strip
|
POST_TARGETS+= do_strip
|
||||||
else ifeq ($(MEMCHK),1)
|
|
||||||
#use asan to check memory leaks/invalid accesses
|
|
||||||
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
|
||||||
COMPILER_FLAGS+=-O0 -g3 -ggdb -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
|
||||||
else
|
else
|
||||||
#default target
|
#default target
|
||||||
COMPILER_FLAGS+=-O0 -g3 -ggdb
|
COMPILER_FLAGS+=-O0 -g3 -ggdb
|
||||||
|
ifeq ($(MEMCHK),1)
|
||||||
|
#use asan to check memory leaks/invalid accesses
|
||||||
|
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
||||||
|
COMPILER_FLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
||||||
|
endif
|
||||||
|
ifeq ($(UNDEFCHK),1)
|
||||||
|
LDFLAGS+=-fsanitize=undefined
|
||||||
|
COMPILER_FLAGS+=-fsanitize=undefined
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(SAVECFLAGS),1)
|
ifeq ($(SAVECFLAGS),1)
|
||||||
|
|||||||
@ -34,6 +34,7 @@ SHARED?=1
|
|||||||
STATIC?=0
|
STATIC?=0
|
||||||
RELEASE?=0
|
RELEASE?=0
|
||||||
MEMCHK?=0
|
MEMCHK?=0
|
||||||
|
UNDEFCHK?=0
|
||||||
SAVEFLAGS?=1
|
SAVEFLAGS?=1
|
||||||
|
|
||||||
ifneq ($(WINDOWS),1)
|
ifneq ($(WINDOWS),1)
|
||||||
@ -121,13 +122,18 @@ endif
|
|||||||
ifeq ($(RELEASE),1)
|
ifeq ($(RELEASE),1)
|
||||||
#a lot of false strict aliasing warnings from gcc 9
|
#a lot of false strict aliasing warnings from gcc 9
|
||||||
COMPILER_FLAGS+=-O2 -Wno-strict-aliasing
|
COMPILER_FLAGS+=-O2 -Wno-strict-aliasing
|
||||||
else ifeq ($(MEMCHK),1)
|
|
||||||
#use asan to check memory leaks/invalid accesses
|
|
||||||
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
|
||||||
COMPILER_FLAGS+=-O0 -g3 -ggdb -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
|
||||||
else
|
else
|
||||||
#default target
|
#default target
|
||||||
COMPILER_FLAGS+=-O0 -g3 -ggdb
|
COMPILER_FLAGS+=-O0 -g3 -ggdb
|
||||||
|
ifeq ($(MEMCHK),1)
|
||||||
|
#use asan to check memory leaks/invalid accesses
|
||||||
|
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
||||||
|
COMPILER_FLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
||||||
|
endif
|
||||||
|
ifeq ($(UNDEFCHK),1)
|
||||||
|
LDFLAGS+=-fsanitize=undefined
|
||||||
|
COMPILER_FLAGS+=-fsanitize=undefined
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(SAVEFLAGS),1)
|
ifeq ($(SAVEFLAGS),1)
|
||||||
|
|||||||
@ -37,6 +37,7 @@ SHARED?=1
|
|||||||
STATIC?=0
|
STATIC?=0
|
||||||
RELEASE?=0
|
RELEASE?=0
|
||||||
MEMCHK?=0
|
MEMCHK?=0
|
||||||
|
UNDEFCHK?=0
|
||||||
SAVEFLAGS?=1
|
SAVEFLAGS?=1
|
||||||
|
|
||||||
ifneq ($(WINDOWS),1)
|
ifneq ($(WINDOWS),1)
|
||||||
@ -114,13 +115,18 @@ ifeq ($(RELEASE),1)
|
|||||||
#a lot of false strict aliasing warnings from gcc 9
|
#a lot of false strict aliasing warnings from gcc 9
|
||||||
COMPILER_FLAGS+=-O2 -Wno-strict-aliasing
|
COMPILER_FLAGS+=-O2 -Wno-strict-aliasing
|
||||||
POST_TARGETS+= do_strip
|
POST_TARGETS+= do_strip
|
||||||
else ifeq ($(MEMCHK),1)
|
|
||||||
#use asan to check memory leaks/invalid accesses
|
|
||||||
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
|
||||||
COMPILER_FLAGS+=-O0 -g3 -ggdb -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
|
||||||
else
|
else
|
||||||
#default target
|
#default target
|
||||||
COMPILER_FLAGS+=-O0 -g3 -ggdb
|
COMPILER_FLAGS+=-O0 -g3 -ggdb
|
||||||
|
ifeq ($(MEMCHK),1)
|
||||||
|
#use asan to check memory leaks/invalid accesses
|
||||||
|
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
||||||
|
COMPILER_FLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
||||||
|
endif
|
||||||
|
ifeq ($(UNDEFCHK),1)
|
||||||
|
LDFLAGS+=-fsanitize=undefined
|
||||||
|
COMPILER_FLAGS+=-fsanitize=undefined
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(SAVEFLAGS),1)
|
ifeq ($(SAVEFLAGS),1)
|
||||||
|
|||||||
@ -35,6 +35,7 @@ POST_TARGETS::=
|
|||||||
CLEAN_TARGETS::=
|
CLEAN_TARGETS::=
|
||||||
RELEASE?=0
|
RELEASE?=0
|
||||||
MEMCHK?=0
|
MEMCHK?=0
|
||||||
|
UNDEFCHK?=0
|
||||||
SAVEFLAGS?=1
|
SAVEFLAGS?=1
|
||||||
|
|
||||||
ifneq ($(WINDOWS),1)
|
ifneq ($(WINDOWS),1)
|
||||||
@ -105,13 +106,18 @@ endif
|
|||||||
ifeq ($(RELEASE),1)
|
ifeq ($(RELEASE),1)
|
||||||
#a lot of false strict aliasing warnings from gcc 9
|
#a lot of false strict aliasing warnings from gcc 9
|
||||||
COMPILER_FLAGS+=-O2 -Wno-strict-aliasing
|
COMPILER_FLAGS+=-O2 -Wno-strict-aliasing
|
||||||
else ifeq ($(MEMCHK),1)
|
|
||||||
#use asan to check memory leaks/invalid accesses
|
|
||||||
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
|
||||||
COMPILER_FLAGS+=-O0 -g3 -ggdb -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
|
||||||
else
|
else
|
||||||
#default target
|
#default target
|
||||||
COMPILER_FLAGS+=-O0 -g3 -ggdb
|
COMPILER_FLAGS+=-O0 -g3 -ggdb
|
||||||
|
ifeq ($(MEMCHK),1)
|
||||||
|
#use asan to check memory leaks/invalid accesses
|
||||||
|
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
||||||
|
COMPILER_FLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
||||||
|
endif
|
||||||
|
ifeq ($(UNDEFCHK),1)
|
||||||
|
LDFLAGS+=-fsanitize=undefined
|
||||||
|
COMPILER_FLAGS+=-fsanitize=undefined
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(SAVEFLAGS),1)
|
ifeq ($(SAVEFLAGS),1)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user