From: Shoaib Meenai Date: Tue, 2 Apr 2019 15:58:05 +0000 (+0000) Subject: [llvm-shlib] Fix cross-compilation for LLVM-C X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e29688690088f95b06ec188fbbfbee86f383e9b1;p=llvm [llvm-shlib] Fix cross-compilation for LLVM-C When we're cross-compiling, build and use a native llvm-nm instead of attempting to use the one from the target's build tree. A nice follow-up would be to add a cache variable to allow specifying a path to an external native llvm-nm instead of building one ourselves, similar to LLVM_TABLEGEN and LLVM_CONFIG_PATH. Differential Revision: https://reviews.llvm.org/D60025 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357487 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/llvm-shlib/CMakeLists.txt b/tools/llvm-shlib/CMakeLists.txt index af44b8ae853..bc5ea44e336 100644 --- a/tools/llvm-shlib/CMakeLists.txt +++ b/tools/llvm-shlib/CMakeLists.txt @@ -164,9 +164,17 @@ if(MSVC) set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/libllvm-c.exports) + if(CMAKE_CROSSCOMPILING) + build_native_tool(llvm-nm llvm_nm) + set(llvm_nm_target "${llvm_nm}") + else() + set(llvm_nm $) + set(llvm_nm_target llvm-nm) + endif() + add_custom_command(OUTPUT ${LLVM_EXPORTED_SYMBOL_FILE} - COMMAND ${PYTHON_EXECUTABLE} ${GEN_SCRIPT} --libsfile ${LIBSFILE} ${GEN_UNDERSCORE} --nm ${LLVM_TOOLS_BINARY_DIR}/llvm-nm -o ${LLVM_EXPORTED_SYMBOL_FILE} - DEPENDS ${LIB_NAMES} llvm-nm + COMMAND ${PYTHON_EXECUTABLE} ${GEN_SCRIPT} --libsfile ${LIBSFILE} ${GEN_UNDERSCORE} --nm "${llvm_nm}" -o ${LLVM_EXPORTED_SYMBOL_FILE} + DEPENDS ${LIB_NAMES} ${llvm_nm_target} COMMENT "Generating export list for LLVM-C" VERBATIM )