public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Konrad Kleine <kkleine@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/llvm] rawhide: Adapt to upstream libclc change
Date: Wed, 17 Jun 2026 15:40:48 GMT	[thread overview]
Message-ID: <178171084855.1.6966981952899781102.rpms-llvm-8f9f17e943f5@fedoraproject.org> (raw)

            A new commit has been pushed.

            Repo   : rpms/llvm
            Branch : rawhide
            Commit : 8f9f17e943f577ccc560d4940576162d026a861a
            Author : Konrad Kleine <kkleine@redhat.com>
            Date   : 2026-06-17T17:25:05+02:00
            Stats  : +56/-18 in 1 file(s)
            URL    : https://src.fedoraproject.org/rpms/llvm/c/8f9f17e943f577ccc560d4940576162d026a861a?branch=rawhide

            Log:
            Adapt to upstream libclc change

In
https://github.com/llvm/llvm-project/commit/121f5a96ff38ec0c5d5f7274b1b0ca0df26a1cee
and follow up modifications upstream has changed how to build libclc.

* Renable building libclc for Fedora LLVM snapshots.
* Add libclc.a files (See https://github.com/llvm/llvm-project/pull/197247)

---
diff --git a/llvm.spec b/llvm.spec
index 107cb83..ca49b57 100644
--- a/llvm.spec
+++ b/llvm.spec
@@ -228,8 +228,7 @@ end
 %endif
 
 %if %{maj_ver} >= 23 && 0%{undefined rhel} && %{without compat_build} && %{with snapshot_build}
-# TODO(kkleine): Re-enable once build failures are fixed.
-%bcond_with libclc
+%bcond_without libclc
 %else
 %bcond_with libclc
 %endif
@@ -1336,8 +1335,9 @@ targets is welcome.
 Summary:        Spirv subset of %{name}
 
 %description    -n %{pkg_name_libclc}-spirv
-The %{pkg_name_libclc}-spirv package contains the spirv*-mesa3d-.spv files only,
-which are the subset required for upstream Mesa OpenCL support with RustiCL.
+The %{pkg_name_libclc}-spirv package contains the spirv32-unknown-unknown/libclc.spv and
+spirv64-unknown-unknown/libclc.spv files only, which are the subset required for upstream
+Mesa OpenCL support with RustiCL.
 
 %endif
 #endregion libclc packages
@@ -1465,6 +1465,8 @@ cd llvm/utils/lit
 %global projects clang;clang-tools-extra;lld
 %global runtimes compiler-rt;openmp
 
+%global runtime_targets default
+
 %if %{with lldb}
 %global projects %{projects};lldb
 %endif
@@ -1494,8 +1496,12 @@ cd llvm/utils/lit
 %global runtimes %{runtimes};offload
 %endif
 
+%if %{with libclc} || %{with offload}
+%global runtime_targets %{runtime_targets};amdgcn-amd-amdhsa;nvptx64-nvidia-cuda
+%endif
+
 %if %{with libclc}
-%global runtimes %{runtimes};libclc
+%global runtime_targets %{runtime_targets};spirv32-unknown-unknown;spirv64-unknown-unknown;amdgcn-amd-amdhsa-llvm
 %endif
 
 %global gcc_triple --gcc-triple=%{_target_cpu}-redhat-linux
@@ -1741,11 +1747,17 @@ CLANG_LDFLAGS=$(strip_specs "$LDFLAGS $CLANG_LDFLAGS_EXTRA")
 # We reset the cxxflags to "" here because this is compiling for a GPU
 # target, where our cflags are either questionable or actively wrong.
 %global cmake_config_args %{cmake_config_args} \\\
-	-DLLVM_RUNTIME_TARGETS='default;amdgcn-amd-amdhsa;nvptx64-nvidia-cuda' \\\
-	-DRUNTIMES_nvptx64-nvidia-cuda_LLVM_ENABLE_RUNTIMES=openmp \\\
-	-DRUNTIMES_amdgcn-amd-amdhsa_LLVM_ENABLE_RUNTIMES=openmp \\\
-	-DRUNTIMES_amdgcn-amd-amdhsa_CMAKE_CXX_FLAGS="" \\\
-	-DRUNTIMES_nvptx64-nvidia-cuda_CMAKE_CXX_FLAGS=""
+  -DRUNTIMES_amdgcn-amd-amdhsa_CMAKE_CXX_FLAGS="" \\\
+  -DRUNTIMES_nvptx64-nvidia-cuda_CMAKE_CXX_FLAGS="" \\\
+  -DRUNTIMES_amdgcn-amd-amdhsa_CMAKE_EXE_LINKER_FLAGS="" \\\
+  -DRUNTIMES_nvptx64-nvidia-cuda_CMAKE_EXE_LINKER_FLAGS="" \\\
+  -DRUNTIMES_amdgcn-amd-amdhsa_CMAKE_SHARED_LINKER_FLAGS="" \\\
+  -DRUNTIMES_nvptx64-nvidia-cuda_CMAKE_SHARED_LINKER_FLAGS="" \\\
+  -DRUNTIMES_amdgcn-amd-amdhsa_CMAKE_MODULE_LINKER_FLAGS="" \\\
+  -DRUNTIMES_nvptx64-nvidia-cuda_CMAKE_MODULE_LINKER_FLAGS="" \\\
+  -DRUNTIMES_amdgcn-amd-amdhsa_CMAKE_STATIC_LINKER_FLAGS="" \\\
+  -DRUNTIMES_nvptx64-nvidia-cuda_CMAKE_STATIC_LINKER_FLAGS="" \\\
+  -DRUNTIMES_amdgcn-amd-amdhsa_LLVM_ENABLE_RUNTIMES="openmp"
 
 %if 0%{?__isa_bits} == 64
 # The following shouldn't be required, but due to a bug, we have to be
@@ -1784,12 +1796,31 @@ CLANG_LDFLAGS=$(strip_specs "$LDFLAGS $CLANG_LDFLAGS_EXTRA")
 
 #region libclc options
 %if %{with libclc}
-# Build SPIR-V targets with the SPIR-V backend.
+
+# Build SPIR-V targets with the SPIR-V backend, reset CXX flags and build libclc
+# runtime
 %global cmake_config_args %{cmake_config_args} \\\
-  -DLIBCLC_USE_SPIRV_BACKEND:BOOL=ON
+  -DRUNTIMES_spirv32-unknown-unknown_LIBCLC_USE_SPIRV_BACKEND:BOOL=ON \\\
+  -DRUNTIMES_spirv64-unknown-unknown_LIBCLC_USE_SPIRV_BACKEND:BOOL=ON \\\
+  -DRUNTIMES_spirv32-unknown-unknown_CMAKE_CXX_FLAGS="" \\\
+  -DRUNTIMES_spirv64-unknown-unknown_CMAKE_CXX_FLAGS="" \\\
+  -DRUNTIMES_amdgcn-amd-amdhsa-llvm_CMAKE_CXX_FLAGS="" \\\
+  -DRUNTIMES_spirv32-unknown-unknown_LLVM_ENABLE_RUNTIMES="libclc" \\\
+  -DRUNTIMES_spirv64-unknown-unknown_LLVM_ENABLE_RUNTIMES="libclc" \\\
+  -DRUNTIMES_amdgcn-amd-amdhsa-llvm_LLVM_ENABLE_RUNTIMES="libclc"
 %endif
 #endregion libclc options
 
+%if %{with offload} ||  %{with libclc}
+# For the NVIDIA triple we potentially build both, openmp and libclc
+%global combined_runtimes %{?with_offload:openmp%{?with_libclc:;}}%{?with_libclc:libclc}
+%global cmake_config_args %{cmake_config_args} \\\
+  -DRUNTIMES_nvptx64-nvidia-cuda_LLVM_ENABLE_RUNTIMES="%{combined_runtimes}"
+
+%global cmake_config_args %{cmake_config_args} \\\
+  -DLLVM_RUNTIME_TARGETS="%{runtime_targets}"
+%endif
+
 #region test options
 %global cmake_config_args %{cmake_config_args} \\\
 	-DLLVM_BUILD_TESTS:BOOL=ON \\\
@@ -2634,6 +2665,13 @@ reset_test_opts
 %cmake_build --target check-lit
 #endregion Test LLVM lit
 
+#region Test libclc
+%if %{with libclc}
+reset_test_opts
+%cmake_build --target check-libclc
+%endif
+#endregion Test libclc
+
 #region Test LLVM
 reset_test_opts
 # Xfail testing of update utility tools
@@ -3797,17 +3835,17 @@ fi
 %license libclc/LICENSE.TXT
 %doc libclc/README.md libclc/CREDITS.TXT
 %{_prefix}/lib/clang/%{maj_ver}/lib/amdgcn-amd-amdhsa-llvm/libclc.bc
-%{_prefix}/lib/clang/%{maj_ver}/lib/nvptx64--/libclc.bc
-%{_prefix}/lib/clang/%{maj_ver}/lib/nvptx64--nvidiacl/libclc.bc
+%{_prefix}/lib/clang/%{maj_ver}/lib/amdgcn-amd-amdhsa-llvm/libclc.a
 %{_prefix}/lib/clang/%{maj_ver}/lib/nvptx64-nvidia-cuda/libclc.bc
-%{_prefix}/lib/clang/%{maj_ver}/lib/spir--/libclc.bc
-%{_prefix}/lib/clang/%{maj_ver}/lib/spir64--/libclc.bc
+%{_prefix}/lib/clang/%{maj_ver}/lib/nvptx64-nvidia-cuda/libclc.a
 
 %files -n %{pkg_name_libclc}-spirv
 %license libclc/LICENSE.TXT
 %doc libclc/README.md libclc/CREDITS.TXT
-%{_prefix}/lib/clang/%{maj_ver}/lib/spirv32--/libclc.spv
-%{_prefix}/lib/clang/%{maj_ver}/lib/spirv64--/libclc.spv
+%{_prefix}/lib/clang/%{maj_ver}/lib/spirv32-unknown-unknown/libclc.spv
+%{_prefix}/lib/clang/%{maj_ver}/lib/spirv32-unknown-unknown/libclc.a
+%{_prefix}/lib/clang/%{maj_ver}/lib/spirv64-unknown-unknown/libclc.spv
+%{_prefix}/lib/clang/%{maj_ver}/lib/spirv64-unknown-unknown/libclc.a
 %endif
 #endregion libclc files
 

                 reply	other threads:[~2026-06-17 15:40 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178171084855.1.6966981952899781102.rpms-llvm-8f9f17e943f5@fedoraproject.org \
    --to=kkleine@redhat.com \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox