]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
llvm: set LLVM_HOST_TRIPLE for cross-compilation
authorHaseeb Ashraf <haseeb.ashraf@siemens.com>
Sat, 25 Jan 2025 05:41:18 +0000 (10:41 +0500)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 27 Jan 2025 15:47:06 +0000 (15:47 +0000)
The correct way to configure cmake for cross-compilation includes
setting the LLVM_HOST_TRIPLE as well.

Documentation Ref:
https://github.com/llvm/llvm-project/blob/llvmorg-19.1.6/llvm/docs/HowToCrossCompileLLVM.rst#configuring-cmake

This fixes bug when LLVM is cross-compiled for AAarch64 but it
was getting built with the triple of native build system instead of
the TARGET_SYS (aarch64-oe-linux) in my case.

`No available targets are compatible with triple "x86_64-unknown-linux-gnu"`

Signed-off-by: Haseeb Ashraf <haseeb.ashraf@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/llvm/llvm_19.1.6.bb

index 003676a65296d01879636033855c8a80cf12769b..3efd6c40c30e756b225bc0e4cbb9fbbca45c47b3 100644 (file)
@@ -82,12 +82,14 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \
 
 EXTRA_OECMAKE:append:class-target = "\
                   -DCMAKE_CROSSCOMPILING:BOOL=ON \
+                  -DLLVM_HOST_TRIPLE=${TARGET_SYS} \
                   -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \
                   -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \
                  "
 
 EXTRA_OECMAKE:append:class-nativesdk = "\
                   -DCMAKE_CROSSCOMPILING:BOOL=ON \
+                  -DLLVM_HOST_TRIPLE=${SDK_SYS} \
                   -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \
                   -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \
                  "