[TSan] Remove legacy Makefile.old!
Summary: It was barely supported for a several years for now, somewhat rotten and doesn't correspond to the way we build/test TSan runtime in Clang anymore. CMake build has proper compile flags, library layout, build dependencies etc. Shell scripts that depended on the output of Makefile.old are either obsolete now (check_cmake.sh), or moved to lit tests (check_memcpy.sh), or kept as a standalone scripts not suitable for generic test suite, but invoked on bots (check_analyze.sh). It is not used on bots anymore: all "interesting" configurations (gcc/clang as a host compiler; debug/release build types) are now tested via CMake. Reviewers: dvyukov, kcc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15316 llvm-svn: 255032
This commit is contained in:
parent
f49d159c8a
commit
02824d0e59
|
|
@ -1,103 +0,0 @@
|
|||
DEBUG=0
|
||||
LDFLAGS=-ldl -lrt -lpthread -pie
|
||||
CXXFLAGS = -std=c++11 -fPIE -fno-rtti -g -Wall -Werror \
|
||||
-DGTEST_HAS_RTTI=0 -DSANITIZER_DEBUG=$(DEBUG) \
|
||||
-DTSAN_CONTAINS_UBSAN=0
|
||||
CLANG=clang
|
||||
# Silence warnings that Clang produces for gtest code.
|
||||
# Use -Wno-attributes so that gcc doesn't complain about unknown warning types.
|
||||
CXXFLAGS += -Wno-attributes
|
||||
ifeq ($(DEBUG), 0)
|
||||
CXXFLAGS += -O3
|
||||
endif
|
||||
ifeq ($(CXX), $(CLANG)++)
|
||||
CXXFLAGS += -Wno-unused-private-field -Wno-static-in-inline -Wgnu
|
||||
else
|
||||
CXXFLAGS += -Wno-maybe-uninitialized
|
||||
endif
|
||||
|
||||
LIBTSAN=rtl/libtsan.a
|
||||
GTEST_ROOT=third_party/googletest
|
||||
GTEST_INCLUDE=-I$(GTEST_ROOT)/include
|
||||
GTEST_BUILD_DIR=$(GTEST_ROOT)/build
|
||||
GTEST_LIB_NAME=gtest-all.o
|
||||
GTEST_LIB=$(GTEST_BUILD_DIR)/$(GTEST_LIB_NAME)
|
||||
|
||||
SANITIZER_TESTS_PATH=../sanitizer_common/tests
|
||||
SANITIZER_COMMON_TESTS_SRC=$(wildcard $(SANITIZER_TESTS_PATH)/*_test.cc)
|
||||
SANITIZER_COMMON_EXCLUDED_TESTS=$(SANITIZER_TESTS_PATH)/sanitizer_nolibc_test.cc
|
||||
SANITIZER_COMMON_GOOD_TESTS=$(filter-out $(SANITIZER_COMMON_EXCLUDED_TESTS), $(SANITIZER_COMMON_TESTS_SRC))
|
||||
SANITIZER_COMMON_TESTS_OBJ=$(patsubst %.cc,%.o,$(SANITIZER_COMMON_GOOD_TESTS))
|
||||
RTL_TEST_SRC=$(wildcard tests/rtl/*.cc)
|
||||
RTL_TEST_OBJ=$(patsubst %.cc,%.o,$(RTL_TEST_SRC))
|
||||
UNIT_TEST_SRC=$(wildcard tests/unit/*_test.cc)
|
||||
UNIT_TEST_OBJ=$(patsubst %.cc,%.o,$(UNIT_TEST_SRC))
|
||||
UNIT_TEST_HDR=$(wildcard rtl/*.h) $(wildcard ../sanitizer_common/*.h)
|
||||
|
||||
INCLUDES=-Irtl -I.. -I../../include $(GTEST_INCLUDE)
|
||||
|
||||
all: libtsan test
|
||||
|
||||
help:
|
||||
@ echo "A little help is always welcome!"
|
||||
@ echo "The most useful targets are:"
|
||||
@ echo " make install_deps # Install third-party dependencies required for building"
|
||||
@ echo " make presubmit # Run it every time before committing"
|
||||
@ echo
|
||||
@ echo "For more info, see https://github.com/google/sanitizers/wiki/ThreadSanitizerDevelopment"
|
||||
|
||||
$(LIBTSAN): libtsan
|
||||
|
||||
libtsan:
|
||||
$(MAKE) -C rtl -f Makefile.old DEBUG=$(DEBUG)
|
||||
|
||||
%.o: %.cc $(UNIT_TEST_HDR) $(LIBTSAN)
|
||||
$(CXX) $(CXXFLAGS) $(CFLAGS) $(INCLUDES) -o $@ -c $<
|
||||
|
||||
tsan_test: $(UNIT_TEST_OBJ) $(RTL_TEST_OBJ) \
|
||||
$(SANITIZER_COMMON_TESTS_OBJ) $(LIBTSAN) $(GTEST_LIB)
|
||||
$(CXX) -Wl,--whole-archive $^ -Wl,--no-whole-archive -o $@ $(LDFLAGS)
|
||||
|
||||
test: libtsan tsan_test
|
||||
|
||||
run: all
|
||||
(ulimit -s 8192; ./tsan_test)
|
||||
|
||||
presubmit:
|
||||
../sanitizer_common/scripts/check_lint.sh
|
||||
# Debug build with clang.
|
||||
$(MAKE) -f Makefile.old clean
|
||||
$(MAKE) -f Makefile.old run DEBUG=1 -j 16 CC=$(CLANG) CXX=$(CLANG)++
|
||||
# Release build with clang.
|
||||
$(MAKE) -f Makefile.old clean
|
||||
$(MAKE) -f Makefile.old run DEBUG=0 -j 16 CC=$(CLANG) CXX=$(CLANG)++
|
||||
# Debug build with gcc
|
||||
$(MAKE) -f Makefile.old clean
|
||||
$(MAKE) -f Makefile.old run DEBUG=1 -j 16 CC=gcc CXX=g++
|
||||
# Release build with gcc
|
||||
$(MAKE) -f Makefile.old clean
|
||||
$(MAKE) -f Makefile.old run DEBUG=0 -j 16 CC=gcc CXX=g++
|
||||
# Sanity check for Go runtime
|
||||
(cd go && ./buildgo.sh)
|
||||
# Check cmake build
|
||||
./check_cmake.sh
|
||||
@ echo PRESUBMIT PASSED
|
||||
|
||||
install_deps:
|
||||
rm -rf third_party
|
||||
mkdir third_party
|
||||
(cd third_party && \
|
||||
svn co -r613 http://googletest.googlecode.com/svn/trunk googletest \
|
||||
)
|
||||
|
||||
$(GTEST_LIB):
|
||||
mkdir -p $(GTEST_BUILD_DIR) && \
|
||||
cd $(GTEST_BUILD_DIR) && \
|
||||
$(MAKE) -f ../make/Makefile CXXFLAGS="$(CXXFLAGS)" CFLAGS="$(CFLAGS)" CC=$(CC) CXX=$(CXX) $(GTEST_LIB_NAME)
|
||||
|
||||
clean:
|
||||
rm -f asm_*.s libtsan.nm libtsan.objdump */*.o tsan_test
|
||||
rm -rf $(GTEST_BUILD_DIR)
|
||||
$(MAKE) clean -C rtl -f Makefile.old
|
||||
rm -f go/*.s
|
||||
rm -rf build
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
CXXFLAGS = -std=c++11 -fPIE -g -Wall -Werror -fno-builtin -msse3 -DSANITIZER_DEBUG=$(DEBUG) -DTSAN_CONTAINS_UBSAN=0
|
||||
CLANG=clang
|
||||
ifeq ($(DEBUG), 0)
|
||||
CXXFLAGS += -O3
|
||||
endif
|
||||
|
||||
# For interception. FIXME: move interception one level higher.
|
||||
INTERCEPTION=../../interception
|
||||
COMMON=../../sanitizer_common
|
||||
INCLUDES= -I../.. -I../../../include
|
||||
EXTRA_CXXFLAGS=-fno-exceptions -fno-rtti
|
||||
NO_SYSROOT=--sysroot=.
|
||||
CXXFLAGS+=$(EXTRA_CXXFLAGS)
|
||||
CXXFLAGS+=$(CFLAGS)
|
||||
ifeq ($(DEBUG), 0)
|
||||
CXXFLAGS+=-fomit-frame-pointer
|
||||
ifeq ($(CXX), g++)
|
||||
CXXFLAGS+=-Wno-maybe-uninitialized
|
||||
CXXFLAGS+=-Wframe-larger-than=512
|
||||
endif # CXX=g++
|
||||
endif # DEBUG=0
|
||||
|
||||
ifeq ($(CXX), $(CLANG)++)
|
||||
# Global constructors are banned.
|
||||
CXXFLAGS+=-Wglobal-constructors
|
||||
endif
|
||||
|
||||
|
||||
|
||||
all: libtsan.a
|
||||
|
||||
LIBTSAN_HEADERS=$(wildcard *.h) \
|
||||
$(wildcard $(INTERCEPTION)/*.h) \
|
||||
$(wildcard $(COMMON)/*.h)
|
||||
LIBTSAN_SRC=$(wildcard *.cc)
|
||||
LIBTSAN_ASM_SRC=tsan_rtl_amd64.S
|
||||
INTERCEPTION_SRC=$(wildcard $(INTERCEPTION)/*.cc)
|
||||
COMMON_SRC=$(filter-out $(wildcard $(COMMON)/*_nolibc.cc),$(wildcard $(COMMON)/*.cc))
|
||||
|
||||
LIBTSAN_OBJ=$(patsubst %.cc,%.o,$(LIBTSAN_SRC)) \
|
||||
$(patsubst %.S,%.o,$(LIBTSAN_ASM_SRC)) \
|
||||
$(patsubst $(INTERCEPTION)/%.cc,%.o,$(INTERCEPTION_SRC)) \
|
||||
$(patsubst $(COMMON)/%.cc,%.o,$(COMMON_SRC))
|
||||
|
||||
%_linux.o: %_linux.cc Makefile.old $(LIBTSAN_HEADERS)
|
||||
$(CXX) $(CXXFLAGS) $(INCLUDES) -c $<
|
||||
%.o: %.cc Makefile.old $(LIBTSAN_HEADERS)
|
||||
$(CXX) $(CXXFLAGS) $(INCLUDES) $(NO_SYSROOT) -c $<
|
||||
%.o: $(INTERCEPTION)/%.cc Makefile.old $(LIBTSAN_HEADERS)
|
||||
$(CXX) $(CXXFLAGS) $(INCLUDES) -c $< -o $@
|
||||
%.o: $(COMMON)/%.cc Makefile.old $(LIBTSAN_HEADERS)
|
||||
$(CXX) $(CXXFLAGS) $(INCLUDES) -c $< -o $@
|
||||
tsan_rtl_amd64.o: tsan_rtl_amd64.S
|
||||
$(CXX) $(INCLUDES) -o $@ -c $<
|
||||
|
||||
libtsan.a: $(LIBTSAN_OBJ)
|
||||
ar ru $@ $(LIBTSAN_OBJ)
|
||||
|
||||
libtsan_dummy.a: tsan_dummy_rtl.o
|
||||
ar ru $@ $<
|
||||
|
||||
clean:
|
||||
rm -f *.o *.a
|
||||
Loading…
Reference in New Issue