6030e1
%global maj_ver 15
ab2c6b
%global libomp_version %{maj_ver}.0.7
e10828
#global rc_ver 1
9bf2bd
%global libomp_srcdir openmp-%{libomp_version}%{?rc_ver:rc%{rc_ver}}.src
d30294
d30294
d30294
%ifarch ppc64le
d30294
%global libomp_arch ppc64
d30294
%else
d30294
%global libomp_arch %{_arch}
d30294
%endif
d30294
37ed99
%ifarch %{ix86}
37ed99
%bcond_with testpkg
37ed99
%else
37ed99
%bcond_without testpkg
37ed99
%endif
37ed99
d30294
Name: libomp
9bf2bd
Version: %{libomp_version}%{?rc_ver:~rc%{rc_ver}}
6030e1
Release: 1%{?dist}
d30294
Summary: OpenMP runtime for clang
d30294
d30294
License: NCSA
732d93
URL: http://openmp.llvm.org
9bf2bd
Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{libomp_version}%{?rc_ver:-rc%{rc_ver}}/%{libomp_srcdir}.tar.xz
9bf2bd
Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{libomp_version}%{?rc_ver:-rc%{rc_ver}}/%{libomp_srcdir}.tar.xz.sig
6030e1
Source2: release-keys.asc
655d27
Source3: run-lit-tests
655d27
Source4: lit.fedora.cfg.py
d30294
6030e1
BuildRequires: clang
6030e1
# For clang-offload-packager
6030e1
BuildRequires: clang-tools-extra
d30294
BuildRequires: cmake
655d27
BuildRequires: ninja-build
d30294
BuildRequires: elfutils-libelf-devel
d30294
BuildRequires: perl
d30294
BuildRequires: perl-Data-Dumper
d30294
BuildRequires: perl-Encode
d30294
BuildRequires: libffi-devel
e10828
# RHEL specific: libomp requires libterminfo
9bf2bd
BuildRequires: ncurses-devel
9bf2bd
e10828
# For gpg source verification
e10828
BuildRequires:	gnupg2
e10828
9bf2bd
9bf2bd
# libomptarget needs the llvm cmake files
9bf2bd
BuildRequires: llvm-devel
d30294
d30294
Requires: elfutils-libelf%{?isa}
d30294
d30294
# libomp does not support s390x.
d30294
ExcludeArch: s390x
d30294
d30294
%description
d30294
OpenMP runtime for clang.
d30294
d30294
%package devel
d30294
Summary: OpenMP header files
732d93
Requires: clang-resource-filesystem%{?isa} = %{version}
d30294
d30294
%description devel
d30294
OpenMP header files.
d30294
37ed99
%if %{with testpkg}
37ed99
d30294
%package test
d30294
Summary: OpenMP regression tests
655d27
Requires: %{name}%{?isa} = %{version}-%{release}
fe2d49
Requires: %{name}-devel%{?isa} = %{version}-%{release}
d30294
Requires: clang
d30294
Requires: llvm
d30294
Requires: gcc
d30294
Requires: gcc-c++
d30294
Requires: python3-lit
d30294
d30294
%description test
d30294
OpenMP regression tests
d30294
37ed99
%endif
37ed99
d30294
%prep
e10828
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
732d93
%autosetup -n %{libomp_srcdir} -p2
d30294
d30294
%build
732d93
# LTO causes build failures in this package.  Disable LTO for now
9bf2bd
# https://bugzilla.redhat.com/show_bug.cgi?id=1988155
732d93
%define _lto_cflags %{nil}
732d93
732d93
mkdir -p %{_vpath_builddir}
732d93
cd %{_vpath_builddir}
d30294
655d27
%cmake ..  -GNinja \
d30294
	-DLIBOMP_INSTALL_ALIASES=OFF \
6030e1
	-DCMAKE_MODULE_PATH=%{_libdir}/cmake/llvm \
9bf2bd
	-DLLVM_DIR=%{_libdir}/cmake/llvm \
6030e1
	-DCMAKE_INSTALL_INCLUDEDIR=%{_libdir}/clang/%{libomp_version}/include \
d30294
%if 0%{?__isa_bits} == 64
d30294
	-DOPENMP_LIBDIR_SUFFIX=64 \
d30294
%else
d30294
	-DOPENMP_LIBDIR_SUFFIX= \
d30294
%endif
e10828
	-DCMAKE_SKIP_RPATH:BOOL=ON
d30294
732d93
%cmake_build
d30294
d30294
d30294
%install
732d93
cd %{_vpath_builddir}
732d93
%cmake_install
d30294
37ed99
%if %{with testpkg}
d30294
# Test package setup
d30294
%global libomp_srcdir %{_datadir}/libomp/src/
d30294
%global libomp_testdir %{libomp_srcdir}/runtime/test/
d30294
%global lit_cfg %{libomp_testdir}/%{_arch}.site.cfg.py
d30294
%global lit_fedora_cfg %{_datadir}/libomp/lit.fedora.cfg.py
d30294
d30294
install -d %{buildroot}%{libomp_srcdir}/runtime
d30294
cp -R runtime/test  %{buildroot}%{libomp_srcdir}/runtime
d30294
cp -R runtime/src  %{buildroot}%{libomp_srcdir}/runtime
d30294
d30294
# Generate lit config files.  Strip off the last line that initiates the
d30294
# test run, so we can customize the configuration.
732d93
head -n -1 runtime/test/lit.site.cfg >> %{buildroot}%{lit_cfg}
d30294
d30294
# Install custom fedora config file
655d27
cp %{SOURCE4} %{buildroot}%{lit_fedora_cfg}
d30294
d30294
# Patch lit config files to load custom fedora config
d30294
echo "lit_config.load_config(config, '%{lit_fedora_cfg}')" >> %{buildroot}%{lit_cfg}
d30294
d30294
# Install test script
d30294
install -d %{buildroot}%{_libexecdir}/tests/libomp
655d27
install -m 0755 %{SOURCE3} %{buildroot}%{_libexecdir}/tests/libomp
d30294
37ed99
%endif
37ed99
d30294
# Remove static libraries with equivalent shared libraries
d30294
rm -rf %{buildroot}%{_libdir}/libarcher_static.a
d30294
655d27
%check
732d93
cd %{_vpath_builddir}
6030e1
%cmake_build --target check-openmp || true
d30294
d30294
%files
9bf2bd
%license LICENSE.TXT
d30294
%{_libdir}/libomp.so
e10828
%{_libdir}/libompd.so
d30294
%ifnarch %{arm}
d30294
%{_libdir}/libarcher.so
d30294
%endif
9bf2bd
%ifnarch %{ix86} %{arm}
6030e1
%{_libdir}/libomptarget.rtl.amdgpu.so.%{maj_ver}
6030e1
%{_libdir}/libomptarget.rtl.cuda.so.%{maj_ver}
6030e1
%{_libdir}/libomptarget.rtl.%{libomp_arch}.so.%{maj_ver}
9bf2bd
%endif
6030e1
%{_libdir}/libomptarget.so.%{maj_ver}
d30294
d30294
%files devel
9bf2bd
%{_libdir}/clang/%{libomp_version}/include/omp.h
9bf2bd
%{_libdir}/cmake/openmp/FindOpenMPTarget.cmake
d30294
%ifnarch %{arm}
9bf2bd
%{_libdir}/clang/%{libomp_version}/include/omp-tools.h
9bf2bd
%{_libdir}/clang/%{libomp_version}/include/ompt.h
6030e1
%{_libdir}/clang/%{libomp_version}/include/ompt-multiplex.h
6030e1
%endif
6030e1
%ifnarch %{ix86} %{arm}
6030e1
%{_libdir}/libomptarget.rtl.amdgpu.so
6030e1
%{_libdir}/libomptarget.rtl.cuda.so
6030e1
%{_libdir}/libomptarget.rtl.%{libomp_arch}.so
6030e1
%{_libdir}/libomptarget.devicertl.a
6030e1
%{_libdir}/libomptarget-amdgpu-*.bc
6030e1
%{_libdir}/libomptarget-nvptx-*.bc
d30294
%endif
6030e1
%{_libdir}/libomptarget.so
d30294
37ed99
%if %{with testpkg}
d30294
%files test
d30294
%{_datadir}/libomp
d30294
%{_libexecdir}/tests/libomp/
37ed99
%endif
d30294
d30294
%changelog
ab2c6b
* Thu Jan 19 2023 Tom Stellard <tstellar@redhat.com> - 15.0.7-1
ab2c6b
- Update to LLVM 15.0.7
ab2c6b
6030e1
* Tue Sep 06 2022 Nikita Popov <npopov@redhat.com> - 15.0.0-1
6030e1
- Update to LLVM 15.0.0
6030e1
37ed99
* Wed Aug 10 2022 Tom Stellard <tstellar@redhat.com> - 14.0.6-2
37ed99
- Drop -test sub-package on i686
37ed99
074c30
* Tue Jun 28 2022 Tom Stellard <tstellar@redhat.com> - 14.0.6-1
074c30
- 14.0.6 Release
074c30
84b4fd
* Wed May 18 2022 Timm Bäder <tbaeder@redhat.com> - 14.00-2
84b4fd
- Backport 40d3a0ba4d9e5452c0a68cfdaa8e88eb8ed5c63d to
84b4fd
  fix a strict aliasing issue.
