diff options
Diffstat (limited to 'lib/asan/Makefile.old')
-rw-r--r-- | lib/asan/Makefile.old | 117 |
1 files changed, 57 insertions, 60 deletions
diff --git a/lib/asan/Makefile.old b/lib/asan/Makefile.old index a96ff42..4ab80e2 100644 --- a/lib/asan/Makefile.old +++ b/lib/asan/Makefile.old @@ -58,9 +58,11 @@ ifeq ($(ARCH), arm) endif CLANG_FLAGS= +CLANG_VERSION=3.2 CLANG_BUILD=$(ROOT)/../../../../build/Release+Asserts CLANG_CC=$(CLANG_BUILD)/bin/clang $(CLANG_FLAGS) CLANG_CXX=$(CLANG_BUILD)/bin/clang++ $(CLANG_FLAGS) +FILE_CHECK=$(CLANG_BUILD)/bin/FileCheck CC=$(CLANG_CC) CXX=$(CLANG_CXX) @@ -77,7 +79,6 @@ ARCH=x86_64 ASAN_STACK=1 ASAN_GLOBALS=1 -ASAN_USE_CALL=1 ASAN_SCALE=0 # default will be used ASAN_OFFSET=-1 #default will be used ASAN_UAR=0 @@ -120,8 +121,8 @@ endif # This will build libasan on linux for both x86_64 and i386 in the # desired location. The Mac library is already build by the clang's make. -# $(CLANG_BUILD)/lib/clang/3.1/lib/$(OS)/libclang_rt.asan-$(ARCH).a -LIBASAN_INST_DIR=$(CLANG_BUILD)/lib/clang/3.1/lib/$(OS) +# $(CLANG_BUILD)/lib/clang/$(CLANG_VERSION)/lib/$(OS)/libclang_rt.asan-$(ARCH).a +LIBASAN_INST_DIR=$(CLANG_BUILD)/lib/clang/$(CLANG_VERSION)/lib/$(OS) LIBASAN_A=$(LIBASAN_INST_DIR)/libclang_rt.asan-$(ARCH).a BLACKLIST= @@ -140,7 +141,6 @@ CLANG_ASAN_CXX=$(CLANG_CXX) \ $(BLACKLIST) \ -mllvm -asan-stack=$(ASAN_STACK) \ -mllvm -asan-globals=$(ASAN_GLOBALS) \ - -mllvm -asan-use-call=$(ASAN_USE_CALL) \ -mllvm -asan-mapping-scale=$(ASAN_SCALE) \ -mllvm -asan-mapping-offset-log=$(ASAN_OFFSET) \ -mllvm -asan-use-after-return=$(ASAN_UAR) \ @@ -169,37 +169,25 @@ ifeq ($(ASAN_COMPILER), gcc) ASAN_LD_TAIL=$(LIBASAN_A) endif -RTL_HDR=asan_allocator.h \ - asan_internal.h \ - asan_interceptors.h \ - asan_interface.h \ - asan_lock.h \ - asan_mac.h \ - asan_mapping.h \ - asan_stack.h \ - asan_stats.h \ - asan_thread.h \ - asan_thread_registry.h \ - mach_override/mach_override.h \ - sysinfo/basictypes.h \ - sysinfo/sysinfo.h - -LIBASAN_OBJ=$(BIN)/asan_rtl$(SUFF).o \ - $(BIN)/asan_allocator$(SUFF).o \ - $(BIN)/asan_globals$(SUFF).o \ - $(BIN)/asan_interceptors$(SUFF).o \ - $(BIN)/asan_linux$(SUFF).o \ - $(BIN)/asan_mac$(SUFF).o \ - $(BIN)/asan_malloc_linux$(SUFF).o \ - $(BIN)/asan_malloc_mac$(SUFF).o \ - $(BIN)/asan_poisoning$(SUFF).o \ - $(BIN)/asan_printf$(SUFF).o \ - $(BIN)/asan_stack$(SUFF).o \ - $(BIN)/asan_stats$(SUFF).o \ - $(BIN)/asan_thread$(SUFF).o \ - $(BIN)/asan_thread_registry$(SUFF).o \ - $(BIN)/mach_override/mach_override$(SUFF).o \ - $(BIN)/sysinfo/sysinfo$(SUFF).o +INTERCEPTION=../interception +MACH_OVERRIDE=$(INTERCEPTION)/mach_override +COMMON=../sanitizer_common + +RTL_HDR=$(wildcard *.h) \ + $(wildcard $(INTERCEPTION)/*.h) \ + $(wildcard $(MACH_OVERRIDE)/*.h) \ + $(wildcard $(COMMON)/*.h) + +LIBTSAN_SRC=$(wildcard *.cc) +INTERCEPTION_SRC=$(wildcard $(INTERCEPTION)/*.cc) +MACH_OVERRIDE_SRC=$(wildcard $(MACH_OVERRIDE)/*.c) +COMMON_SRC=$(wildcard $(COMMON)/*.cc) + + +LIBASAN_OBJ=$(patsubst %.cc,$(BIN)/%$(SUFF).o,$(LIBTSAN_SRC)) \ + $(patsubst $(INTERCEPTION)/%.cc,$(BIN)/%$(SUFF).o,$(INTERCEPTION_SRC)) \ + $(patsubst $(COMMON)/%.cc,$(BIN)/%$(SUFF).o,$(COMMON_SRC)) \ + $(patsubst $(MACH_OVERRIDE)/%.c,$(BIN)/%$(SUFF).o,$(MACH_OVERRIDE_SRC)) GTEST_ROOT=third_party/googletest GTEST_INCLUDE=-I$(GTEST_ROOT)/include @@ -209,29 +197,28 @@ GTEST_LIB=$(GTEST_MAKE_DIR)/gtest-all.o all: b64 b32 test: t64 t32 output_tests lint + @echo "ALL TESTS PASSED" output_tests: b32 b64 - cd tests && ./test_output.sh $(CLANG_CXX) $(CLANG_CC) + cd output_tests && ./test_output.sh $(CLANG_CXX) $(CLANG_CC) $(FILE_CHECK) t64: b64 $(BIN)/asan_test64 t32: b32 $(BIN)/asan_test32 -b64: | $(BIN) +b64: | mk_bin_dir $(MAKE) -f $(MAKEFILE) ARCH=x86_64 asan_test asan_benchmarks -b32: | $(BIN) +b32: | mk_bin_dir $(MAKE) -f $(MAKEFILE) ARCH=i386 asan_test asan_benchmarks lib64: - $(MAKE) $(MAKEFILE) ARCH=x86_64 lib + $(MAKE) -f $(MAKEFILE) ARCH=x86_64 lib lib32: - $(MAKE) $(MAKEFILE) ARCH=i386 lib + $(MAKE) -f $(MAKEFILE) ARCH=i386 lib -$(BIN): +mk_bin_dir: mkdir -p $(BIN) - mkdir -p $(BIN)/sysinfo - mkdir -p $(BIN)/mach_override clang: cd ../ && llvm/rebuild_clang_and_asan.sh > /dev/null @@ -250,29 +237,37 @@ install_clang: | $(INSTALL_DIR) # cp -v $(CLANG_BUILD)/lib/libasan*.a $(INSTALL_DIR)/lib $(BIN)/asan_noinst_test$(SUFF).o: tests/asan_noinst_test.cc $(RTL_HDR) $(MAKEFILE) - $(CLEANROOM_CXX) $(PIE) $(CFLAGS) $(GTEST_INCLUDE) -I. -g -c $< -O2 -o $@ + $(CLEANROOM_CXX) $(PIE) $(CFLAGS) $(GTEST_INCLUDE) -I. -I.. -g -c $< -O2 -o $@ $(BIN)/asan_break_optimization$(SUFF).o: tests/asan_break_optimization.cc $(MAKEFILE) $(CLEANROOM_CXX) $(PIE) $(CFLAGS) -c $< -O0 -o $@ $(BIN)/%_test$(SUFF).o: tests/%_test.cc $(RTL_HDR) $(MAKEFILE) - $(ASAN_CXX) $(GTEST_INCLUDE) -I. -g -c $< -O2 -o $@ $(PIE) $(CFLAGS) + $(ASAN_CXX) $(GTEST_INCLUDE) -I. -I.. -g -c $< -O2 -o $@ $(PIE) $(CFLAGS) $(BIN)/%_test$(SUFF).o: tests/%_test.mm $(RTL_HDR) $(MAKEFILE) - $(ASAN_CXX) $(GTEST_INCLUDE) -I. -g -c $< -O2 -o $@ -ObjC $(PIE) $(CFLAGS) + $(ASAN_CXX) $(GTEST_INCLUDE) -I. -I.. -g -c $< -O2 -o $@ -ObjC $(PIE) $(CFLAGS) + +RTL_COMMON_FLAGS=$(PIE) $(CFLAGS) -fPIC -c -O2 -fno-exceptions -funwind-tables \ + -Ithird_party -I.. $(ASAN_FLAGS) + +$(BIN)/%$(SUFF).o: $(INTERCEPTION)/%.cc $(RTL_HDR) $(MAKEFILE) + $(CXX) $(RTL_COMMON_FLAGS) -o $@ -g $< + +$(BIN)/%$(SUFF).o: $(COMMON)/%.cc $(RTL_HDR) $(MAKEFILE) + $(CXX) $(RTL_COMMON_FLAGS) -o $@ -g $< + +$(BIN)/%$(SUFF).o: $(MACH_OVERRIDE)/%.c $(RTL_HDR) $(MAKEFILE) + $(CC) $(RTL_COMMON_FLAGS) -o $@ -g $< $(BIN)/%$(SUFF).o: %.cc $(RTL_HDR) $(MAKEFILE) - $(CXX) $(PIE) $(CFLAGS) -fPIC -c -O2 -fno-exceptions -funwind-tables \ - -o $@ -g $< -Ithird_party \ - -DASAN_USE_SYSINFO=1 \ + $(CXX) $(RTL_COMMON_FLAGS) -o $@ -g $< \ -DASAN_NEEDS_SEGV=$(ASAN_NEEDS_SEGV) \ -DASAN_HAS_EXCEPTIONS=$(ASAN_HAS_EXCEPTIONS) \ - -DASAN_FLEXIBLE_MAPPING_AND_OFFSET=$(ASAN_FLEXIBLE_MAPPING_AND_OFFSET) \ - $(ASAN_FLAGS) + -DASAN_FLEXIBLE_MAPPING_AND_OFFSET=$(ASAN_FLEXIBLE_MAPPING_AND_OFFSET) $(BIN)/%$(SUFF).o: %.c $(RTL_HDR) $(MAKEFILE) $(CC) $(PIE) $(CFLAGS) -fPIC -c -O2 -o $@ -g $< -Ithird_party \ - -DASAN_USE_SYSINFO=1 \ $(ASAN_FLAGS) ifeq ($(OS),darwin) @@ -283,17 +278,16 @@ endif lib: $(LIBASAN_A) -$(LIBASAN_A): $(BIN) $(LIBASAN_OBJ) $(MAKEFILE) +$(LIBASAN_A): mk_bin_dir $(LIBASAN_OBJ) $(MAKEFILE) mkdir -p $(LIBASAN_INST_DIR) ar ru $@ $(LIBASAN_OBJ) $(CXX) -shared $(CFLAGS) $(LIBASAN_OBJ) $(LD_FLAGS) -o $(BIN)/libasan$(SUFF).so TEST_OBJECTS_COMMON=\ - $(BIN)/asan_test$(SUFF).o \ $(BIN)/asan_globals_test$(SUFF).o \ $(BIN)/asan_break_optimization$(SUFF).o \ $(BIN)/asan_noinst_test$(SUFF).o \ - $(BIN)/asan_interface_test$(SUFF).o + $(BIN)/asan_test$(SUFF).o BENCHMARK_OBJECTS=\ $(BIN)/asan_benchmarks_test$(SUFF).o \ @@ -323,11 +317,11 @@ $(GTEST_LIB): mkdir -p $(GTEST_MAKE_DIR) && \ cd $(GTEST_MAKE_DIR) && \ $(MAKE) -f ../make/Makefile CXXFLAGS="$(PIE) $(CFLAGS) -g -w" \ - CXX="$(CLANG_ASAN_CXX)" + CXX="$(CLANG_CXX)" -RTL_LINT_FITLER=-readability/casting,-readability/check,-build/include,-build/header_guard,-build/class,-legal/copyright +RTL_LINT_FILTER=-readability/casting,-readability/check,-build/include,-build/header_guard,-build/class,-legal/copyright,-build/namespaces # TODO(kcc): remove these filters one by one -TEST_LINT_FITLER=-readability/casting,-build/include,-legal/copyright,-whitespace/newline,-runtime/sizeof,-runtime/int,-runtime/printf +TEST_LINT_FILTER=-readability/casting,-build/include,-legal/copyright,-whitespace/newline,-runtime/sizeof,-runtime/int,-runtime/printf LLVM_LINT_FILTER=-,+whitespace @@ -335,8 +329,10 @@ ADDRESS_SANITIZER_CPP=../../../../lib/Transforms/Instrumentation/AddressSanitize lint: third_party/cpplint/cpplint.py --filter=$(LLVM_LINT_FILTER) $(ADDRESS_SANITIZER_CPP) - third_party/cpplint/cpplint.py --filter=$(RTL_LINT_FITLER) asan_*.cc asan_*.h - third_party/cpplint/cpplint.py --filter=$(TEST_LINT_FITLER) tests/*.cc + third_party/cpplint/cpplint.py --filter=$(RTL_LINT_FILTER) asan_*.cc asan_*.h + third_party/cpplint/cpplint.py --filter=$(RTL_LINT_FILTER) $(INTERCEPTION)/interception*.h $(INTERCEPTION)/interception*.cc + third_party/cpplint/cpplint.py --filter=$(RTL_LINT_FILTER) $(COMMON)/sanitizer_*.h $(COMMON)/sanitizer_*.cc + third_party/cpplint/cpplint.py --filter=$(TEST_LINT_FILTER) tests/*.cc output_tests/*.cc get_third_party: rm -rf third_party @@ -348,5 +344,6 @@ get_third_party: clean: rm -f *.o *.ll *.S *.a *.log asan_test64* asan_test32* a.out perf.data log + rm -f $(LIBASAN_INST_DIR)/libclang_rt.asan-*.a rm -rf $(BIN) rm -rf $(GTEST_ROOT)/make-* |