With this change, I was able to build and test for aarch64 & riscv64 on x86-64 host as follow: Pre-requisite: - cross build toolchain for aarch64 ``` $ sudo apt install binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu g++-aarch64-linux-gnu ``` - cross build toolchain for riscv64 ``` $ sudo apt install binutils-riscv64-linux-gnu gcc-riscv64-linux-gnu g++-riscv64-linux-gnu ``` - qemu user: ``` $ sudo apt install qemu qemu-user qemu-user-static ``` CMake invocation: ``` $ cmake ../runtimes -GNinja -DLLVM_ENABLE_RUNTIMES=libc -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLIBC_TARGET_TRIPLE=<aarch64-linux-gnu/riscv64-linux-gnu> -DCMAKE_BUILD_TYPE=Release -DLIBC_TEST_COMPILE_OPTIONS_DEFAULT="-static" $ ninja libc $ ninja check-libc ```
21 lines
673 B
CMake
21 lines
673 B
CMake
set(LLVM_LIBC_MPFR_INSTALL_PATH "" CACHE PATH "Path to where MPFR is installed (e.g. C:/src/install or ~/src/install)")
|
|
|
|
if(LLVM_LIBC_MPFR_INSTALL_PATH)
|
|
set(LIBC_TESTS_CAN_USE_MPFR TRUE)
|
|
elseif(LIBC_TARGET_OS_IS_GPU OR LLVM_LIBC_FULL_BUILD)
|
|
# In full build mode, the MPFR library should be built using our own facilities,
|
|
# which is currently not possible.
|
|
set(LIBC_TESTS_CAN_USE_MPFR FALSE)
|
|
else()
|
|
try_compile(
|
|
LIBC_TESTS_CAN_USE_MPFR
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
SOURCES
|
|
${LIBC_SOURCE_DIR}/utils/MPFRWrapper/check_mpfr.cpp
|
|
COMPILE_DEFINITIONS
|
|
${LIBC_COMPILE_OPTIONS_DEFAULT}
|
|
LINK_LIBRARIES
|
|
-lmpfr -lgmp -latomic
|
|
)
|
|
endif()
|