Add UndefinedBehaviorSanitizer support

This commit is contained in:
Ben Noordhuis 2023-11-01 05:00:43 +01:00 committed by Charlie Gordon
parent 325ca194b7
commit fd6e039770

View file

@ -46,6 +46,8 @@ PREFIX?=/usr/local
# use memory sanitizer # use memory sanitizer
#CONFIG_MSAN=y #CONFIG_MSAN=y
# include the code for BigFloat/BigDecimal, math mode and faster large integers # include the code for BigFloat/BigDecimal, math mode and faster large integers
# use UB sanitizer
#CONFIG_UBSAN=y
CONFIG_BIGNUM=y CONFIG_BIGNUM=y
OBJDIR=.obj OBJDIR=.obj
@ -148,6 +150,10 @@ ifdef CONFIG_MSAN
CFLAGS+=-fsanitize=memory -fno-omit-frame-pointer CFLAGS+=-fsanitize=memory -fno-omit-frame-pointer
LDFLAGS+=-fsanitize=memory -fno-omit-frame-pointer LDFLAGS+=-fsanitize=memory -fno-omit-frame-pointer
endif endif
ifdef CONFIG_UBSAN
CFLAGS+=-fsanitize=undefined -fno-omit-frame-pointer
LDFLAGS+=-fsanitize=undefined -fno-omit-frame-pointer
endif
ifdef CONFIG_WIN32 ifdef CONFIG_WIN32
LDEXPORT= LDEXPORT=
else else
@ -184,6 +190,7 @@ endif
ifeq ($(CROSS_PREFIX),) ifeq ($(CROSS_PREFIX),)
ifndef CONFIG_ASAN ifndef CONFIG_ASAN
ifndef CONFIG_MSAN ifndef CONFIG_MSAN
ifndef CONFIG_UBSAN
PROGS+=examples/hello examples/hello_module examples/test_fib PROGS+=examples/hello examples/hello_module examples/test_fib
ifdef CONFIG_SHARED_LIBS ifdef CONFIG_SHARED_LIBS
PROGS+=examples/fib.so examples/point.so PROGS+=examples/fib.so examples/point.so
@ -191,6 +198,7 @@ endif
endif endif
endif endif
endif endif
endif
all: $(OBJDIR) $(OBJDIR)/quickjs.check.o $(OBJDIR)/qjs.check.o $(PROGS) all: $(OBJDIR) $(OBJDIR)/quickjs.check.o $(OBJDIR)/qjs.check.o $(PROGS)