%global upstreamname hipCUB %global rocm_release 6.3 %global rocm_patch 0 %global rocm_version %{rocm_release}.%{rocm_patch} # Compiler is hipcc, which is clang based: %global toolchain rocm # hipcc does not support some clang flags %global build_cxxflags %(echo %{optflags} | sed -e 's/-fstack-protector-strong/-Xarch_host -fstack-protector-strong/' -e 's/-fcf-protection/-Xarch_host -fcf-protection/') # there is no debug package %global debug_package %{nil} # Option to test suite for testing on real HW: %bcond_with check %if %{with check} %global build_test ON %else %global build_test OFF %endif Name: hipcub Version: %{rocm_version} Release: 1%{?dist} Summary: ROCm port of CUDA CUB library Url: https://github.com/ROCm License: MIT and BSD-3-Clause Source0: %{url}/%{upstreamname}/archive/rocm-%{version}.tar.gz#/%{upstreamname}-%{version}.tar.gz BuildRequires: cmake BuildRequires: rocm-cmake BuildRequires: rocm-comgr-devel BuildRequires: rocm-compilersupport-macros BuildRequires: rocm-hip-devel BuildRequires: rocprim-static BuildRequires: rocm-runtime-devel BuildRequires: rocm-rpm-macros %if %{with check} BuildRequires: gtest-devel %endif # Only headers, cmake infra but noarch confuses the libdir # BuildArch: noarch # Only x86_64 works right now: ExclusiveArch: x86_64 %description hipCUB is a thin wrapper library on top of rocPRIM or CUB. It enables developers to port a project using the CUB library to the HIP layer to run on AMD hardware. In the ROCm environment, hipCUB uses the rocPRIM library as the backend. %package devel Summary: The %{upstreamname} development package Provides: %{name}-static = %{version}-%{release} Requires: rocprim-devel %description devel The %{upstreamname} development package. %prep %autosetup -p1 -n %{upstreamname}-rocm-%{version} # # The ROCMExportTargetsHeaderOnly.cmake file # generates a files that reference the install location of other files # Make this change so they match sed -i -e 's/ROCM_INSTALL_LIBDIR lib/ROCM_INSTALL_LIBDIR lib64/' cmake/ROCMExportTargetsHeaderOnly.cmake %build %cmake \ -DCMAKE_CXX_COMPILER=hipcc \ -DCMAKE_C_COMPILER=hipcc \ -DCMAKE_LINKER=%rocmllvm_bindir/ld.lld \ -DCMAKE_AR=%rocmllvm_bindir/llvm-ar \ -DCMAKE_RANLIB=%rocmllvm_bindir/llvm-ranlib \ -DBUILD_FILE_REORG_BACKWARD_COMPATIBILITY=OFF \ -DBUILD_TEST=%{build_test} \ -DCMAKE_PREFIX_PATH=%{rocmllvm_cmakedir}/.. \ -DROCM_SYMLINK_LIBS=OFF %cmake_build %install %cmake_install if [ -f %{buildroot}%{_prefix}/share/doc/hipcub/LICENSE.txt ]; then rm %{buildroot}%{_prefix}/share/doc/hipcub/LICENSE.txt fi %if %{with check} rm %{buildroot}%{_bindir}/* %endif %check %if %{with check} %ctest %endif %files devel %doc README.md %license LICENSE.txt %{_includedir}/%{name} %{_libdir}/cmake/%{name} %changelog * Tue Dec 10 2024 Tom Rix - 6.3.0-1 - Update to 6.3 * Sun Nov 10 2024 Tom Rix - 6.2.1-1 - Stub for tumbleweed