diff --git a/openmp-15.0.7.src.tar.xz b/openmp-15.0.7.src.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..636471de60579c4a45952548fa9807d7fb7cfa99 Binary files /dev/null and b/openmp-15.0.7.src.tar.xz differ diff --git a/openmp.spec b/openmp.spec new file mode 100644 index 0000000000000000000000000000000000000000..8c957da8812c2c71a44706d862edad297dc86dce --- /dev/null +++ b/openmp.spec @@ -0,0 +1,138 @@ +%bcond_without sys_llvm +%bcond_with check + +%global toolchain clang + +%global maj_ver 15 +%global min_ver 0 +%global patch_ver 7 +%global openmp_version %{maj_ver}.%{min_ver}.%{patch_ver} +%global openmp_srcdir openmp-%{openmp_version}.src + +%if %{with sys_llvm} +%global pkg_name libomp +%global install_prefix %{_prefix} +%else +%global pkg_name libomp%{maj_ver} +%global install_prefix %{_libdir}/llvm%{maj_ver} +%endif + +%global install_includedir %{install_prefix}/include +%global install_libdir %{install_prefix}/%{_lib} +%global install_libexecdir %{install_prefix}/libexec +%global install_sharedir %{install_prefix}/share + +%ifarch ppc64le +%global libomp_arch ppc64 +%else +%global libomp_arch %{_arch} +%endif + +Name: %{pkg_name} +Version: %{openmp_version} +Release: 1 +Summary: OpenMP runtime for clang + +License: Apache License 2.0 +URL: http://openmp.llvm.org +Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{openmp_version}/%{openmp_srcdir}.tar.xz + +BuildRequires: gcc gcc-c++ +BuildRequires: cmake +BuildRequires: ninja-build +BuildRequires: elfutils-libelf-devel +BuildRequires: perl +BuildRequires: perl-Data-Dumper +BuildRequires: perl-Encode +BuildRequires: libffi-devel +%if "%toolchain" == "clang" +BuildRequires: clang +BuildRequires: clang-tools-extra +%endif + +%if %{with sys_llvm} +BuildRequires: llvm-devel llvm-test +%else +BuildRequires: llvm%{maj_ver}-devel +BuildRequires: llvm%{maj_ver}-test +%endif + +Requires: elfutils-libelf%{?isa} + +%description +OpenMP runtime for clang. + +%package devel +Summary: OpenMP header files +Requires: %{name}%{?isa} = %{version}-%{release} +%if %{with sys_llvm} +Requires: clang-resource-filesystem%{?isa} = %{version} +%else +Requires: clang%{maj_ver}-resource-filesystem%{?isa} = %{version} +%endif + +%description devel +OpenMP header files. + + +%prep +%autosetup -n %{openmp_srcdir} -p2 + +%build + +%cmake -GNinja \ + -DCMAKE_INSTALL_PREFIX=%{install_prefix} \ + -DLIBOMP_INSTALL_ALIASES=OFF \ + -DCMAKE_MODULE_PATH=%{install_libdir}/cmake/llvm \ + -DLLVM_DIR=%{install_libdir}/cmake/llvm \ + -DCMAKE_INSTALL_INCLUDEDIR=%{install_libdir}/clang/%{openmp_version}/include \ +%if 0%{?__isa_bits} == 64 + -DOPENMP_LIBDIR_SUFFIX=64 \ +%else + -DOPENMP_LIBDIR_SUFFIX= \ +%endif + -DCMAKE_SKIP_RPATH:BOOL=ON + +%ninja_build + +%install +%ninja_install +rm -rf %{buildroot}%{install_libdir}/libarcher_static.a + +%check + +%files +%license LICENSE.TXT +%{install_libdir}/libomp.so +%{install_libdir}/libompd.so +%ifnarch %{arm} +%{install_libdir}/libarcher.so +%endif +%ifnarch %{ix86} %{arm} +%{install_libdir}/libomptarget.rtl.amdgpu.so.%{maj_ver} +%{install_libdir}/libomptarget.rtl.cuda.so.%{maj_ver} +%{install_libdir}/libomptarget.rtl.%{libomp_arch}.so.%{maj_ver} +%endif +%{install_libdir}/libomptarget.so.%{maj_ver} + +%files devel +%{install_libdir}/clang/%{openmp_version}/include/omp.h +%{install_libdir}/cmake/openmp/FindOpenMPTarget.cmake +%ifnarch %{arm} +%{install_libdir}/clang/%{openmp_version}/include/omp-tools.h +%{install_libdir}/clang/%{openmp_version}/include/ompt.h +%{install_libdir}/clang/%{openmp_version}/include/ompt-multiplex.h +%endif +%ifnarch %{ix86} %{arm} +%{install_libdir}/libomptarget.rtl.amdgpu.so +%{install_libdir}/libomptarget.rtl.cuda.so +%{install_libdir}/libomptarget.rtl.%{libomp_arch}.so +%{install_libdir}/libomptarget.devicertl.a +%{install_libdir}/libomptarget-amdgpu-*.bc +%{install_libdir}/libomptarget-nvptx-*.bc +%endif +%{install_libdir}/libomptarget.so + +%changelog +* Thu Jul 20 2023 cf-zhao - 15.0.7-1 +- Initial version to 15.0.7