commit:     9956e0b95b641d60cf895b9f0607a218aba3d0ac
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 19 08:55:47 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Apr 20 11:42:51 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9956e0b9

llvm-runtimes/offload: 21.x now requires CXX=clang++ for deviceRTL

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/offload/metadata.xml               |  4 +++
 llvm-runtimes/offload/offload-21.0.0.9999.ebuild | 35 +++++++++++++-----------
 2 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/llvm-runtimes/offload/metadata.xml 
b/llvm-runtimes/offload/metadata.xml
index d13785bbe1b6..dcd9114d8dc8 100644
--- a/llvm-runtimes/offload/metadata.xml
+++ b/llvm-runtimes/offload/metadata.xml
@@ -5,6 +5,10 @@
                <email>[email protected]</email>
        </maintainer>
        <use>
+               <flag name="clang">
+                       Force building using installed clang (rather than
+                       the default CC/CXX).
+               </flag>
                <flag name="ompt">Enable OpenMP Tools Interface support</flag>
        </use>
        <upstream>

diff --git a/llvm-runtimes/offload/offload-21.0.0.9999.ebuild 
b/llvm-runtimes/offload/offload-21.0.0.9999.ebuild
index 1c79940848bd..57e770784ba8 100644
--- a/llvm-runtimes/offload/offload-21.0.0.9999.ebuild
+++ b/llvm-runtimes/offload/offload-21.0.0.9999.ebuild
@@ -4,14 +4,19 @@
 EAPI=8
 
 PYTHON_COMPAT=( python3_{10..13} )
-inherit cmake llvm.org python-any-r1 toolchain-funcs
+inherit cmake crossdev flag-o-matic llvm.org python-any-r1
+inherit toolchain-funcs
 
 DESCRIPTION="OpenMP offloading support"
 HOMEPAGE="https://openmp.llvm.org";
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0/${LLVM_SOABI}"
-IUSE="+debug ompt test llvm_targets_AMDGPU llvm_targets_NVPTX"
+IUSE="+clang +debug ompt test llvm_targets_AMDGPU llvm_targets_NVPTX"
+REQUIRED_USE="
+       llvm_targets_AMDGPU? ( clang )
+       llvm_targets_NVPTX? ( clang )
+"
 RESTRICT="!test? ( test )"
 
 RDEPEND="
@@ -30,6 +35,7 @@ DEPEND="
 BDEPEND="
        dev-lang/perl
        virtual/pkgconfig
+       clang? ( llvm-core/clang )
        llvm_targets_AMDGPU? ( llvm-core/clang[llvm_targets_AMDGPU] )
        llvm_targets_NVPTX? ( llvm-core/clang[llvm_targets_NVPTX] )
        test? (
@@ -63,6 +69,17 @@ pkg_setup() {
 }
 
 src_configure() {
+       if use clang && ! is_crosspkg; then
+               # Only do this conditionally to allow overriding with
+               # e.g. CC=clang-13 in case of breakage
+               if ! tc-is-clang ; then
+                       local -x CC=${CHOST}-clang
+                       local -x CXX=${CHOST}-clang++
+               fi
+
+               strip-unsupported-flags
+       fi
+
        # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
        use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
 
@@ -115,11 +132,6 @@ src_configure() {
        )
 
        cmake_src_configure
-
-       if [[ ${build_devicertl} == FALSE ]]; then
-               # clang requires libomptarget.devicertl.a, but it can be empty
-               > "${BUILD_DIR}"/libomptarget.devicertl.a || die
-       fi
 }
 
 src_test() {
@@ -128,12 +140,3 @@ src_test() {
 
        cmake_build check-offload
 }
-
-src_install() {
-       cmake_src_install
-
-       if [[ ! -f ${ED}/usr/$(get_libdir)/libomptarget.devicertl.a ]]
-       then
-               dolib.a "${BUILD_DIR}"/libomptarget.devicertl.a
-       fi
-}

Reply via email to