summaryrefslogtreecommitdiff
path: root/lib/xray
diff options
context:
space:
mode:
authorPetr Hosek <phosek@chromium.org>2018-06-13 07:08:28 +0000
committerPetr Hosek <phosek@chromium.org>2018-06-13 07:08:28 +0000
commitd7ca5be1d8eb7168129bbdb39ea556e6af46620d (patch)
treecea0ee1cb03311198b5c9b5d55d75d142625063e /lib/xray
parent5182c97e8f15d72eaac6b4b4ad93729130343011 (diff)
[XRay] Set an explicit dependency on libc++ when needed
When XRay is being built as part of the just built compiler together with libc++ as part of the runtimes build, we need an explicit dependency from XRay to libc++ to make sure that the library is available by the time we start building XRay. Differential Revision: https://reviews.llvm.org/D48113 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@334575 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/xray')
-rw-r--r--lib/xray/CMakeLists.txt28
1 files changed, 20 insertions, 8 deletions
diff --git a/lib/xray/CMakeLists.txt b/lib/xray/CMakeLists.txt
index baac739d4..dab2511e2 100644
--- a/lib/xray/CMakeLists.txt
+++ b/lib/xray/CMakeLists.txt
@@ -81,6 +81,10 @@ set(XRAY_COMMON_RUNTIME_OBJECT_LIBS
RTSanitizerCommon
RTSanitizerCommonLibc)
+if (CLANG_DEFAULT_CXX_STDLIB STREQUAL "libc++" AND (TARGET cxx OR HAVE_LIBCXX))
+ set(XRAY_DEPS cxx)
+endif()
+
if (APPLE)
set(XRAY_LINK_LIBS ${SANITIZER_COMMON_LINK_LIBS})
add_asm_sources(XRAY_ASM_SOURCES xray_trampoline_x86_64.S)
@@ -93,25 +97,29 @@ if (APPLE)
ARCHS ${XRAY_SUPPORTED_ARCH}
SOURCES ${x86_64_SOURCES}
CFLAGS ${XRAY_CFLAGS}
- DEFS ${XRAY_COMMON_DEFINITIONS})
+ DEFS ${XRAY_COMMON_DEFINITIONS}
+ DEPS ${XRAY_DEPS})
add_compiler_rt_object_libraries(RTXrayFDR
OS ${XRAY_SUPPORTED_OS}
ARCHS ${XRAY_SUPPORTED_ARCH}
SOURCES ${XRAY_FDR_MODE_SOURCES}
CFLAGS ${XRAY_CFLAGS}
- DEFS ${XRAY_COMMON_DEFINITIONS})
+ DEFS ${XRAY_COMMON_DEFINITIONS}
+ DEPS ${XRAY_DEPS})
add_compiler_rt_object_libraries(RTXrayBASIC
OS ${XRAY_SUPPORTED_OS}
ARCHS ${XRAY_SUPPORTED_ARCH}
SOURCES ${XRAY_BASIC_MODE_SOURCES}
CFLAGS ${XRAY_CFLAGS}
- DEFS ${XRAY_COMMON_DEFINITIONS})
+ DEFS ${XRAY_COMMON_DEFINITIONS}
+ DEPS ${XRAY_DEPS})
add_compiler_rt_object_libraries(RTXrayPROFILING
OS ${XRAY_SUPPORTED_OS}
ARCHS ${XRAY_SUPPORTED_ARCH}
SOURCES ${XRAY_PROFILING_MODE_SOURCES}
CFLAGS ${XRAY_CFLAGS}
- DEFS ${XRAY_COMMON_DEFINITIONS})
+ DEFS ${XRAY_COMMON_DEFINITIONS}
+ DEPS ${XRAY_DEPS})
# We only support running on osx for now.
add_compiler_rt_runtime(clang_rt.xray
@@ -164,19 +172,23 @@ else() # not Apple
add_compiler_rt_object_libraries(RTXray
ARCHS ${arch}
SOURCES ${XRAY_SOURCES} ${${arch}_SOURCES} CFLAGS ${XRAY_CFLAGS}
- DEFS ${XRAY_COMMON_DEFINITIONS})
+ DEFS ${XRAY_COMMON_DEFINITIONS}
+ DEPS ${XRAY_DEPS})
add_compiler_rt_object_libraries(RTXrayFDR
ARCHS ${arch}
SOURCES ${XRAY_FDR_MODE_SOURCES} CFLAGS ${XRAY_CFLAGS}
- DEFS ${XRAY_COMMON_DEFINITIONS})
+ DEFS ${XRAY_COMMON_DEFINITIONS}
+ DEPS ${XRAY_DEPS})
add_compiler_rt_object_libraries(RTXrayBASIC
ARCHS ${arch}
SOURCES ${XRAY_BASIC_MODE_SOURCES} CFLAGS ${XRAY_CFLAGS}
- DEFS ${XRAY_COMMON_DEFINITIONS})
+ DEFS ${XRAY_COMMON_DEFINITIONS}
+ DEPS ${XRAY_DEPS})
add_compiler_rt_object_libraries(RTXrayPROFILING
ARCHS ${arch}
SOURCES ${XRAY_PROFILING_MODE_SOURCES} CFLAGS ${XRAY_CFLAGS}
- DEFS ${XRAY_COMMON_DEFINITIONS})
+ DEFS ${XRAY_COMMON_DEFINITIONS}
+ DEPS ${XRAY_DEPS})
# Common XRay archive for instrumented binaries.
add_compiler_rt_runtime(clang_rt.xray