[tsan] run more kinds of builds as presubmit test (and fix gcc debug build)
llvm-svn: 156616
diff --git a/compiler-rt/lib/tsan/Makefile.old b/compiler-rt/lib/tsan/Makefile.old
index 7506396..642cd60 100644
--- a/compiler-rt/lib/tsan/Makefile.old
+++ b/compiler-rt/lib/tsan/Makefile.old
@@ -50,18 +50,23 @@
run: all
(ulimit -s 8192; ./tsan_test)
+ ./output_tests/test_output.sh
presubmit:
$(MAKE) -f Makefile.old lint -j 4
# Debug build with clang.
$(MAKE) -f Makefile.old clean
$(MAKE) -f Makefile.old run DEBUG=1 -j 16 CC=clang CXX=clang++
- ./output_tests/test_output.sh
- # Release build gcc
+ # 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++
./check_analyze.sh
- ./output_tests/test_output.sh
@ echo PRESUBMIT PASSED
RTL_LINT_FITLER=-legal/copyright,-build/include,-readability/casting,-build/header_guard
diff --git a/compiler-rt/lib/tsan/rtl/Makefile.old b/compiler-rt/lib/tsan/rtl/Makefile.old
index 220e6fb..b826a75 100644
--- a/compiler-rt/lib/tsan/rtl/Makefile.old
+++ b/compiler-rt/lib/tsan/rtl/Makefile.old
@@ -10,15 +10,18 @@
CXXFLAGS+=$(EXTRA_CXXFLAGS)
ifeq ($(DEBUG), 0)
CXXFLAGS+=-fomit-frame-pointer
-endif
+ifeq ($(CXX), g++)
+ CXXFLAGS+=-Wframe-larger-than=512
+endif # CXX=g++
+endif # DEBUG=0
+
ifeq ($(CXX), clang++)
# Global constructors are banned.
CXXFLAGS+=-Wglobal-constructors
-else
- CXXFLAGS+=-Wframe-larger-than=512
endif
+
all: libtsan.a
LIBTSAN_HEADERS=tsan_allocator.h \
diff --git a/compiler-rt/lib/tsan/rtl/tsan_clock.h b/compiler-rt/lib/tsan/rtl/tsan_clock.h
index c4f8194..97e20a8 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_clock.h
+++ b/compiler-rt/lib/tsan/rtl/tsan_clock.h
@@ -41,23 +41,23 @@
public:
ThreadClock();
- u64 get(int tid) const {
+ u64 get(unsigned tid) const {
DCHECK(tid < kMaxTid);
return clk_[tid];
}
- void set(int tid, u64 v) {
+ void set(unsigned tid, u64 v) {
DCHECK(tid < kMaxTid);
DCHECK(v >= clk_[tid]);
clk_[tid] = v;
- if ((int)nclk_ <= tid)
+ if (nclk_ <= tid)
nclk_ = tid + 1;
}
- void tick(int tid) {
+ void tick(unsigned tid) {
DCHECK(tid < kMaxTid);
clk_[tid]++;
- if ((int)nclk_ <= tid)
+ if (nclk_ <= tid)
nclk_ = tid + 1;
}
diff --git a/compiler-rt/lib/tsan/rtl/tsan_defs.h b/compiler-rt/lib/tsan/rtl/tsan_defs.h
index d2088d5..77c26b4 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_defs.h
+++ b/compiler-rt/lib/tsan/rtl/tsan_defs.h
@@ -30,7 +30,7 @@
const uptr kPageSize = 4096;
const int kTidBits = 16;
-const int kMaxTid = 1 << kTidBits;
+const unsigned kMaxTid = 1 << kTidBits;
const int kClkBits = 40;
#ifdef TSAN_SHADOW_COUNT
diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl.h b/compiler-rt/lib/tsan/rtl/tsan_rtl.h
index 1117904..a5bdd52 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_rtl.h
+++ b/compiler-rt/lib/tsan/rtl/tsan_rtl.h
@@ -307,8 +307,8 @@
int nmissed_expected;
Mutex thread_mtx;
- int thread_seq;
- int unique_thread_seq;
+ unsigned thread_seq;
+ unsigned unique_thread_seq;
int alive_threads;
int max_alive_threads;
ThreadContext *threads[kMaxTid];
diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc b/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc
index b874826..b444077 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc
+++ b/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc
@@ -40,7 +40,7 @@
return;
Context *ctx = CTX();
Lock l(&ctx->thread_mtx);
- for (int i = 0; i < kMaxTid; i++) {
+ for (unsigned i = 0; i < kMaxTid; i++) {
ThreadContext *tctx = ctx->threads[i];
if (tctx == 0)
continue;
@@ -230,7 +230,7 @@
CHECK_GT(thr->in_rtl, 0);
DPrintf("#%d: ThreadTid uid=%lu\n", thr->tid, uid);
Lock l(&CTX()->thread_mtx);
- for (int tid = 0; tid < kMaxTid; tid++) {
+ for (unsigned tid = 0; tid < kMaxTid; tid++) {
if (CTX()->threads[tid] != 0
&& CTX()->threads[tid]->user_id == uid
&& CTX()->threads[tid]->status != ThreadStatusInvalid)