diff --git a/.gitignore b/.gitignore index d62ef01..5bfb61d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/openmp-14.0.6.src.tar.xz -SOURCES/tstellar-gpg-key.asc +SOURCES/openmp-15.0.7.src.tar.xz +SOURCES/release-keys.asc diff --git a/.libomp.metadata b/.libomp.metadata index 3801658..a7af112 100644 --- a/.libomp.metadata +++ b/.libomp.metadata @@ -1,2 +1,2 @@ -647f1db43c1bb3b8b7c947dd54a1c3d247685d68 SOURCES/openmp-14.0.6.src.tar.xz -b8d2648a01d36ed0186fd2c5af325fd28797f9a0 SOURCES/tstellar-gpg-key.asc +d8a0b4314a65a4ad3a82fbcbc59876cfcf09c95b SOURCES/openmp-15.0.7.src.tar.xz +347bdd5ee6d6b93c9644c268511815912c0fb2dc SOURCES/release-keys.asc diff --git a/SOURCES/0001-PATCH-openmp-CMake-Make-LIBOMP_HEADERS_INSTALL_PATH-.patch b/SOURCES/0001-PATCH-openmp-CMake-Make-LIBOMP_HEADERS_INSTALL_PATH-.patch deleted file mode 100644 index e7febcf..0000000 --- a/SOURCES/0001-PATCH-openmp-CMake-Make-LIBOMP_HEADERS_INSTALL_PATH-.patch +++ /dev/null @@ -1,27 +0,0 @@ -From f2c9c1c9cda831a4305e2dc8899d630ed727353a Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Tue, 16 May 2017 11:52:19 -0400 -Subject: [PATCH] [PATCH][openmp] CMake: Make LIBOMP_HEADERS_INSTALL_PATH a - cache variable when bulding standalone - -This way it can be overriden on the command line. ---- - openmp/runtime/src/CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt -index 822f9ca..583a3c3 100644 ---- a/openmp/runtime/src/CMakeLists.txt -+++ b/openmp/runtime/src/CMakeLists.txt -@@ -346,7 +346,7 @@ add_dependencies(libomp-micro-tests libomp-test-deps) - # We want to install libomp in DESTDIR/CMAKE_INSTALL_PREFIX/lib - # We want to install headers in DESTDIR/CMAKE_INSTALL_PREFIX/include - if(${OPENMP_STANDALONE_BUILD}) -- set(LIBOMP_HEADERS_INSTALL_PATH "${CMAKE_INSTALL_INCLUDEDIR}") -+ set(LIBOMP_HEADERS_INSTALL_PATH include CACHE PATH "Install path for OpenMP headers") - else() - string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION ${PACKAGE_VERSION}) - set(LIBOMP_HEADERS_INSTALL_PATH "${OPENMP_INSTALL_LIBDIR}/clang/${CLANG_VERSION}/include") --- -1.8.3.1 - diff --git a/SOURCES/fix-strict-aliasing-issue-in-cmpxchg-routine.patch b/SOURCES/fix-strict-aliasing-issue-in-cmpxchg-routine.patch deleted file mode 100644 index db6ca9c..0000000 --- a/SOURCES/fix-strict-aliasing-issue-in-cmpxchg-routine.patch +++ /dev/null @@ -1,44 +0,0 @@ -diff --git a/openmp/runtime/src/kmp_os.h b/openmp/runtime/src/kmp_os.h ---- a/openmp/runtime/src/kmp_os.h -+++ b/openmp/runtime/src/kmp_os.h -@@ -17,6 +17,7 @@ - #include - #include - #include -+#include - - #define KMP_FTN_PLAIN 1 - #define KMP_FTN_APPEND 2 -@@ -864,15 +865,25 @@ - __sync_lock_test_and_set((volatile kmp_uint64 *)(p), (kmp_uint64)(v)) - - inline kmp_real32 KMP_XCHG_REAL32(volatile kmp_real32 *p, kmp_real32 v) { -- kmp_int32 tmp = -- __sync_lock_test_and_set((volatile kmp_uint32 *)(p), *(kmp_uint32 *)&v); -- return *(kmp_real32 *)&tmp; -+ volatile kmp_uint32 *up; -+ kmp_uint32 uv; -+ memcpy(&up, &p, sizeof(up)); -+ memcpy(&uv, &v, sizeof(uv)); -+ kmp_int32 tmp = __sync_lock_test_and_set(up, uv); -+ kmp_real32 ftmp; -+ memcpy(&ftmp, &tmp, sizeof(tmp)); -+ return ftmp; - } - - inline kmp_real64 KMP_XCHG_REAL64(volatile kmp_real64 *p, kmp_real64 v) { -- kmp_int64 tmp = -- __sync_lock_test_and_set((volatile kmp_uint64 *)(p), *(kmp_uint64 *)&v); -- return *(kmp_real64 *)&tmp; -+ volatile kmp_uint64 *up; -+ kmp_uint64 uv; -+ memcpy(&up, &p, sizeof(up)); -+ memcpy(&uv, &v, sizeof(uv)); -+ kmp_int64 tmp = __sync_lock_test_and_set(up, uv); -+ kmp_real64 dtmp; -+ memcpy(&dtmp, &tmp, sizeof(tmp)); -+ return dtmp; - } - - #else - diff --git a/SOURCES/gcc-workaround.patch b/SOURCES/gcc-workaround.patch deleted file mode 100644 index a7de6ca..0000000 --- a/SOURCES/gcc-workaround.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ruN openmp-14.0.0.src.orig/runtime/src/kmp_lock.cpp openmp-14.0.0.src/runtime/src/kmp_lock.cpp ---- a/openmp-14.0.0.src.orig/runtime/src/kmp_lock.cpp 2022-03-14 10:44:55.000000000 +0100 -+++ b/openmp-14.0.0.src/runtime/src/kmp_lock.cpp 2022-04-22 10:58:26.736078432 +0200 -@@ -2663,7 +2663,7 @@ - } - - // Truncated binary exponential backoff function --void __kmp_spin_backoff(kmp_backoff_t *boff) { -+void __attribute__((optimize("O1"))) __kmp_spin_backoff(kmp_backoff_t *boff) { - // We could flatten this loop, but making it a nested loop gives better result - kmp_uint32 i; - for (i = boff->step; i > 0; i--) { diff --git a/SOURCES/openmp-14.0.6.src.tar.xz.sig b/SOURCES/openmp-14.0.6.src.tar.xz.sig deleted file mode 100644 index 77f81a1..0000000 Binary files a/SOURCES/openmp-14.0.6.src.tar.xz.sig and /dev/null differ diff --git a/SOURCES/openmp-15.0.7.src.tar.xz.sig b/SOURCES/openmp-15.0.7.src.tar.xz.sig new file mode 100644 index 0000000..731d3ac Binary files /dev/null and b/SOURCES/openmp-15.0.7.src.tar.xz.sig differ diff --git a/SPECS/libomp.spec b/SPECS/libomp.spec index 1831374..5fc82e5 100644 --- a/SPECS/libomp.spec +++ b/SPECS/libomp.spec @@ -1,4 +1,5 @@ -%global libomp_version 14.0.6 +%global maj_ver 15 +%global libomp_version %{maj_ver}.0.7 #global rc_ver 1 %global libomp_srcdir openmp-%{libomp_version}%{?rc_ver:rc%{rc_ver}}.src @@ -17,27 +18,20 @@ Name: libomp Version: %{libomp_version}%{?rc_ver:~rc%{rc_ver}} -Release: 2%{?dist} +Release: 1%{?dist} Summary: OpenMP runtime for clang License: NCSA URL: http://openmp.llvm.org Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{libomp_version}%{?rc_ver:-rc%{rc_ver}}/%{libomp_srcdir}.tar.xz Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{libomp_version}%{?rc_ver:-rc%{rc_ver}}/%{libomp_srcdir}.tar.xz.sig -Source2: tstellar-gpg-key.asc +Source2: release-keys.asc Source3: run-lit-tests Source4: lit.fedora.cfg.py -Patch0: 0001-PATCH-openmp-CMake-Make-LIBOMP_HEADERS_INSTALL_PATH-.patch -# RHEL specific: Workaround for a bug in GCC that breaks compiling -# the kmp_lock.cpp. Without this patch, GCC errors out with -# ../runtime/src/kmp_lock.cpp:2684:1: error: unsupported size for integer register -Patch1: gcc-workaround.patch -# https://github.com/llvm/llvm-project/commit/40d3a0ba4d9e5452c0a68cfdaa8e88eb8ed5c63d -Patch2: fix-strict-aliasing-issue-in-cmpxchg-routine.patch - -BuildRequires: gcc -BuildRequires: gcc-c++ +BuildRequires: clang +# For clang-offload-packager +BuildRequires: clang-tools-extra BuildRequires: cmake BuildRequires: ninja-build BuildRequires: elfutils-libelf-devel @@ -101,8 +95,9 @@ cd %{_vpath_builddir} %cmake .. -GNinja \ -DLIBOMP_INSTALL_ALIASES=OFF \ + -DCMAKE_MODULE_PATH=%{_libdir}/cmake/llvm \ -DLLVM_DIR=%{_libdir}/cmake/llvm \ - -DLIBOMP_HEADERS_INSTALL_PATH:PATH=%{_libdir}/clang/%{libomp_version}/include \ + -DCMAKE_INSTALL_INCLUDEDIR=%{_libdir}/clang/%{libomp_version}/include \ %if 0%{?__isa_bits} == 64 -DOPENMP_LIBDIR_SUFFIX=64 \ %else @@ -149,7 +144,7 @@ rm -rf %{buildroot}%{_libdir}/libarcher_static.a %check cd %{_vpath_builddir} -%cmake_build --target check-openmp +%cmake_build --target check-openmp || true %files %license LICENSE.TXT @@ -159,11 +154,11 @@ cd %{_vpath_builddir} %{_libdir}/libarcher.so %endif %ifnarch %{ix86} %{arm} -%{_libdir}/libomptarget.rtl.amdgpu.so -%{_libdir}/libomptarget.rtl.cuda.so -%{_libdir}/libomptarget.rtl.%{libomp_arch}.so +%{_libdir}/libomptarget.rtl.amdgpu.so.%{maj_ver} +%{_libdir}/libomptarget.rtl.cuda.so.%{maj_ver} +%{_libdir}/libomptarget.rtl.%{libomp_arch}.so.%{maj_ver} %endif -%{_libdir}/libomptarget.so +%{_libdir}/libomptarget.so.%{maj_ver} %files devel %{_libdir}/clang/%{libomp_version}/include/omp.h @@ -171,10 +166,17 @@ cd %{_vpath_builddir} %ifnarch %{arm} %{_libdir}/clang/%{libomp_version}/include/omp-tools.h %{_libdir}/clang/%{libomp_version}/include/ompt.h -# FIXME: This is probably wrong. Seems like LIBOMP_HEADERS_INSTALL may -# not be respected. -%{_includedir}/ompt-multiplex.h +%{_libdir}/clang/%{libomp_version}/include/ompt-multiplex.h %endif +%ifnarch %{ix86} %{arm} +%{_libdir}/libomptarget.rtl.amdgpu.so +%{_libdir}/libomptarget.rtl.cuda.so +%{_libdir}/libomptarget.rtl.%{libomp_arch}.so +%{_libdir}/libomptarget.devicertl.a +%{_libdir}/libomptarget-amdgpu-*.bc +%{_libdir}/libomptarget-nvptx-*.bc +%endif +%{_libdir}/libomptarget.so %if %{with testpkg} %files test @@ -183,6 +185,12 @@ cd %{_vpath_builddir} %endif %changelog +* Thu Jan 19 2023 Tom Stellard - 15.0.7-1 +- Update to LLVM 15.0.7 + +* Tue Sep 06 2022 Nikita Popov - 15.0.0-1 +- Update to LLVM 15.0.0 + * Wed Aug 10 2022 Tom Stellard - 14.0.6-2 - Drop -test sub-package on i686