More clang sanitizer stuff
authorClifford Wolf <clifford@clifford.at>
Sun, 31 Jan 2016 18:55:48 +0000 (19:55 +0100)
committerClifford Wolf <clifford@clifford.at>
Sun, 31 Jan 2016 18:55:48 +0000 (19:55 +0100)
Makefile
passes/techmap/Makefile.inc

index c20d80249c923949ca39a3297bbaf78749b05ade..5f4b62b15f850a4ef19ad56b9bd0f66ee4d99caf 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -94,6 +94,7 @@ endif
 
 ifeq ($(CONFIG),clang)
 CXX = clang
+LD = clang++
 CXXFLAGS += -std=c++11 -Os
 
 ifneq ($(SANITIZER),)
@@ -103,6 +104,10 @@ LDFLAGS += -g -fsanitize=$(SANITIZER)
 ifeq ($(SANITIZER),address)
 ENABLE_COVER := 0
 endif
+ifeq ($(SANITIZER),memory)
+CXXFLAGS += -fPIE
+LDFLAGS += -fPIE
+endif
 ifeq ($(SANITIZER),cfi)
 CXXFLAGS += -flto
 LDFLAGS += -flto
@@ -111,14 +116,17 @@ endif
 
 else ifeq ($(CONFIG),gcc)
 CXX = gcc
+LD = gcc
 CXXFLAGS += -std=gnu++0x -Os
 
 else ifeq ($(CONFIG),gcc-4.6)
 CXX = gcc-4.6
+LD = gcc-4.6
 CXXFLAGS += -std=gnu++0x -Os
 
 else ifeq ($(CONFIG),emcc)
 CXX = emcc
+LD = emcc
 CXXFLAGS := -std=c++11 $(filter-out -fPIC -ggdb,$(CXXFLAGS))
 EMCCFLAGS := -Os -Wno-warn-absolute-paths
 EMCCFLAGS += --memory-init-file 0 --embed-file share -s NO_EXIT_RUNTIME=1
@@ -148,6 +156,7 @@ yosys.html: misc/yosys.html
 
 else ifeq ($(CONFIG),mxe)
 CXX = /usr/local/src/mxe/usr/bin/i686-pc-mingw32-gcc
+LD = /usr/local/src/mxe/usr/bin/i686-pc-mingw32-gcc
 CXXFLAGS += -std=gnu++0x -Os -D_POSIX_SOURCE
 CXXFLAGS := $(filter-out -fPIC,$(CXXFLAGS))
 LDFLAGS := $(filter-out -rdynamic,$(LDFLAGS)) -s
@@ -321,10 +330,10 @@ yosys.js: $(filter-out yosysjs-$(YOSYS_VER).zip,$(EXTRA_TARGETS))
 endif
 
 yosys$(EXE): $(OBJS)
-       $(P) $(CXX) -o yosys$(EXE) $(LDFLAGS) $(OBJS) $(LDLIBS)
+       $(P) $(LD) -o yosys$(EXE) $(LDFLAGS) $(OBJS) $(LDLIBS)
 
 libyosys.so: $(filter-out kernel/driver.o,$(OBJS))
-       $(P) $(CXX) -o libyosys.so -shared -Wl,-soname,libyosys.so $(LDFLAGS) $^ $(LDLIBS)
+       $(P) $(LD) -o libyosys.so -shared -Wl,-soname,libyosys.so $(LDFLAGS) $^ $(LDLIBS)
 
 %.o: %.cc
        $(Q) mkdir -p $(dir $@)
index 674cb77cbdde29bad1f8f5db54be7ed6bcabba16..fa93886867213d77508bbe1ec92073f25bf69035 100644 (file)
@@ -42,6 +42,6 @@ EXTRA_OBJS += passes/techmap/filterlib.o
 
 yosys-filterlib$(EXE): passes/techmap/filterlib.o
        $(Q) mkdir -p $(dir $@)
-       $(P) $(CXX) -o yosys-filterlib$(EXE) $(LDFLAGS) $^ $(LDLIBS)
+       $(P) $(LD) -o yosys-filterlib$(EXE) $(LDFLAGS) $^ $(LDLIBS)
 endif