Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libclc for openSUSE:Factory checked in at 2026-10-18 22:52:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libclc (Old) and /work/SRC/openSUSE:Factory/.libclc.new.3698736 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libclc" Sun Oct 18 22:52:36 2026 rev:40 rq:1385169 version:0.2.0+llvm23.1.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libclc/libclc.changes 2026-08-28 19:46:29.219098695 +0200 +++ /work/SRC/openSUSE:Factory/.libclc.new.3698736/libclc.changes 2026-10-18 22:52:37.589364644 +0200 @@ -1,0 +2,161 @@ +Sun Oct 4 22:03:38 UTC 2026 - Aaron Puchert <[email protected]> + +- Update to version 23.1.0. + * Compile w/o linking builtins with SPIRV backend + * Rework libclc naming convention to use the triple + * Make output filename configurable; rename top-level targets + * Bring back fma for clspv + * Stop building amdgpu targets all as tahiti + * Fix broken symlinks + * Fix memory_scope and memory_order of *mem_fence builtins + * Add __clc_issubnormal + * Remove r600 support + * Enable -ffp-contract=fast-honor-pragmas globally + * Compile with -fdenormal-fp-math=dynamic + * Add subnormals back to clspv + * Reimplement amdhsa workitem functions + * Fix checking for arch including OS in wrong place + * Implement address space qualifier functions for amdgpu + * Implement get_enqueued_local_size + * Reimplement amdhsa dispatch size functions + * Define work_group_barrier + * Add atomic_work_item_fence + * Add amdgpu subgroup functions + * Add sub_group_broadcast + * Reimplement amdhsa get_num_groups + * Implement get_global_linear_id and get_local_linear_id + * Avoid duplicated get_local_size/get_global_size functions + * Fix amdgpu get_enqueued_local_size + * Add amdgpu wait_group_events + * Remove target definitions of opencl workitem functions + * Add __printf_alloc implementation + * Move get_global_id into clc + * Use enqueued local size to implement get_global_id + * Use separate acquire and release fences in work_group_barrier + * Remove target opencl copies of mem_fence + * Move sub_group_barrier to clc + * Rename sub_group_broadcast header + * Move subgroup functions into clc + * Add work_group_any/work_group_all implementation + * Add work_group_broadcast + * Fix wait_group_events build for targets without generic + * Add uintptr_t overloads of atomic_fetch_add and sub + * Correctly declare __clc_get_max_sub_group_size as taking no + arguments + * Add sub_group_reduce_* functions + * Fix logic for fence ordering based on mem flags + * Add work_group_reduce_* functions + * Remove old mesa amdgcn targets + * Replace last of `opencl` atomics with `__scoped_` versions + * Merge amdgpu and amdgcn directories + * Remove amdgpu sqrt override + * Use elementwise exp for exp functions + * Fix missing clc prefixes on some clc files + * Remove unused and incorrect pkgconf file + * Add div_cr utility function + * Add sqrt_cr utility + * Add fast version utility functions for div, sqrt and reciprocal + * Use frexp builtins to implement frexp for amdgpu + * Add gentype infinity macro + * Add frexp_exp utility function + * Update hypot, ilogb, logb implementation + * Add ep utility + * Update f64 log implementations + * Replace fmod implementation with elementwise builtin + * Replace nextafter implementation + * Improve fdim handling + * Improve minmag and maxmag + * Fix mismatch in declared and defined function name + * Disable contract in trig reductions + * Remove attempt at subnormal flush from trig functions + * Add generic clc_mem_fence instruction + * Fix compiler check with --target=spirv64 and + -disable-llvm-passes + * Use struct for ep pair + * Use fshr builtin in sincos helpers + * Move edge case handling of trig functions + * Update pow functions + * Use frexp and ldexp in trig reduction instead of bit hacking + * Use small trig reduction for nan + * Improve large float trig reduction + * Use select function instead of ?: for some fp selects + * Clean up sincos macro usage + * Improve float trig function handling + * Fix vector float tan + * Move FLT_MIN gentype macros + * Move subnormal config file to clc + * Invert subnormal checks + * Really implement denormal config checks + * Update f64 trig functions + * Add canonicalize utility functions + * Fix nextafter with -cl-denorms-are-zero + * Stop implementing sincos as separate sin and cos + * Really implement half trig functions + * Restore previous generic fmod implementation + * Replace flush_if_daz implementation + * Implement sin and cos with sincos + * Update trigpi functions + * Rewrite log implementation as gentype inc file + * Use log intrinsic for half and float cases for amdgpu + * Override cbrt for AMDGPU + * Update acos, remquo, asin, atan + * Implement remainder with remquo + * Simplify rtz conversion + * Use nextup and nextdown in place of nextafter + * Fix -cl-denorms-are-zero for rtp and rtn conversions + * Update log1p, lgamma_r + * Improve tgamma handling + * Update expm1, sinh, cosh, tanh, asinh, acosh, atanh, atanpi, + asinpi, acospi + * Unify fast FMA controls + * Force assuming fast float fma for AMDGPU + * clspv does not need workaround for flush_if_daz + * Fix amdgpu subgroup reduce for max u64 + * Fix amdgpu sub_group_broadcast for double + * Fix directly adding vector booleans + * Use prefetch builtin to implement default prefetch + * Update erf, erfc, atan2, atan2pi + * Implement get_sub_group_id with get_local_linear_id + * Fix missing overloads for atomic_fetch_add/sub + * Add subgroup scan functions + * Add work group scan functions + * Partially implement nonuniform subgroup reduce functions + * Simplify fract implementation + * Use special division for atan2 for DAZ + * Refine generic __clc_get_sub_group_size with fast full + sub-group path + * Fix atomic_fetch_add/sub overloads for uintptr_t + * Allow testing unresolved symbols on multiple libraries + * Consolidate `amdgpu` and `amdgcn` architectures consistently + * Create a static `.a` file in addition to the `.bc` file + * Apply hidden visibility to amdgpu / nvptx builds + * Add optimized DPP scan functions for AMDGPU + * Move sources collection into libclc_add_builtin_library, merge + opencl library creation into libclc_add_library + * Fix .cl tests in standalone build + * Optimize and vectorize signbit + * Use float sw_fma for spirv*-mesa-mesa3d targets + * Use generic spirv*-unknown-unknown clang triple for SPIR-V + targets + * Improve performance and precision of reciprocal functions + * Use FMA for the pi reconstruction in acos / atan + * Use __CLC_SCALAR instead of nonexistant __CLC_SCALAR1 for sin + * Use unchecked division for f64 AMDGPU reciprocal + * Delete wrong implementation nvptx clc_isinf +- Produce the library for spirv32/spirv64, as required for Mesa. +- No longer provide libclc(llvmN), because we no longer ship LLVM + bit code (only SPIR-V). +- Always pin compiler to matching version. +- Disabling LTO no longer needed, C/C++ flags are ignored anyway. +- Drop rpmlintrc that is no longer needed. +- Drop obsolete patches: + * fix-subnormal-build.patch + * mark-clc-flush-denormal-if-not-supported-as-static.patch +- Rebase cmake-use-imported-targets.patch. + +------------------------------------------------------------------- +Wed Sep 30 15:13:45 UTC 2026 - Stefan Dirsch <[email protected]> + +- require llvm23 also for sle16 + +------------------------------------------------------------------- Old: ---- fix-subnormal-build.patch libclc-22.1.0.src.tar.xz libclc-rpmlintrc libclc.keyring mark-clc-flush-denormal-if-not-supported-as-static.patch New: ---- libclc-23.1.0.src.tar.xz ----------(Old B)---------- Old:- Drop obsolete patches: * fix-subnormal-build.patch * mark-clc-flush-denormal-if-not-supported-as-static.patch Old: * fix-subnormal-build.patch * mark-clc-flush-denormal-if-not-supported-as-static.patch - Rebase cmake-use-imported-targets.patch. ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libclc.spec ++++++ --- /var/tmp/diff_new_pack.Wqv9D8/_old 2026-10-18 22:52:38.297394388 +0200 +++ /var/tmp/diff_new_pack.Wqv9D8/_new 2026-10-18 22:52:38.299394472 +0200 @@ -16,13 +16,12 @@ # -%define _libclc_llvm_ver 22.1.0 -%define _version %_libclc_llvm_ver%{?_rc:rc%_rc} -%define _tagver %_libclc_llvm_ver%{?_rc:-rc%_rc} - -%if 0%{?suse_version} < 1699 -%global _clang_version 22 -%endif +%global _libclc_llvm 23 +%global _libclc_llvm_ver %{_libclc_llvm}.1.0 +%global _version %_libclc_llvm_ver%{?_rc:rc%_rc} +%global _tagver %_libclc_llvm_ver%{?_rc:-rc%_rc} + +%global _libclc_targets spirv{32,64}-unknown-unknown Name: libclc Version: 0.2.0+llvm%{_libclc_llvm_ver}%{?_rc:~rc%_rc} @@ -34,17 +33,12 @@ # Built manually via "git archive --prefix=%{name}-%{_version}.src/ llvmorg-%{_tagver} . # | xz -T0 >../%{name}-%{_version}.src.tar.xz" until upstream provides tarballs again. Source0: %{name}-%{_version}.src.tar.xz -Source100: %{name}-rpmlintrc -Source101: https://releases.llvm.org/release-keys.asc#/%{name}.keyring -Patch1: fix-subnormal-build.patch -Patch2: mark-clc-flush-denormal-if-not-supported-as-static.patch -Patch3: cmake-use-imported-targets.patch -BuildRequires: clang%{?_clang_version}-devel +Patch1: cmake-use-imported-targets.patch +BuildRequires: clang%{_libclc_llvm}-devel BuildRequires: cmake -BuildRequires: llvm%{?_clang_version}-devel +BuildRequires: llvm%{_libclc_llvm}-devel BuildRequires: python3-base BuildRequires: pkgconfig(LLVMSPIRVLib) -Provides: libclc(llvm%{_llvm_sonum}) BuildArch: noarch %description @@ -55,23 +49,27 @@ %autopatch -p2 %build -# The libraries are bitcode files, so LTO is neither supported nor does it help. -%define _lto_cflags %{nil} - -%cmake \ - -DCMAKE_C_COMPILER=clang%{?_clang_version:-%{_clang_version}} \ - -DCMAKE_CXX_COMPILER=clang++%{?_clang_version:-%{_clang_version}} \ -%if 0%{?suse_version} < 1550 - -DLIBCLC_TARGETS_TO_BUILD="amdgcn--;amdgcn-amd-amdhsa;amdgcn-mesa-mesa3d;r600--;nvptx64--;nvptx64--nvidiacl;nvptx64-nvidia-cuda" \ -%endif - -DENABLE_RUNTIME_SUBNORMAL:BOOL=ON -%cmake_build +%define __builddir build-${target} +for target in %{_libclc_targets} +do + pushd . + %cmake \ + -DCMAKE_C_COMPILER=clang-%{_libclc_llvm} \ + -DCMAKE_CXX_COMPILER=clang++-%{_libclc_llvm} \ + -DLLVM_DEFAULT_TARGET_TRIPLE=${target} + %cmake_build + popd +done %install -%cmake_install +for target in %{_libclc_targets} +do + %cmake_install + # We don't need the static library. + rm %{buildroot}%{_datadir}/clc/${target}/libclc.a +done %files %license LICENSE.TXT %{_datadir}/clc -%{_datadir}/pkgconfig/libclc.pc ++++++ cmake-use-imported-targets.patch ++++++ --- /var/tmp/diff_new_pack.Wqv9D8/_old 2026-10-18 22:52:38.320395354 +0200 +++ /var/tmp/diff_new_pack.Wqv9D8/_new 2026-10-18 22:52:38.323395480 +0200 @@ -3,38 +3,30 @@ where to find them. diff --git a/libclc/CMakeLists.txt b/libclc/CMakeLists.txt -index c17b350..9a28d58 100644 +index 5829bd9..d805737 100644 --- a/libclc/CMakeLists.txt +++ b/libclc/CMakeLists.txt -@@ -63,6 +63,7 @@ if( LIBCLC_STANDALONE_BUILD OR CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DI - set( LIBCLC_STANDALONE_BUILD TRUE ) - - find_package(LLVM REQUIRED HINTS "${LLVM_CMAKE_DIR}") -+ find_package(Clang REQUIRED) +@@ -59,8 +59,7 @@ if( LIBCLC_STANDALONE_BUILD OR CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DI include(AddLLVM) - message( STATUS "libclc LLVM version: ${LLVM_PACKAGE_VERSION}" ) -@@ -74,8 +75,7 @@ if( LIBCLC_STANDALONE_BUILD OR CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DI - # Import required tools - if( NOT EXISTS ${LIBCLC_CUSTOM_LLVM_TOOLS_BINARY_DIR} ) - foreach( tool IN ITEMS clang llvm-as llvm-link opt ) -- find_program( LLVM_TOOL_${tool} ${tool} PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH ) -- set( ${tool}_exe ${LLVM_TOOL_${tool}} ) -+ set( ${tool}_exe ${tool} ) - set( ${tool}_target ) - endforeach() - endif() -@@ -134,12 +134,6 @@ if( EXISTS ${LIBCLC_CUSTOM_LLVM_TOOLS_BINARY_DIR} ) + foreach( tool IN ITEMS llvm-link opt ) +- find_program( LLVM_TOOL_${tool} ${tool} PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH ) +- set( ${tool}_exe ${LLVM_TOOL_${tool}} ) ++ set( ${tool}_exe ${tool} ) + set( ${tool}_target ) endforeach() + +@@ -124,12 +123,6 @@ if(LIBCLC_TARGET_ARCH IN_LIST LIBCLC_ARCHS_SPIRV) + endif() endif() --foreach( tool IN ITEMS clang opt llvm-as llvm-link ) +-foreach( tool IN ITEMS opt llvm-link ) - if( NOT EXISTS "${${tool}_exe}" AND "${${tool}_target}" STREQUAL "" ) - message( FATAL_ERROR "libclc toolchain incomplete - missing tool ${tool}!" ) - endif() -endforeach() - - if( NOT LIBCLC_USE_SPIRV_BACKEND ) - # llvm-spirv is an optional dependency, used to build spirv-* targets when - # the SPIR-V backend hasn't been requested. It may be provided in-tree or + # Determine the clang target triple. + set(clang_triple ${LIBCLC_TARGET}) + ++++++ libclc-22.1.0.src.tar.xz -> libclc-23.1.0.src.tar.xz ++++++ ++++ 41101 lines of diff (skipped)
