sys-devel/lld: Fix cross-compiling with -DLLVM_TABLEGEN_EXE

The Clang approach of using -DLLVM_TOOLS_BINARY_DIR does not work here.

Closes: https://bugs.gentoo.org/891993
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
This commit is contained in:
James Le Cuirot
2023-01-29 11:33:38 +00:00
parent 1ceb09f1f7
commit f522845a94
5 changed files with 55 additions and 5 deletions

View File

@@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{9..11} )
inherit cmake flag-o-matic llvm llvm.org python-any-r1
inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs
DESCRIPTION="The LLVM linker (link editor)"
HOMEPAGE="https://llvm.org/"
@@ -69,12 +69,22 @@ src_configure() {
-DLLVM_INCLUDE_TESTS=$(usex test)
-DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm"
)
use test && mycmakeargs+=(
-DLLVM_BUILD_TESTS=ON
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-DLLVM_LIT_ARGS="$(get_lit_flags)"
-DPython3_EXECUTABLE="${PYTHON}"
)
if tc-is-cross-compiler; then
has_version -b sys-devel/llvm:${LLVM_MAJOR} ||
die "sys-devel/llvm:${LLVM_MAJOR} is required on the build host."
mycmakeargs+=(
-DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen"
)
fi
cmake_src_configure
}

View File

@@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{9..11} )
inherit cmake flag-o-matic llvm llvm.org python-any-r1
inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs
DESCRIPTION="The LLVM linker (link editor)"
HOMEPAGE="https://llvm.org/"
@@ -69,11 +69,21 @@ src_configure() {
-DBUILD_SHARED_LIBS=ON
-DLLVM_INCLUDE_TESTS=$(usex test)
)
use test && mycmakeargs+=(
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-DLLVM_LIT_ARGS="$(get_lit_flags)"
-DPython3_EXECUTABLE="${PYTHON}"
)
if tc-is-cross-compiler; then
has_version -b sys-devel/llvm:${LLVM_MAJOR} ||
die "sys-devel/llvm:${LLVM_MAJOR} is required on the build host."
mycmakeargs+=(
-DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen"
)
fi
cmake_src_configure
}

View File

@@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{9..11} )
inherit cmake flag-o-matic llvm llvm.org python-any-r1
inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs
DESCRIPTION="The LLVM linker (link editor)"
HOMEPAGE="https://llvm.org/"
@@ -69,11 +69,21 @@ src_configure() {
-DBUILD_SHARED_LIBS=ON
-DLLVM_INCLUDE_TESTS=$(usex test)
)
use test && mycmakeargs+=(
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-DLLVM_LIT_ARGS="$(get_lit_flags)"
-DPython3_EXECUTABLE="${PYTHON}"
)
if tc-is-cross-compiler; then
has_version -b sys-devel/llvm:${LLVM_MAJOR} ||
die "sys-devel/llvm:${LLVM_MAJOR} is required on the build host."
mycmakeargs+=(
-DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen"
)
fi
cmake_src_configure
}

View File

@@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{9..11} )
inherit cmake flag-o-matic llvm llvm.org python-any-r1
inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs
DESCRIPTION="The LLVM linker (link editor)"
HOMEPAGE="https://llvm.org/"
@@ -69,11 +69,21 @@ src_configure() {
-DBUILD_SHARED_LIBS=ON
-DLLVM_INCLUDE_TESTS=$(usex test)
)
use test && mycmakeargs+=(
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-DLLVM_LIT_ARGS="$(get_lit_flags)"
-DPython3_EXECUTABLE="${PYTHON}"
)
if tc-is-cross-compiler; then
has_version -b sys-devel/llvm:${LLVM_MAJOR} ||
die "sys-devel/llvm:${LLVM_MAJOR} is required on the build host."
mycmakeargs+=(
-DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen"
)
fi
cmake_src_configure
}

View File

@@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{9..11} )
inherit cmake flag-o-matic llvm llvm.org python-any-r1
inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs
DESCRIPTION="The LLVM linker (link editor)"
HOMEPAGE="https://llvm.org/"
@@ -69,11 +69,21 @@ src_configure() {
-DBUILD_SHARED_LIBS=ON
-DLLVM_INCLUDE_TESTS=$(usex test)
)
use test && mycmakeargs+=(
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-DLLVM_LIT_ARGS="$(get_lit_flags)"
-DPython3_EXECUTABLE="${PYTHON}"
)
if tc-is-cross-compiler; then
has_version -b sys-devel/llvm:${LLVM_MAJOR} ||
die "sys-devel/llvm:${LLVM_MAJOR} is required on the build host."
mycmakeargs+=(
-DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen"
)
fi
cmake_src_configure
}