84b4fd
e10828
* Thu Apr 07 2022 Timm Bäder <tbaeder@redhat.com> - 14.0.0-1
e10828
- Update to 14.0.0
e10828
1a3c60
* Thu Feb 03 2022 Tom Stellard <tstellar@redhat.com> - 13.0.1-1
1a3c60
- 13.0.1 Release
1a3c60
9bf2bd
* Fri Oct 15 2021 Tom Stellard <tstellar@redhat.com> - 13.0.0-1
9bf2bd
- 13.0.0 Release
9bf2bd
b0dbe9
* Fri Jul 16 2021 sguelton@redhat.com - 12.0.1-1
b0dbe9
- 12.0.1 release
b0dbe9
732d93
* Thu May 6 2021 sguelton@redhat.com - 12.0.0-1
732d93
- 12.0.0 release
732d93
91d189
* Thu Oct 29 2020 sguelton@redhat.com - 11.0.0-1
91d189
- 11.0.0 final release
91d189
655d27
* Mon Sep 21 2020 sguelton@redhat.com - 11.0.0-0.1.rc2
655d27
- 11.0.0-rc2 Release
655d27
99a6c2
* Fri Jul 24 2020 sguelton@redhat.com - 10.0.1-1
99a6c2
- 10.0.1 final
99a6c2
fe2d49
* Mon Jun 15 2020 sguelton@redhat.com - 10.0.0-2
fe2d49
- Better dependency specification, see rhbz#1841180
fe2d49
d30294
* Thu Apr 9 2020 sguelton@redhat.com - 10.0.0-1
d30294
- 10.0.0 final
d30294
d30294
* Thu Dec 19 2019 Tom Stellard <tstellar@redhat.com> - 9.0.1-1
d30294
- 9.0.1 Release
d30294
d30294
* Fri Sep 27 2019 Tom Stellard <tstellar@redhat.com> - 9.0.0-1
d30294
- 9.0.0 Release
d30294
d30294
* Thu Aug 1 2019 sguelton@redhat.com - 8.0.1-1
d30294
- 8.0.1 release
d30294
d30294
* Thu Jun 13 2019 sguelton@redhat.com - 8.0.1-0.1.rc2
d30294
- 8.0.1rc2 Release
d30294
d30294
* Mon Apr 29 2019 sguelton@redhat.com - 8.0.0-1
d30294
- 8.0.0 Release
d30294
d30294
* Fri Dec 14 2018 Tom Stellard <tstellar@redhat.com> - 7.0.1-1
d30294
- 7.0.1 Release
d30294
d30294
* Wed Dec 12 2018 Tom Stellard <tstellar@redhat.com> - 7.0.1-0.2.rc3
d30294
- Fix test failures on single-core systems
d30294
d30294
* Mon Dec 10 2018 Tom Stellard <tstellar@redhat.com> - 7.0.1-0.1.rc3
d30294
- 7.0.1-rc3 Release
d30294
d30294
* Tue Nov 27 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-1
d30294
- 7.0.0 Release
d30294
d30294
* Sat Nov 10 2018 Tom Stellard <tstellar@redhat.com> - 6.0.1-3
d30294
- Don't build libomp-test on i686
d30294
d30294
* Mon Oct 01 2018 Tom Stellard <tstellar@redhat.com> - 6.0.1-2
d30294
- Drop scl macros
d30294
d30294
* Wed Jul 11 2018 Tom Stellard <tstellar@redhat.com> - 6.0.1-1
d30294
- 6.0.1 Release
d30294
d30294
* Mon Jan 15 2018 Tom Stellard <tstellar@redhat.com> - 5.0.1-2
d30294
- Drop ExcludeArch: ppc64
d30294
d30294
* Thu Dec 21 2017 Tom Stellard <tstellar@redhat.com> - 5.0.1-1
d30294
- 5.0.1 Release.
d30294
d30294
* Wed Jun 21 2017 Tom Stellard <tstellar@redhat.com> - 4.0.1-1
d30294
- 4.0.1 Release.
d30294
d30294
* Wed Jun 07 2017 Tom Stellard <tstellar@redhat.com> - 4.0.0-3
d30294
- Rename libopenmp->libomp
d30294
d30294
* Fri May 26 2017 Tom Stellard <tstellar@redhat.com> - 4.0.0-2
d30294
- Disable build on s390x
d30294
d30294
* Mon May 15 2017 Tom Stellard <tstellar@redhat.com> - 4.0.0-1
d30294
- Initial version.