aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Carlier <devnexen@gmail.com>2018-06-20 20:17:44 +0000
committerDavid Carlier <devnexen@gmail.com>2018-06-20 20:17:44 +0000
commit66afe8db783c9bfc2001ef456d3f63d601d4cb55 (patch)
tree12da2707c0dd52a0d9675989926b5cd4622ff45b
parent8753f67b54c2fbc6e948d3ced43d16b130fd9104 (diff)
[TSan] fix build and couple of unit tests on FreeBSD
Similarly to Msan adding -pie provokes linkage issue, was spotted with pie_test.cc Set to XFAIL for couple of unit tests. Reviewers: vitalybuka, krytarowski, dim Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D48317 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335166 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/tsan/CMakeLists.txt5
-rw-r--r--test/tsan/ignored-interceptors-mmap.cc1
-rw-r--r--test/tsan/strerror_r.cc2
3 files changed, 7 insertions, 1 deletions
diff --git a/lib/tsan/CMakeLists.txt b/lib/tsan/CMakeLists.txt
index 8a414d472..51a43e170 100644
--- a/lib/tsan/CMakeLists.txt
+++ b/lib/tsan/CMakeLists.txt
@@ -5,7 +5,10 @@ include_directories(..)
set(TSAN_CFLAGS ${SANITIZER_COMMON_CFLAGS})
# SANITIZER_COMMON_CFLAGS contains -fPIC, but it's performance-critical for
# TSan runtime to be built with -fPIE to reduce the number of register spills.
-append_list_if(COMPILER_RT_HAS_FPIE_FLAG -fPIE TSAN_CFLAGS)
+# On FreeBSD however it provokes linkage issue thus we disable it.
+if(NOT CMAKE_SYSTEM MATCHES "FreeBSD")
+ append_list_if(COMPILER_RT_HAS_FPIE_FLAG -fPIE TSAN_CFLAGS)
+endif()
append_rtti_flag(OFF TSAN_CFLAGS)
if(COMPILER_RT_TSAN_DEBUG_OUTPUT)
diff --git a/test/tsan/ignored-interceptors-mmap.cc b/test/tsan/ignored-interceptors-mmap.cc
index 871588323..796ea9323 100644
--- a/test/tsan/ignored-interceptors-mmap.cc
+++ b/test/tsan/ignored-interceptors-mmap.cc
@@ -1,6 +1,7 @@
// RUN: %clangxx_tsan -O0 %s -o %t
// RUN: not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-NORMAL
// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-IGNORE
+// XFAIL: freebsd
#include <errno.h>
#include <sys/mman.h>
diff --git a/test/tsan/strerror_r.cc b/test/tsan/strerror_r.cc
index 23b77454b..cfe8a18c1 100644
--- a/test/tsan/strerror_r.cc
+++ b/test/tsan/strerror_r.cc
@@ -1,6 +1,8 @@
// RUN: %clangxx_tsan -O1 -DTEST_ERROR=ERANGE %s -o %t && %run %t 2>&1 | FileCheck --check-prefixes=CHECK,CHECK-SYS %s
// RUN: %clangxx_tsan -O1 -DTEST_ERROR=-1 %s -o %t && not %run %t 2>&1 | FileCheck --check-prefixes=CHECK,CHECK-USER %s
// UNSUPPORTED: darwin
+// This test provokes a data race under FreeBSD
+// XFAIL: freebsd
#include "test.h"