summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2013-05-13 22:36:34 +0200
committerAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2013-05-13 22:36:34 +0200
commit32e332b0e25087e40c829e28ea6b60290ab8635c (patch)
tree0d2290fe2e45cd9f5a20cd8a2b38723d3c906ec8 /mk
parenta3190c0b18540eadbf50c77260430e6cebb7bf11 (diff)
downloadembtoolkit-32e332b0e25087e40c829e28ea6b60290ab8635c.tar.gz
embtoolkit-32e332b0e25087e40c829e28ea6b60290ab8635c.tar.bz2
embtoolkit-32e332b0e25087e40c829e28ea6b60290ab8635c.tar.xz
Toolchain: llvm/compiler-rt: tweak Makefile to be able to have specific cflags for each sanitizer component
Signed-off-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org>
Diffstat (limited to 'mk')
-rw-r--r--mk/llvm/compiler-rt/Makefile16
1 files changed, 14 insertions, 2 deletions
diff --git a/mk/llvm/compiler-rt/Makefile b/mk/llvm/compiler-rt/Makefile
index 914a5e3..c25c544 100644
--- a/mk/llvm/compiler-rt/Makefile
+++ b/mk/llvm/compiler-rt/Makefile
@@ -35,18 +35,24 @@ SANCOMMON_CXXSRCS := $(wildcard $(rootsrc)/lib/sanitizer_common/*.cc)
SANCOMMON_CXXSRCS += $(wildcard $(rootsrc)/lib/interception/*.cc)
SANCOMMON_CSRCS := $(wildcard $(rootsrc)/lib/sanitizer_common/*.c)
SANCOMMON_CSRCS += $(wildcard $(rootsrc)/lib/interception/*.c)
+
SANCOMMON_OBJS := $(patsubst %.cc,%.o,$(SANCOMMON_CXXSRCS))
SANCOMMON_OBJS += $(patsubst %.c,%.o,$(SANCOMMON_CSRCS))
+SANCOMMON_EXTRA_CFLAGS := -fno-rtti
+
#
# Address sanitizer part
#
ASAN := asan
ASAN_CXXSRCS := $(wildcard $(rootsrc)/lib/asan/*.cc)
ASAN_CSRCS := $(wildcard $(rootsrc)/lib/asan/*.c)
+
ASAN_OBJS := $(patsubst %.cc,%.o,$(ASAN_CXXSRCS))
ASAN_OBJS += $(patsubst %.c,%.o,$(ASAN_CSRCS))
+ASAN_EXTRA_CFLAGS := -fno-rtti
+
#
# Thread sanitizer part
#
@@ -62,9 +68,13 @@ TSAN_OBJS += $(patsubst %.c,%.o,$(TSAN_CSRCS))
UBSAN := ubsan
UBSAN_CXXSRCS := $(wildcard $(rootsrc)/lib/ubsan/*.cc)
UBSAN_CSRCS := $(wildcard $(rootsrc)/lib/ubsan/*.c)
+
UBSAN_OBJS := $(patsubst %.cc,%.o,$(UBSAN_CXXSRCS))
UBSAN_OBJS += $(patsubst %.c,%.o,$(UBSAN_CSRCS))
+#
+# Common part
+#
CC ?= gcc
CXX ?= g++
@@ -99,9 +109,11 @@ all: lib$(SANCOMMON).a lib$(ASAN).a lib$(UBSAN).a
install: all
$(Q)$(__lib_install)
+lib$(SANCOMMON).a: EXTRA_CFLAGS = $(SANCOMMON_EXTRA_CFLAGS)
lib$(SANCOMMON).a: $(SANCOMMON_OBJS)
$(Q)$(AR) $(ARFLAGS) $@ $(SANCOMMON_OBJS)
+lib$(ASAN).a: EXTRA_CFLAGS = $(ASAN_EXTRA_CFLAGS)
lib$(ASAN).a: $(ASAN_OBJS)
$(Q)$(AR) $(ARFLAGS) $@ $(ASAN_OBJS)
@@ -112,10 +124,10 @@ lib$(UBSAN).a: $(UBSAN_OBJS)
$(Q)$(AR) $(ARFLAGS) $@ $(UBSAN_OBJS)
%.o: %.c
- $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+ $(Q)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CPPFLAGS) -c $< -o $@
%.o: %.cc
- $(Q)$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@
+ $(Q)$(CXX) $(CXXFLAGS) $(EXTRA_CFLAGS) $(CPPFLAGS) -c $< -o $@
clean:
$(Q)rm -rf $(SANCOMMON_OBJS) $(ASAN_OBJS) $(TSAN_OBJS) $(UBSAN_OBJS)