[llvm] [BOLT] Enable cross compilation of runtime libraries (PR #101180)
Gergely Bálint via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 3 05:27:46 PDT 2024
================
@@ -135,36 +134,168 @@ if (LLVM_INCLUDE_TESTS)
endif()
endif()
-if (BOLT_ENABLE_RUNTIME)
- message(STATUS "Building BOLT runtime libraries for X86")
- set(extra_args "")
- if(CMAKE_SYSROOT)
- list(APPEND extra_args -DCMAKE_SYSROOT=${CMAKE_SYSROOT})
+set(AARCH64_GNU_C_COMPILER aarch64-linux-gnu-gcc)
+set(AARCH64_GNU_CXX_COMPILER aarch64-linux-gnu-g++)
+set(X86_64_GNU_C_COMPILER x86_64-linux-gnu-gcc)
+set(X86_64_GNU_CXX_COMPILER x86_64-linux-gnu-g++)
+set(RISCV_GNU_C_COMPILER riscv64-linux-gnu-gcc)
+set(RISCV_GNU_CXX_COMPILER riscv64-linux-gnu-g++)
+
+function(bolt_rt_target_supported_clang target supported)
+
+ if(${target} STREQUAL ${HOST_NAME})
+ set(${supported} TRUE PARENT_SCOPE)
+ return()
+ elseif(${target} STREQUAL "X86")
+ set(CMAKE_CXX_FLAGS "--target=x86_64-linux-gnu")
+ elseif(${target} STREQUAL "AArch64")
+ set(CMAKE_CXX_FLAGS "--target=aarch64-linux-gnu")
+ elseif(${target} STREQUAL "RISCV")
+ set(CMAKE_CXX_FLAGS "--target=riscv64-linux-gnu")
+ endif()
+
+ try_compile(CROSS_COMP
+ ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeScratch
+ SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/test/test.cpp
+ CMAKE_FLAGS ${CMAKE_CXX_FLAGS}
+ TRY_COMP_OUTPUT)
----------------
bgergely0 wrote:
It's not clear where I need to pass this: `-DCMAKE_CXX_FLAGS=${CROSS_CXX_FLAGS}`.
If I just rename the variable `CMAKE_CXX_FLAGS` to anything else, the try compile stops working, and accepts all targets (then actually compiling for them fails later).
https://github.com/llvm/llvm-project/pull/101180
More information about the llvm-commits
mailing list