From 1e29bb1347c0b465025c214a7522abda7baaf9f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20St=C3=B6neberg?= Date: Tue, 27 Jan 2015 23:27:08 +0100 Subject: moved some clang-specific stuff from makefile to src/build/flags_clang.mak (nw) --- makefile | 29 +++-------------------------- src/build/flags_clang.mak | 25 +++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/makefile b/makefile index 430014db251..3631efd6dc1 100644 --- a/makefile +++ b/makefile @@ -607,40 +607,17 @@ COBJFLAGS += \ # warnings only applicable to C++ compiles CPPONLYFLAGS += \ -Woverloaded-virtual - -include $(SRC)/build/cc_detection.mak ifdef SANITIZE CCOMFLAGS += -fsanitize=$(SANITIZE) + ifneq (,$(findstring thread,$(SANITIZE))) CCOMFLAGS += -fPIE endif -ifneq (,$(findstring memory,$(SANITIZE))) -ifneq (,$(findstring clang,$(CC))) -CCOMFLAGS += -fsanitize-memory-track-origins -fPIE -endif -endif -ifneq (,$(findstring undefined,$(SANITIZE))) -ifneq (,$(findstring clang,$(CC))) -# TODO: check if linker is clang++ -# produces a lot of messages - disable it for now -CCOMFLAGS += -fno-sanitize=alignment -# these are false positives because of the way our delegates work -CCOMFLAGS += -fno-sanitize=function -# clang takes forever to compile src/emu/cpu/tms57002/tms57002.c when this isn't disabled -CCOMFLAGS += -fno-sanitize=shift -# clang takes forever to compile src/emu/cpu/tms57002/tms57002.c, src/emu/cpu/m6809/hd6309.c when this isn't disabled -CCOMFLAGS += -fno-sanitize=object-size -# clang takes forever to compile src/emu/cpu/tms57002/tms57002.c, src/emu/cpu/m6809/konami.c, src/emu/cpu/m6809/hd6309.c, src/emu/video/psx.c when this isn't disabled -CCOMFLAGS += -fno-sanitize=vptr -# clang takes forever to compile src/emu/video/psx.c when this isn't disabled -CCOMFLAGS += -fno-sanitize=null -# clang takes forever to compile src/emu/cpu/tms57002/tms57002.c when this isn't disabled -CCOMFLAGS += -fno-sanitize=signed-integer-overflow -endif -endif endif +include $(SRC)/build/cc_detection.mak + #------------------------------------------------- # include paths #------------------------------------------------- diff --git a/src/build/flags_clang.mak b/src/build/flags_clang.mak index daa2fee187c..9c151b1c5a8 100644 --- a/src/build/flags_clang.mak +++ b/src/build/flags_clang.mak @@ -9,6 +9,18 @@ CCOMFLAGS += -Wno-self-assign-field # caused by src/mame/video/jagblit.inc on older clang versions CCOMFLAGS += -Wno-constant-logical-operand +ifneq (,$(findstring undefined,$(SANITIZE))) +# TODO: check if linker is clang++ +# produces a lot of messages - disable it for now +CCOMFLAGS += -fno-sanitize=alignment +# these are false positives because of the way our delegates work +CCOMFLAGS += -fno-sanitize=function +endif + +ifneq (,$(findstring memory,$(SANITIZE))) +CCOMFLAGS += -fsanitize-memory-track-origins -fPIE +endif + # TODO: needs to use $(CC) TEST_CLANG := $(shell clang --version) @@ -29,6 +41,19 @@ CCOMFLAGS += -Wno-deprecated-register -Wno-reserved-user-defined-literal -Wno-c+ CCOMFLAGS += -Wno-unknown-warning-option # XCode 6.0.1 gives this when using SDL2 in /Library/Frameworks/SDL2.framework/Headers/SDL_syswm.h:150 included from src/osd/sdl/sdlinc.h CCOMFLAGS += -Wno-extern-c-compat + +ifneq (,$(findstring undefined,$(SANITIZE))) +# clang takes forever to compile src/emu/cpu/tms57002/tms57002.c when this isn't disabled +CCOMFLAGS += -fno-sanitize=shift +# clang takes forever to compile src/emu/cpu/tms57002/tms57002.c, src/emu/cpu/m6809/hd6309.c when this isn't disabled +CCOMFLAGS += -fno-sanitize=object-size +# clang takes forever to compile src/emu/cpu/tms57002/tms57002.c, src/emu/cpu/m6809/konami.c, src/emu/cpu/m6809/hd6309.c, src/emu/video/psx.c when this isn't disabled +CCOMFLAGS += -fno-sanitize=vptr +# clang takes forever to compile src/emu/video/psx.c when this isn't disabled +CCOMFLAGS += -fno-sanitize=null +# clang takes forever to compile src/emu/cpu/tms57002/tms57002.c when this isn't disabled +CCOMFLAGS += -fno-sanitize=signed-integer-overflow +endif endif ifeq ($(TARGETOS),emscripten) -- cgit v1.2.3