[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:
Alexey Samsonov 2015-12-08 17:59:33 +00:00
parent f49d159c8a
commit 02824d0e59
2 changed files with 0 additions and 166 deletions

View File

@ -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

View File

@ -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