summaryrefslogtreecommitdiff
path: root/cmake/Modules
diff options
context:
space:
mode:
authorShoaib Meenai <smeenai@fb.com>2019-06-15 04:40:16 +0000
committerShoaib Meenai <smeenai@fb.com>2019-06-15 04:40:16 +0000
commit15ba80d0a92f46465dcfddce402e35b444cfcf84 (patch)
tree80fd10b2321d78b7ae97ec7e4d50f1c667767f4a /cmake/Modules
parent8c96852b9821934b8eccb5fa9ec465cbacdd0f3e (diff)
downloadcompiler-rt-15ba80d0a92f46465dcfddce402e35b444cfcf84.tar.gz
[compiler-rt] Respect CMAKE_NM
The default nm executable may not be able to handle the architecture we're building the sanitizers for. Respect CMAKE_NM if it's set to ensure we're using the correct nm tool. Preserve the existing NM environment variable override to not break its users. Differential Revision: https://reviews.llvm.org/D63368 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@363483 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'cmake/Modules')
-rw-r--r--cmake/Modules/SanitizerUtils.cmake10
1 files changed, 8 insertions, 2 deletions
diff --git a/cmake/Modules/SanitizerUtils.cmake b/cmake/Modules/SanitizerUtils.cmake
index 64d3ed92c..699b03ae6 100644
--- a/cmake/Modules/SanitizerUtils.cmake
+++ b/cmake/Modules/SanitizerUtils.cmake
@@ -6,6 +6,12 @@ set(SANITIZER_GEN_DYNAMIC_LIST
set(SANITIZER_LINT_SCRIPT
${COMPILER_RT_SOURCE_DIR}/lib/sanitizer_common/scripts/check_lint.sh)
+if(CMAKE_NM)
+ set(SANITIZER_NM "${CMAKE_NM}")
+else()
+ set(SANITIZER_NM nm)
+endif()
+
# Create a target "<name>-<arch>-symbols" that would generate the list of
# symbols that need to be exported from sanitizer runtime "<name>". Function
# interceptors are exported automatically, user can also provide files with
@@ -30,7 +36,7 @@ macro(add_sanitizer_rt_symbols name)
add_custom_command(OUTPUT ${stamp}
COMMAND ${PYTHON_EXECUTABLE}
${SANITIZER_GEN_DYNAMIC_LIST} ${extra_args} $<TARGET_FILE:${target_name}>
- -o $<TARGET_FILE:${target_name}>.syms
+ --nm-executable "${SANITIZER_NM}" -o $<TARGET_FILE:${target_name}>.syms
COMMAND ${CMAKE_COMMAND} -E touch ${stamp}
DEPENDS ${target_name} ${SANITIZER_GEN_DYNAMIC_LIST} ${ARG_EXTRA}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
@@ -80,7 +86,7 @@ macro(add_sanitizer_rt_version_list name)
add_custom_command(OUTPUT ${vers}
COMMAND ${PYTHON_EXECUTABLE}
${SANITIZER_GEN_DYNAMIC_LIST} --version-list ${args}
- -o ${vers}
+ --nm-executable "${SANITIZER_NM}" -o ${vers}
DEPENDS ${SANITIZER_GEN_DYNAMIC_LIST} ${ARG_EXTRA} ${ARG_LIBS}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Generating version list for ${name}"