From 9956e0b95b641d60cf895b9f0607a218aba3d0ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sat, 19 Apr 2025 10:55:47 +0200 Subject: [PATCH] llvm-runtimes/offload: 21.x now requires CXX=clang++ for deviceRTL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- llvm-runtimes/offload/metadata.xml | 4 +++ .../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 d13785bbe1b61..dcd9114d8dc89 100644 --- a/llvm-runtimes/offload/metadata.xml +++ b/llvm-runtimes/offload/metadata.xml @@ -5,6 +5,10 @@ llvm@gentoo.org + + Force building using installed clang (rather than + the default CC/CXX). + Enable OpenMP Tools Interface support diff --git a/llvm-runtimes/offload/offload-21.0.0.9999.ebuild b/llvm-runtimes/offload/offload-21.0.0.9999.ebuild index 1c79940848bd9..57e770784ba80 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 -}