From 69f1804a47bc8d23294a76e4052c0e16be017f61 Mon Sep 17 00:00:00 2001 From: Raven Date: Wed, 9 Oct 2024 19:00:44 +0600 Subject: [PATCH] LLVM: update to 19.1.1 imported from el10 --- modular/{llvm => }/libcxx/CMakeLists.txt | 0 modular/{llvm => }/libcxx/HandleFlags.cmake | 0 modular/{llvm => }/libcxx/WarningFlags.cmake | 0 .../libcxx/do-not-install-libcxx.imp.patch | 17 + modular/{llvm => }/libcxx/libcxx.spec | 39 +- modular/{llvm => }/libcxx/standalone.patch | 0 ...move-myst_parser-dependency-for-RHEL.patch | 41 + ...move-myst_parser-dependency-for-RHEL.patch | 43 + ...001-Always-build-shared-libs-for-LLD.patch | 30 + ...size-constant-on-aarch64-and-ppc64le.patch | 25 + modular/llvm/0001-Fix-python3-clang.patch | 45 + ...-funwind-tables-the-default-on-all-a.patch | 0 ...1-Workaround-a-bug-in-ORC-on-ppc64le.patch | 0 ...clang-Don-t-install-static-libraries.patch | 0 ...a-Make-test-dependency-on-LLVMHello-.patch | 84 - .../llvm/clang/0009-disable-myst-parser.patch | 26 - modular/llvm/clang/clang.cfg | 3 - modular/llvm/clang/clang.spec | 1028 ------ ...ler-rt-Fix-FLOAT16-feature-detection.patch | 36 - modular/llvm/compiler-rt/compiler-rt.spec | 605 ---- modular/llvm/libomp/libomp.spec | 544 --- ...-compact_unwind_encoding.h-from-libu.patch | 497 --- modular/llvm/lld/lld.spec | 675 ---- modular/llvm/lldb/lldb.spec | 616 ---- modular/llvm/llvm.rpmlintrc | 18 + modular/llvm/llvm.spec | 3189 +++++++++++++++++ .../llvm/0101-Deactivate-markdown-doc.patch | 13 - modular/llvm/llvm/llvm.spec | 1415 -------- modular/llvm/{clang => }/macros.clang | 0 modular/llvm/python-lit/python-lit.spec | 381 -- modular/llvm/rpminspect.yaml | 20 + 31 files changed, 3454 insertions(+), 5936 deletions(-) rename modular/{llvm => }/libcxx/CMakeLists.txt (100%) rename modular/{llvm => }/libcxx/HandleFlags.cmake (100%) rename modular/{llvm => }/libcxx/WarningFlags.cmake (100%) create mode 100644 modular/libcxx/do-not-install-libcxx.imp.patch rename modular/{llvm => }/libcxx/libcxx.spec (96%) rename modular/{llvm => }/libcxx/standalone.patch (100%) create mode 100644 modular/llvm/0001-19-Remove-myst_parser-dependency-for-RHEL.patch create mode 100644 modular/llvm/0001-20-Remove-myst_parser-dependency-for-RHEL.patch create mode 100644 modular/llvm/0001-Always-build-shared-libs-for-LLD.patch create mode 100644 modular/llvm/0001-Fix-page-size-constant-on-aarch64-and-ppc64le.patch create mode 100644 modular/llvm/0001-Fix-python3-clang.patch rename modular/llvm/{clang => }/0001-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch (100%) rename modular/llvm/{clang => }/0001-Workaround-a-bug-in-ORC-on-ppc64le.patch (100%) rename modular/llvm/{clang => }/0003-PATCH-clang-Don-t-install-static-libraries.patch (100%) delete mode 100644 modular/llvm/clang/0001-clang-tools-extra-Make-test-dependency-on-LLVMHello-.patch delete mode 100644 modular/llvm/clang/0009-disable-myst-parser.patch delete mode 100644 modular/llvm/clang/clang.cfg delete mode 100644 modular/llvm/clang/clang.spec delete mode 100644 modular/llvm/compiler-rt/0001-compiler-rt-Fix-FLOAT16-feature-detection.patch delete mode 100644 modular/llvm/compiler-rt/compiler-rt.spec delete mode 100644 modular/llvm/libomp/libomp.spec delete mode 100644 modular/llvm/lld/0002-PATCH-lld-Import-compact_unwind_encoding.h-from-libu.patch delete mode 100644 modular/llvm/lld/lld.spec delete mode 100644 modular/llvm/lldb/lldb.spec create mode 100644 modular/llvm/llvm.rpmlintrc create mode 100644 modular/llvm/llvm.spec delete mode 100644 modular/llvm/llvm/0101-Deactivate-markdown-doc.patch delete mode 100644 modular/llvm/llvm/llvm.spec rename modular/llvm/{clang => }/macros.clang (100%) delete mode 100644 modular/llvm/python-lit/python-lit.spec create mode 100644 modular/llvm/rpminspect.yaml diff --git a/modular/llvm/libcxx/CMakeLists.txt b/modular/libcxx/CMakeLists.txt similarity index 100% rename from modular/llvm/libcxx/CMakeLists.txt rename to modular/libcxx/CMakeLists.txt diff --git a/modular/llvm/libcxx/HandleFlags.cmake b/modular/libcxx/HandleFlags.cmake similarity index 100% rename from modular/llvm/libcxx/HandleFlags.cmake rename to modular/libcxx/HandleFlags.cmake diff --git a/modular/llvm/libcxx/WarningFlags.cmake b/modular/libcxx/WarningFlags.cmake similarity index 100% rename from modular/llvm/libcxx/WarningFlags.cmake rename to modular/libcxx/WarningFlags.cmake diff --git a/modular/libcxx/do-not-install-libcxx.imp.patch b/modular/libcxx/do-not-install-libcxx.imp.patch new file mode 100644 index 0000000..f1961d1 --- /dev/null +++ b/modular/libcxx/do-not-install-libcxx.imp.patch @@ -0,0 +1,17 @@ +diff -ruN build.orig/libcxx/include/CMakeLists.txt build/libcxx/include/CMakeLists.txt +--- build.orig/libcxx/include/CMakeLists.txt 2024-08-05 10:40:33.000000000 +0200 ++++ build/libcxx/include/CMakeLists.txt 2024-09-13 15:02:44.249710564 +0200 +@@ -1074,11 +1074,13 @@ + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ + COMPONENT cxx-headers) + ++ if (FALSE) + # Install the generated IWYU file to the generic include dir. + install(FILES "${LIBCXX_GENERATED_INCLUDE_DIR}/libcxx.imp" + DESTINATION "${LIBCXX_INSTALL_INCLUDE_DIR}" + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ + COMPONENT cxx-headers) ++ endif() + + if (NOT CMAKE_CONFIGURATION_TYPES) + add_custom_target(install-cxx-headers diff --git a/modular/llvm/libcxx/libcxx.spec b/modular/libcxx/libcxx.spec similarity index 96% rename from modular/llvm/libcxx/libcxx.spec rename to modular/libcxx/libcxx.spec index 68fbe54..5c4ee2f 100644 --- a/modular/llvm/libcxx/libcxx.spec +++ b/modular/libcxx/libcxx.spec @@ -4,18 +4,20 @@ # https://bugzilla.redhat.com/show_bug.cgi?id=2158587 %undefine _include_frame_pointers +%if 0%{?rhel} == 8 %undefine __cmake_in_source_build +%endif -%global maj_ver 18 -%global libcxx_version %{maj_ver}.1.8 +%global maj_ver 19 +%global libcxx_version %{maj_ver}.1.1 #global rc_ver 4 -%global libcxx_srcdir libcxx-%{libcxx_version}%{?rc_ver:rc%{rc_ver}}.src -%global libcxxabi_srcdir libcxxabi-%{libcxx_version}%{?rc_ver:rc%{rc_ver}}.src -%global libunwind_srcdir libunwind-%{libcxx_version}%{?rc_ver:rc%{rc_ver}}.src +%global libcxx_srcdir libcxx-%{libcxx_version}%{?rc_ver:-rc%{rc_ver}}.src +%global libcxxabi_srcdir libcxxabi-%{libcxx_version}%{?rc_ver:-rc%{rc_ver}}.src +%global libunwind_srcdir libunwind-%{libcxx_version}%{?rc_ver:-rc%{rc_ver}}.src Name: libcxx Version: %{libcxx_version}%{?rc_ver:~rc%{rc_ver}} -Release: 3%{?dist} +Release: 1%{?dist} Summary: C++ standard library targeting C++11 License: Apache-2.0 WITH LLVM-exception OR MIT OR NCSA URL: http://libcxx.llvm.org/ @@ -31,8 +33,11 @@ Source8: https://github.com/llvm/llvm-project/raw/llvmorg-%{libcxx_version}%{?rc Source9: https://github.com/llvm/llvm-project/raw/llvmorg-%{libcxx_version}%{?rc_ver:-rc%{rc_ver}}/runtimes/cmake/Modules/WarningFlags.cmake Patch0: standalone.patch +# The cmake dependencies for this target are somehow broken upstream. +# However, the libcxx.imp file is only needed for running include-what-you-use. +Patch1: do-not-install-libcxx.imp.patch -BuildRequires: gcc-toolset-13-libstdc++-devel +BuildRequires: gcc-toolset-14-libstdc++-devel BuildRequires: clang llvm-devel llvm-cmake-utils cmake ninja-build # We need python3-devel for %%py3_shebang_fix BuildRequires: python3-devel @@ -144,15 +149,16 @@ cp %{SOURCE8} %{SOURCE9} runtimes/cmake/Modules/ %py3_shebang_fix libcxx/utils/ %build - -%enable_devtoolset13 - -# Copy CFLAGS into ASMFLAGS, so -fcf-protection is used when compiling assembly files. -export ASMFLAGS=$CFLAGS +%if 0%{?rhel} < 10 +%enable_devtoolset14 +%endif export CC=clang export CXX=clang++ +# Copy CFLAGS into ASMFLAGS, so -fcf-protection is used when compiling assembly files. +export ASMFLAGS=$CFLAGS + %cmake -GNinja \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_MODULE_PATH="%{_libdir}/cmake/llvm;%{_datadir}/llvm/cmake/Modules" \ @@ -207,6 +213,8 @@ rm %{buildroot}%{_pkgdocdir}/html/.buildinfo %exclude %{_includedir}/c++/v1/cxxabi.h %exclude %{_includedir}/c++/v1/__cxxabi_config.h %{_libdir}/libc++.so +%{_libdir}/libc++.modules.json +%{_datadir}/libc++/v1/* %files static %license libcxx/LICENSE.TXT @@ -236,7 +244,6 @@ rm %{buildroot}%{_pkgdocdir}/html/.buildinfo %{_includedir}/llvm-libunwind/libunwind.h %{_includedir}/llvm-libunwind/libunwind.modulemap %{_includedir}/llvm-libunwind/mach-o/compact_unwind_encoding.h -%{_includedir}/llvm-libunwind/mach-o/compact_unwind_encoding.modulemap %{_includedir}/llvm-libunwind/unwind.h %{_includedir}/llvm-libunwind/unwind_arm_ehabi.h %{_includedir}/llvm-libunwind/unwind_itanium.h @@ -251,6 +258,12 @@ rm %{buildroot}%{_pkgdocdir}/html/.buildinfo %doc %{_pkgdocdir}/html %changelog +* Thu Sep 19 2024 Timm Bäder - 19.1.0-1 +- Update to 19.1.0 + +* Fri Sep 13 2024 Timm Bäder - 19.1.0~rc4-1 +- Update to 19.1.0-rc4 + * Tue Jul 30 2024 Tulio Magno Quites Machado Filho - 18.1.8-3 - Migrate llvm-libunwind-doc to SPDX license diff --git a/modular/llvm/libcxx/standalone.patch b/modular/libcxx/standalone.patch similarity index 100% rename from modular/llvm/libcxx/standalone.patch rename to modular/libcxx/standalone.patch diff --git a/modular/llvm/0001-19-Remove-myst_parser-dependency-for-RHEL.patch b/modular/llvm/0001-19-Remove-myst_parser-dependency-for-RHEL.patch new file mode 100644 index 0000000..d1df528 --- /dev/null +++ b/modular/llvm/0001-19-Remove-myst_parser-dependency-for-RHEL.patch @@ -0,0 +1,41 @@ +From d8742e9b361e5fd6fee2298b8ea0aeb4671ec05a Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Wed, 22 May 2024 09:39:26 +0200 +Subject: [PATCH] Remove myst_parser dependency for RHEL + +--- + clang/docs/conf.py | 3 +-- + llvm/docs/conf.py | 3 +-- + 2 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/clang/docs/conf.py b/clang/docs/conf.py +index 4cee382a718f..d2e2198e05d4 100644 +--- a/clang/docs/conf.py ++++ b/clang/docs/conf.py +@@ -43,8 +43,7 @@ try: + + extensions.append("myst_parser") + except ImportError: +- if not tags.has("builder-man"): +- raise ++ pass + + + # The encoding of source files. +diff --git a/llvm/docs/conf.py b/llvm/docs/conf.py +index 7f2ed5309606..354a41f11280 100644 +--- a/llvm/docs/conf.py ++++ b/llvm/docs/conf.py +@@ -36,8 +36,7 @@ try: + + extensions.append("myst_parser") + except ImportError: +- if not tags.has("builder-man"): +- raise ++ pass + + # Automatic anchors for markdown titles + from llvm_slug import make_slug +-- +2.44.0 + diff --git a/modular/llvm/0001-20-Remove-myst_parser-dependency-for-RHEL.patch b/modular/llvm/0001-20-Remove-myst_parser-dependency-for-RHEL.patch new file mode 100644 index 0000000..0697d1e --- /dev/null +++ b/modular/llvm/0001-20-Remove-myst_parser-dependency-for-RHEL.patch @@ -0,0 +1,43 @@ +From 50cd36c2156d375a6d50f661908b460fbbd22e78 Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Wed, 22 May 2024 09:39:26 +0200 +Subject: [PATCH] Remove myst_parser dependency for RHEL + +--- + clang/docs/conf.py | 3 +-- + llvm/docs/conf.py | 5 +---- + 2 files changed, 2 insertions(+), 6 deletions(-) + +diff --git a/clang/docs/conf.py b/clang/docs/conf.py +index 4cee382a718f..d2e2198e05d4 100644 +--- a/clang/docs/conf.py ++++ b/clang/docs/conf.py +@@ -43,8 +43,7 @@ try: + + extensions.append("myst_parser") + except ImportError: +- if not tags.has("builder-man"): +- raise ++ pass + + + # The encoding of source files. +diff --git a/llvm/docs/conf.py b/llvm/docs/conf.py +index d9fa6961032b..e38c009a457d 100644 +--- a/llvm/docs/conf.py ++++ b/llvm/docs/conf.py +@@ -36,10 +36,7 @@ try: + + extensions.append("myst_parser") + except ImportError: +- if not tags.has("builder-man"): +- raise +-else: +- myst_enable_extensions = ["substitution"] ++ pass + + # Automatic anchors for markdown titles + myst_heading_anchors = 6 +-- +2.46.0 + diff --git a/modular/llvm/0001-Always-build-shared-libs-for-LLD.patch b/modular/llvm/0001-Always-build-shared-libs-for-LLD.patch new file mode 100644 index 0000000..6840554 --- /dev/null +++ b/modular/llvm/0001-Always-build-shared-libs-for-LLD.patch @@ -0,0 +1,30 @@ +From 69faadbc396000bfa60c722f6fb9c0fc3fb2daf0 Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Wed, 8 May 2024 12:30:36 +0900 +Subject: [PATCH] Always build shared libs for LLD + +We don't want to enable BUILD_SHARED_LIBS for the whole build, +but we do want to build lld libraries. +--- + lld/cmake/modules/AddLLD.cmake | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/lld/cmake/modules/AddLLD.cmake b/lld/cmake/modules/AddLLD.cmake +index 9f2684b6f933..743ec87814a2 100644 +--- a/lld/cmake/modules/AddLLD.cmake ++++ b/lld/cmake/modules/AddLLD.cmake +@@ -7,9 +7,8 @@ macro(add_lld_library name) + "" + "" + ${ARGN}) +- if(ARG_SHARED) +- set(ARG_ENABLE_SHARED SHARED) +- endif() ++ # Always build shared libs for LLD. ++ set(ARG_ENABLE_SHARED SHARED) + llvm_add_library(${name} ${ARG_ENABLE_SHARED} ${ARG_UNPARSED_ARGUMENTS}) + + if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) +-- +2.45.1 + diff --git a/modular/llvm/0001-Fix-page-size-constant-on-aarch64-and-ppc64le.patch b/modular/llvm/0001-Fix-page-size-constant-on-aarch64-and-ppc64le.patch new file mode 100644 index 0000000..925c996 --- /dev/null +++ b/modular/llvm/0001-Fix-page-size-constant-on-aarch64-and-ppc64le.patch @@ -0,0 +1,25 @@ +From 5f73befe5a0df82e455f4b1052e62f34009e98bb Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Tue, 23 Apr 2024 15:08:34 -0700 +Subject: [PATCH] Fix page size constant on aarch64 and ppc64le + +--- + compiler-rt/lib/cfi/cfi.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/compiler-rt/lib/cfi/cfi.cpp b/compiler-rt/lib/cfi/cfi.cpp +index ad1c91623514..e7e86e5807a8 100644 +--- a/compiler-rt/lib/cfi/cfi.cpp ++++ b/compiler-rt/lib/cfi/cfi.cpp +@@ -53,6 +53,8 @@ namespace __cfi { + + #if SANITIZER_LOONGARCH64 + #define kCfiShadowLimitsStorageSize 16384 // 16KiB on loongarch64 per page ++#elif defined(__aarch64__) || defined(__powerpc64__) ++#define kCfiShadowLimitsStorageSize 65536 // 1 page + #else + #define kCfiShadowLimitsStorageSize 4096 // 1 page + #endif +-- +2.40.1 + diff --git a/modular/llvm/0001-Fix-python3-clang.patch b/modular/llvm/0001-Fix-python3-clang.patch new file mode 100644 index 0000000..1053a0b --- /dev/null +++ b/modular/llvm/0001-Fix-python3-clang.patch @@ -0,0 +1,45 @@ +From 1c8a88c870a00eea6c80109cc682e0276ff7888d Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Mon, 8 Jul 2024 12:32:57 +0200 +Subject: [PATCH] Fix python3-clang + +Drop confusing `cd ..` so we stay in the root of the LLVM sources +and the install command succeeds. +--- + install.spec.inc | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/install.spec.inc b/install.spec.inc +index 0fc1424..5f4a43b 100644 +--- a/install.spec.inc ++++ b/install.spec.inc +@@ -98,8 +98,6 @@ touch %{buildroot}%{_bindir}/llvm-config%{exec_suffix} + mkdir -p %{buildroot}%{pkg_datadir}/llvm/cmake + cp -Rv cmake/* %{buildroot}%{pkg_datadir}/llvm/cmake + +-cd .. +- + #endregion + + #region CLANG installation +@@ -134,7 +132,7 @@ mkdir -p %{buildroot}%{python3_sitelib}/clang/ + # install: omitting directory 'bindings/python/clang/__pycache__' + # NOTE: this only happens if we include the gdb plugin of libomp. + # Remove the plugin with command and we're good: rm -rf %{buildroot}/%{_datarootdir}/gdb +-install -p -m644 clang/bindings/python/clang/* %{buildroot}%{python3_sitelib}/clang/ || true ++install -p -m644 clang/bindings/python/clang/* %{buildroot}%{python3_sitelib}/clang/ + %py_byte_compile %{__python3} %{buildroot}%{python3_sitelib}/clang + + # install scanbuild-py to python sitelib. +@@ -268,7 +266,7 @@ done + # https://docs.fedoraproject.org/en-US/packaging-guidelines/Alternatives/ + touch %{buildroot}%{_bindir}/ld + +-install -D -m 644 -t %{buildroot}%{_mandir}/man1/ %{src_tarball_dir}/lld/docs/ld.lld.1 ++install -D -m 644 -t %{buildroot}%{_mandir}/man1/ lld/docs/ld.lld.1 + + %post -n %{pkg_name_lld} + %{_sbindir}/update-alternatives --install %{_bindir}/ld ld %{_bindir}/ld.lld 1 +-- +2.45.2 + diff --git a/modular/llvm/clang/0001-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch b/modular/llvm/0001-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch similarity index 100% rename from modular/llvm/clang/0001-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch rename to modular/llvm/0001-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch diff --git a/modular/llvm/clang/0001-Workaround-a-bug-in-ORC-on-ppc64le.patch b/modular/llvm/0001-Workaround-a-bug-in-ORC-on-ppc64le.patch similarity index 100% rename from modular/llvm/clang/0001-Workaround-a-bug-in-ORC-on-ppc64le.patch rename to modular/llvm/0001-Workaround-a-bug-in-ORC-on-ppc64le.patch diff --git a/modular/llvm/clang/0003-PATCH-clang-Don-t-install-static-libraries.patch b/modular/llvm/0003-PATCH-clang-Don-t-install-static-libraries.patch similarity index 100% rename from modular/llvm/clang/0003-PATCH-clang-Don-t-install-static-libraries.patch rename to modular/llvm/0003-PATCH-clang-Don-t-install-static-libraries.patch diff --git a/modular/llvm/clang/0001-clang-tools-extra-Make-test-dependency-on-LLVMHello-.patch b/modular/llvm/clang/0001-clang-tools-extra-Make-test-dependency-on-LLVMHello-.patch deleted file mode 100644 index 37284a2..0000000 --- a/modular/llvm/clang/0001-clang-tools-extra-Make-test-dependency-on-LLVMHello-.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 22d62b32cd3be5fb0ae10723b35a781e0f862b71 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Tue, 24 Jan 2023 22:46:25 +0000 -Subject: [PATCH] clang-tools-extra: Make test dependency on LLVMHello optional - -This fixes clang + clang-tools-extra standalone build after ---- - clang-tools-extra/test/CMakeLists.txt | 10 +++++++++- - clang-tools-extra/test/clang-tidy/CTTestTidyModule.cpp | 2 +- - clang-tools-extra/test/lit.cfg.py | 3 +++ - clang-tools-extra/test/lit.site.cfg.py.in | 1 + - 4 files changed, 14 insertions(+), 2 deletions(-) - -diff --git a/clang-tools-extra/test/CMakeLists.txt b/clang-tools-extra/test/CMakeLists.txt -index f4c529ee8af2..1cfb4dd529aa 100644 ---- a/clang-tools-extra/test/CMakeLists.txt -+++ b/clang-tools-extra/test/CMakeLists.txt -@@ -7,10 +7,15 @@ - set(CLANG_TOOLS_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..") - set(CLANG_TOOLS_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/..") - -+if (TARGET LLVMHello) -+ set (LLVM_HAS_LLVM_HELLO 1) -+endif() -+ - llvm_canonicalize_cmake_booleans( - CLANG_TIDY_ENABLE_STATIC_ANALYZER - CLANG_PLUGIN_SUPPORT - LLVM_INSTALL_TOOLCHAIN_ONLY -+ LLVM_HAS_LLVM_HELLO - ) - - configure_lit_site_cfg( -@@ -86,7 +91,10 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - endif() - - if(TARGET CTTestTidyModule) -- list(APPEND CLANG_TOOLS_TEST_DEPS CTTestTidyModule LLVMHello) -+ list(APPEND CLANG_TOOLS_TEST_DEPS CTTestTidyModule) -+ if (TARGET LLVMHello) -+ list(APPEND CLANG_TOOLS_TEST_DEPS CTTestTidyModule) -+ endif() - target_include_directories(CTTestTidyModule PUBLIC BEFORE "${CLANG_TOOLS_SOURCE_DIR}") - if(CLANG_PLUGIN_SUPPORT AND (WIN32 OR CYGWIN)) - set(LLVM_LINK_COMPONENTS -diff --git a/clang-tools-extra/test/clang-tidy/CTTestTidyModule.cpp b/clang-tools-extra/test/clang-tidy/CTTestTidyModule.cpp -index c66a94f458cf..b4e7a5d691e5 100644 ---- a/clang-tools-extra/test/clang-tidy/CTTestTidyModule.cpp -+++ b/clang-tools-extra/test/clang-tidy/CTTestTidyModule.cpp -@@ -1,4 +1,4 @@ --// REQUIRES: plugins -+// REQUIRES: plugins, llvm-hello - // RUN: clang-tidy -checks='-*,mytest*' --list-checks -load %llvmshlibdir/CTTestTidyModule%pluginext -load %llvmshlibdir/LLVMHello%pluginext | FileCheck --check-prefix=CHECK-LIST %s - // CHECK-LIST: Enabled checks: - // CHECK-LIST-NEXT: mytest1 -diff --git a/clang-tools-extra/test/lit.cfg.py b/clang-tools-extra/test/lit.cfg.py -index 9f64fd3d2ffa..1b258a00ddf9 100644 ---- a/clang-tools-extra/test/lit.cfg.py -+++ b/clang-tools-extra/test/lit.cfg.py -@@ -75,6 +75,9 @@ config.substitutions.append(("%clang_tidy_headers", clang_tidy_headers)) - if config.has_plugins and config.llvm_plugin_ext: - config.available_features.add("plugins") - -+if config.has_llvm_hello: -+ config.available_features.add("llvm-hello") -+ - # It is not realistically possible to account for all options that could - # possibly be present in system and user configuration files, so disable - # default configs for the test runs. -diff --git a/clang-tools-extra/test/lit.site.cfg.py.in b/clang-tools-extra/test/lit.site.cfg.py.in -index 4eb830a1baf1..6e5559348454 100644 ---- a/clang-tools-extra/test/lit.site.cfg.py.in -+++ b/clang-tools-extra/test/lit.site.cfg.py.in -@@ -11,6 +11,7 @@ config.target_triple = "@LLVM_TARGET_TRIPLE@" - config.host_triple = "@LLVM_HOST_TRIPLE@" - config.clang_tidy_staticanalyzer = @CLANG_TIDY_ENABLE_STATIC_ANALYZER@ - config.has_plugins = @CLANG_PLUGIN_SUPPORT@ & ~@LLVM_INSTALL_TOOLCHAIN_ONLY@ -+config.has_llvm_hello = @LLVM_HAS_LLVM_HELLO@ - # Support substitution of the tools and libs dirs with user parameters. This is - # used when we can't determine the tool dir at configuration time. - config.llvm_tools_dir = lit_config.substitute("@LLVM_TOOLS_DIR@") --- -2.40.1 - diff --git a/modular/llvm/clang/0009-disable-myst-parser.patch b/modular/llvm/clang/0009-disable-myst-parser.patch deleted file mode 100644 index 12a5154..0000000 --- a/modular/llvm/clang/0009-disable-myst-parser.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 988dd3f3363d8ab4ee53f61e0eb5afc6646c9d4f Mon Sep 17 00:00:00 2001 -From: Nikita Popov -Date: Tue, 26 Sep 2023 13:06:29 +0200 -Subject: [PATCH] disable myst parser - ---- - clang/docs/conf.py | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/clang/docs/conf.py b/clang/docs/conf.py -index ca310026f53e..dfb74273b5b2 100644 ---- a/clang/docs/conf.py -+++ b/clang/docs/conf.py -@@ -35,9 +35,6 @@ templates_path = ["_templates"] - - import sphinx - --if sphinx.version_info >= (3, 0): -- extensions.append("myst_parser") -- - # The encoding of source files. - # source_encoding = 'utf-8-sig' - --- -2.41.0 - diff --git a/modular/llvm/clang/clang.cfg b/modular/llvm/clang/clang.cfg deleted file mode 100644 index 08bf8e0..0000000 --- a/modular/llvm/clang/clang.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# Drop the following option after debugedit adds support to DWARF-5: -# https://sourceware.org/bugzilla/show_bug.cgi?id=28728 --gdwarf-4 -g0 diff --git a/modular/llvm/clang/clang.spec b/modular/llvm/clang/clang.spec deleted file mode 100644 index 5ce896d..0000000 --- a/modular/llvm/clang/clang.spec +++ /dev/null @@ -1,1028 +0,0 @@ -%bcond_with snapshot_build - -%if %{with snapshot_build} -%{llvm_sb} -%endif - -# Opt out of https://fedoraproject.org/wiki/Changes/fno-omit-frame-pointer -# https://bugzilla.redhat.com/show_bug.cgi?id=2158587 -%undefine _include_frame_pointers - -%bcond_with compat_build -%bcond_without check - -%ifarch aarch64 -# Use lld on aarch64, becuase ld.bfd will occasionally fail with the error: -# `Could not create temporary file: Too many open files` -%bcond_without linker_lld -%if 0%{?rhel} == 8 -# RHEL8 does not pass --build-id to the linker by default, so we need -# to manually specify the build-id algorith that rpmbuild expects. -# lld defaults to a different algorithm. -%global build_ldflags %(echo %{build_ldflags} -Wl,--build-id=sha1) -%endif -%else -%bcond_with linker_lld -%endif - -%global maj_ver 18 -%global min_ver 1 -%global patch_ver 8 -#global rc_ver 4 - -%if %{with snapshot_build} -%undefine rc_ver -%global maj_ver %{llvm_snapshot_version_major} -%global min_ver %{llvm_snapshot_version_minor} -%global patch_ver %{llvm_snapshot_version_patch} -%endif - -%global clang_version %{maj_ver}.%{min_ver}.%{patch_ver} - -%if %{with compat_build} -%global pkg_name clang%{maj_ver} -# Install clang to same prefix as llvm, so that apps that use llvm-config -# will also be able to find clang libs. -%global install_prefix %{_libdir}/llvm%{maj_ver} -%global install_bindir %{install_prefix}/bin -%global install_includedir %{install_prefix}/include -%global install_libdir %{install_prefix}/lib -%global install_datadir %{install_prefix}/share -%global install_libexecdir %{install_prefix}/libexec -%global install_docdir %{install_datadir}/doc - -%global pkg_includedir %{install_includedir} -%else -%global pkg_name clang -%global install_prefix %{_prefix} -%global install_bindir %{_bindir} -%global install_datadir %{_datadir} -%global install_libdir %{_libdir} -%global install_includedir %{_includedir} -%global install_libexecdir %{_libexecdir} -%global install_docdir %{_docdir} -%endif - -%ifarch ppc64le aarch64 -# Too many threads on some systems causes OOM errors. -%global _smp_mflags -j8 -%endif - -# Try to limit memory use on i686. -%if !0%{?rhel} > 8 -%ifarch %ix86 -%constrain_build -m 3072 -%endif -%endif - -%global clang_srcdir clang-%{clang_version}%{?rc_ver:rc%{rc_ver}}.src -%global clang_tools_srcdir clang-tools-extra-%{clang_version}%{?rc_ver:rc%{rc_ver}}.src - -Name: %pkg_name -Version: %{clang_version}%{?rc_ver:~rc%{rc_ver}}%{?llvm_snapshot_version_suffix:~%{llvm_snapshot_version_suffix}} -Release: 1%{?dist} -Summary: A C language family front-end for LLVM - -License: NCSA -URL: http://llvm.org -%if %{with snapshot_build} -Source0: %{llvm_snapshot_source_prefix}clang-%{llvm_snapshot_yyyymmdd}.src.tar.xz -Source1: %{llvm_snapshot_source_prefix}clang-tools-extra-%{llvm_snapshot_yyyymmdd}.src.tar.xz -%{llvm_snapshot_extra_source_tags} - -%else -Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{clang_version}%{?rc_ver:-rc%{rc_ver}}/%{clang_srcdir}.tar.xz -Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{clang_version}%{?rc_ver:-rc%{rc_ver}}/%{clang_srcdir}.tar.xz.sig -Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{clang_version}%{?rc_ver:-rc%{rc_ver}}/%{clang_tools_srcdir}.tar.xz -Source2: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{clang_version}%{?rc_ver:-rc%{rc_ver}}/%{clang_tools_srcdir}.tar.xz.sig -Source4: release-keys.asc -%endif -%if %{without compat_build} -Source5: macros.%{name} -%endif -# This file is still needed because We still build on F38 in the -# upstream-snapshot branch. -Source6: clang.cfg - -# Patches for clang -Patch1: 0001-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch -Patch2: 0003-PATCH-clang-Don-t-install-static-libraries.patch -# Workaround a bug in ORC on ppc64le. -# More info is available here: https://reviews.llvm.org/D159115#4641826 -Patch5: 0001-Workaround-a-bug-in-ORC-on-ppc64le.patch - -# RHEL specific patches -# Avoid unwanted dependency on python-myst-parser -Patch101: 0009-disable-myst-parser.patch - -# Patches for clang-tools-extra -# See https://reviews.llvm.org/D120301 -Patch201: 0001-clang-tools-extra-Make-test-dependency-on-LLVMHello-.patch - -BuildRequires: gcc -BuildRequires: gcc-c++ -BuildRequires: clang -%if %{with linker_lld} -BuildRequires: lld -%endif -BuildRequires: cmake -BuildRequires: ninja-build - -%if %{with compat_build} -%global llvm_pkg_name llvm%{maj_ver} -%else -%global llvm_pkg_name llvm -BuildRequires: %{llvm_pkg_name}-test = %{version} -BuildRequires: %{llvm_pkg_name}-googletest = %{version} -%endif - -BuildRequires: %{llvm_pkg_name}-devel = %{version} -# llvm-static is required, because clang-tablegen needs libLLVMTableGen, which -# is not included in libLLVM.so. -BuildRequires: %{llvm_pkg_name}-static = %{version} -BuildRequires: %{llvm_pkg_name}-cmake-utils = %{version} - -BuildRequires: libxml2-devel -BuildRequires: perl-generators -BuildRequires: ncurses-devel -# According to https://fedoraproject.org/wiki/Packaging:Emacs a package -# should BuildRequires: emacs if it packages emacs integration files. -BuildRequires: emacs - -# The testsuite uses /usr/bin/lit which is part of the python3-lit package. -BuildRequires: python3-lit - -BuildRequires: python3-sphinx -BuildRequires: pandoc -%if %{undefined rhel} -BuildRequires: python3-myst-parser -%endif -BuildRequires: libatomic - -# We need python3-devel for %%py3_shebang_fix -BuildRequires: python3-devel - -%if ! 0%{?rhel} -# For reproducible pyc file generation -# See https://docs.fedoraproject.org/en-US/packaging-guidelines/Python_Appendix/#_byte_compilation_reproducibility -BuildRequires: /usr/bin/marshalparser -%if %{without compat_build} -%global py_reproducible_pyc_path %{buildroot}%{python3_sitelib} -%endif -%endif - -# Needed for %%multilib_fix_c_header -BuildRequires: multilib-rpm-config - -# For origin certification -BuildRequires: gnupg2 - -# scan-build uses these perl modules so they need to be installed in order -# to run the tests. -BuildRequires: perl(Digest::MD5) -BuildRequires: perl(File::Copy) -BuildRequires: perl(File::Find) -BuildRequires: perl(File::Path) -BuildRequires: perl(File::Temp) -BuildRequires: perl(FindBin) -BuildRequires: perl(Hash::Util) -BuildRequires: perl(lib) -BuildRequires: perl(Term::ANSIColor) -BuildRequires: perl(Text::ParseWords) -BuildRequires: perl(Sys::Hostname) - -Requires: %{name}-libs%{?_isa} = %{version}-%{release} - -# clang requires gcc, clang++ requires libstdc++-devel -# - https://bugzilla.redhat.com/show_bug.cgi?id=1021645 -# - https://bugzilla.redhat.com/show_bug.cgi?id=1158594 -Requires: libstdc++-devel -Requires: gcc-c++ - -Provides: clang(major) = %{maj_ver} - -Conflicts: compiler-rt < 11.0.0 - -%description -clang: noun - 1. A loud, resonant, metallic sound. - 2. The strident call of a crane or goose. - 3. C-language family front-end toolkit. - -The goal of the Clang project is to create a new C, C++, Objective C -and Objective C++ front-end for the LLVM compiler. Its tools are built -as libraries and designed to be loosely-coupled and extensible. - -Install compiler-rt if you want the Blocks C language extension or to -enable sanitization and profiling options when building, and -libomp-devel to enable -fopenmp. - -%package libs -Summary: Runtime library for clang -Requires: %{name}-resource-filesystem = %{version} -# RHEL specific: Use libstdc++ from gcc14 by default. rhbz#2178804 -Requires: gcc-toolset-14-gcc-c++ -Recommends: compiler-rt%{?_isa} = %{version} -# libomp-devel is required, so clang can find the omp.h header when compiling -# with -fopenmp. -Recommends: libomp-devel%{_isa} = %{version} -Recommends: libomp%{_isa} = %{version} - -%description libs -Runtime library for clang. - -%package devel -Summary: Development header files for clang -Requires: %{name}-libs = %{version}-%{release} -Requires: %{name}%{?_isa} = %{version}-%{release} -# The clang CMake files reference tools from clang-tools-extra. -Requires: %{name}-tools-extra%{?_isa} = %{version}-%{release} -Provides: clang-devel(major) = %{maj_ver} - -%description devel -Development header files for clang. - -%package resource-filesystem -Summary: Filesystem package that owns the clang resource directory -Provides: clang-resource-filesystem(major) = %{maj_ver} -BuildArch: noarch - -%description resource-filesystem -This package owns the clang resouce directory: lib/clang/$version/ - -%package analyzer -Summary: A source code analysis framework -License: NCSA and MIT -BuildArch: noarch -Requires: %{name} = %{version}-%{release} - -%description analyzer -The Clang Static Analyzer consists of both a source code analysis -framework and a standalone tool that finds bugs in C and Objective-C -programs. The standalone tool is invoked from the command-line, and is -intended to run in tandem with a build of a project or code base. - -%package tools-extra -Summary: Extra tools for clang -Requires: %{name}-libs%{?_isa} = %{version}-%{release} -Requires: emacs-filesystem - -%description tools-extra -A set of extra tools built using Clang's tooling API. - -%package tools-extra-devel -Summary: Development header files for clang tools -Requires: %{name}-tools-extra = %{version}-%{release} - -%description tools-extra-devel -Development header files for clang tools. - -# Put git-clang-format in its own package, because it Requires git -# and we don't want to force users to install all those dependenices if they -# just want clang. -%package -n git-clang-format -Summary: Integration of clang-format for git -Requires: %{name}-tools-extra = %{version}-%{release} -Requires: git -Requires: python3 - -%description -n git-clang-format -clang-format integration for git. - -%if %{without compat_build} -%package -n python3-clang -Summary: Python3 bindings for clang -Requires: %{name}-devel%{?_isa} = %{version}-%{release} -Requires: python3 -%description -n python3-clang -%{summary}. - - -%prep -%if %{without snapshot_build} -%{gpgverify} --keyring='%{SOURCE4}' --signature='%{SOURCE3}' --data='%{SOURCE0}' -%endif - - -%if %{without snapshot_build} -%{gpgverify} --keyring='%{SOURCE4}' --signature='%{SOURCE2}' --data='%{SOURCE1}' -%endif - -%setup -T -q -b 1 -n %{clang_tools_srcdir} -%autopatch -m200 -p2 - -# failing test case -rm test/clang-tidy/checkers/altera/struct-pack-align.cpp - -%py3_shebang_fix \ - clang-tidy/tool/ \ - clang-include-fixer/find-all-symbols/tool/run-find-all-symbols.py - - -%setup -q -n %{clang_srcdir} -%autopatch -M%{?!rhel:100}%{?rhel:200} -p2 - -# failing test case -rm test/CodeGen/profile-filter.c - -%py3_shebang_fix \ - tools/clang-format/ \ - tools/clang-format/git-clang-format \ - utils/hmaptool/hmaptool \ - tools/scan-view/bin/scan-view \ - tools/scan-view/share/Reporter.py \ - tools/scan-view/share/startfile.py \ - tools/scan-build-py/bin/* \ - tools/scan-build-py/libexec/* - -# Convert markdown files to rst to cope with the absence of compatible md parser in rhel. -# The sed expression takes care of a slight difference between pandoc markdown and sphinx markdown. -find -name '*.md' | while read md; do sed -r -e 's/^( )*\* /\n\1\* /' ${md} | pandoc -f markdown -o ${md%.md}.rst ; done - -%endif - -%build - -%undefine __cmake_in_source_build - -# Disable lto on i686 due to memory constraints. -%ifarch %ix86 -%define _lto_cflags %{nil} -%endif - -# Disable LTO to speed up builds -%if %{with snapshot_build} -%global _lto_cflags %nil -%endif - -%ifarch s390 s390x aarch64 %ix86 ppc64le -# Decrease debuginfo verbosity to reduce memory consumption during final library linking -%global optflags %(echo %{optflags} | sed 's/-g /-g1 /') -%endif - -%if %{with linker_lld} -# TODO: Use LLVM_USE_LLD cmake option, but this doesn't seem to work with -# standalone builds. -%global build_ldflags %(echo %{build_ldflags} -fuse-ld=lld) -%endif - -# Disable dwz on aarch64, because it takes a huge amount of time to decide not to optimize things. -%ifarch aarch64 -%define _find_debuginfo_dwz_opts %{nil} -%endif - - -%set_build_flags -CXXFLAGS="$CXXFLAGS -Wno-address -Wno-nonnull -Wno-maybe-uninitialized" -CFLAGS="$CFLAGS -Wno-address -Wno-nonnull -Wno-maybe-uninitialized" - -# We set CLANG_DEFAULT_PIE_ON_LINUX=OFF and PPC_LINUX_DEFAULT_IEEELONGDOUBLE=ON to match the -# defaults used by Fedora's GCC. -%cmake -G Ninja \ - -DCLANG_DEFAULT_PIE_ON_LINUX=OFF \ -%if 0%{?fedora} || 0%{?rhel} > 9 - -DPPC_LINUX_DEFAULT_IEEELONGDOUBLE=ON \ -%endif - -DLLVM_PARALLEL_LINK_JOBS=1 \ - -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DPYTHON_EXECUTABLE=%{__python3} \ - -DCMAKE_SKIP_RPATH:BOOL=ON \ -%ifarch s390 s390x %ix86 ppc64le aarch64 - -DCMAKE_C_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \ - -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \ -%endif -%if %{with compat_build} - -DCMAKE_INSTALL_PREFIX=%{install_prefix} \ - -DLLVM_CMAKE_DIR=%{install_libdir}/cmake/llvm \ -%else -%if 0%{?__isa_bits} == 64 - -DLLVM_LIBDIR_SUFFIX=64 \ -%else - -DLLVM_LIBDIR_SUFFIX= \ -%endif -%endif - -DCLANG_INCLUDE_TESTS:BOOL=ON \ - -DLLVM_BUILD_UTILS:BOOL=ON \ - -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR=../%{clang_tools_srcdir} \ - -DLLVM_EXTERNAL_LIT=%{_bindir}/lit \ - -DLLVM_LIT_ARGS="-vv" \ - -DLLVM_MAIN_SRC_DIR=%{_datadir}/llvm/src \ - \ -%if %{with snapshot_build} - -DLLVM_VERSION_SUFFIX="%{llvm_snapshot_version_suffix}" \ -%endif - \ -%if %{with compat_build} - -DLLVM_TABLEGEN_EXE:FILEPATH=%{_bindir}/llvm-tblgen-%{maj_ver} \ -%else - -DLLVM_TABLEGEN_EXE:FILEPATH=%{_bindir}/llvm-tblgen \ -%endif - -DLLVM_COMMON_CMAKE_UTILS=%{install_datadir}/llvm/cmake \ - -DCLANG_ENABLE_ARCMT:BOOL=ON \ - -DCLANG_ENABLE_STATIC_ANALYZER:BOOL=ON \ - -DCLANG_INCLUDE_DOCS:BOOL=ON \ - -DCLANG_PLUGIN_SUPPORT:BOOL=ON \ - -DENABLE_LINKER_BUILD_ID:BOOL=ON \ - -DLLVM_ENABLE_EH=ON \ - -DLLVM_ENABLE_RTTI=ON \ - -DLLVM_BUILD_DOCS=ON \ - -DLLVM_RAM_PER_COMPILE_JOB=3000 \ - -DLLVM_ENABLE_SPHINX=ON \ - -DCLANG_LINK_CLANG_DYLIB=ON \ - -DSPHINX_WARNINGS_AS_ERRORS=OFF \ - \ - -DCLANG_BUILD_EXAMPLES:BOOL=OFF \ - -DBUILD_SHARED_LIBS=OFF \ - -DCLANG_REPOSITORY_STRING="%{?fedora:Fedora}%{?rhel:Red Hat} %{version}-%{release}" \ - -DGCC_INSTALL_PREFIX=/opt/rh/gcc-toolset-14/root/usr \ - -DCLANG_RESOURCE_DIR=../lib/clang/%{maj_ver} \ - -DCLANG_CONFIG_FILE_SYSTEM_DIR=%{_sysconfdir}/%{name}/ \ -%ifarch %{arm} - -DCLANG_DEFAULT_LINKER=lld \ -%endif - -DCLANG_DEFAULT_UNWINDLIB=libgcc - -%cmake_build - -%ifarch aarch64 -# Strip .gnu.build.attrib sections, because find-debuginfo.sh is failing to strip debug info, -# because there are too many of them. -# https://issues.redhat.com/browse/RHEL-43211 -for f in lib64/libclang-cpp.so.%{maj_ver}.%{min_ver} lib64/libclang.so.%{maj_ver}.%{min_ver}.%{patch_ver} bin/c-index-test bin/clang-tidy bin/clangd; do - objcopy -R '.gnu.build.attrib*' aarch64-redhat-linux-gnu/$f -done -%endif - - -%install - -%cmake_install - -# Add a symlink in /usr/bin to clang-format-diff -ln -s %{install_datadir}/clang/clang-format-diff.py %{buildroot}%{install_bindir}/clang-format-diff - -# File in the macros file for other packages to use. We are not doing this -# in the compat package, because the version macros would # conflict with -# eachother if both clang and the clang compat package were installed together. -%if %{without compat_build} -install -p -m0644 -D %{SOURCE5} %{buildroot}%{_rpmmacrodir}/macros.%{name} -sed -i -e "s|@@CLANG_MAJOR_VERSION@@|%{maj_ver}|" \ - -e "s|@@CLANG_MINOR_VERSION@@|%{min_ver}|" \ - -e "s|@@CLANG_PATCH_VERSION@@|%{patch_ver}|" \ - %{buildroot}%{_rpmmacrodir}/macros.%{name} - -# install clang python bindings -mkdir -p %{buildroot}%{python3_sitelib}/clang/ -install -p -m644 bindings/python/clang/* %{buildroot}%{python3_sitelib}/clang/ -%py_byte_compile %{__python3} %{buildroot}%{python3_sitelib}/clang - -# install scanbuild-py to python sitelib. -mv %{buildroot}%{_prefix}/%{_lib}/{libear,libscanbuild} %{buildroot}%{python3_sitelib} -%py_byte_compile %{__python3} %{buildroot}%{python3_sitelib}/{libear,libscanbuild} - -# Move emacs integration files to the correct directory -mkdir -p %{buildroot}%{_emacs_sitestartdir} -for f in clang-format.el clang-rename.el clang-include-fixer.el; do -mv %{buildroot}{%{_datadir}/clang,%{_emacs_sitestartdir}}/$f -done - -# Create Manpage symlinks -ln -s clang.1.gz %{buildroot}%{_mandir}/man1/clang++.1.gz -ln -s clang.1.gz %{buildroot}%{_mandir}/man1/clang-%{maj_ver}.1.gz -ln -s clang.1.gz %{buildroot}%{_mandir}/man1/clang++-%{maj_ver}.1.gz - -# Fix permission -chmod u-x %{buildroot}%{_mandir}/man1/scan-build.1* - -# Add clang++-{version} symlink -ln -s clang++ %{buildroot}%{_bindir}/clang++-%{maj_ver} - -%else -# Not sure where to put these python modules for the compat build. -rm -Rf %{buildroot}%{install_libdir}/{libear,libscanbuild} - -# Not sure where to put the emacs integration files for the compat build. -rm -Rf %{buildroot}%{install_datadir}/clang/*.el - -# Not sure what to do with man pages for the compat builds -rm -Rf %{buildroot}%{install_prefix}/share/man/ - -# Add version suffix to binaries -mkdir -p %{buildroot}%{_bindir} -for f in %{buildroot}/%{install_bindir}/*; do - filename=`basename $f` - if echo $filename | grep -e '%{maj_ver}'; then - continue - fi - ln -s ../../%{install_bindir}/$filename %{buildroot}/%{_bindir}/$filename-%{maj_ver} -done - -# Add clang++-{version} symlink -ln -s ../../%{install_bindir}/clang++ %{buildroot}%{install_bindir}/clang++-%{maj_ver} - -%endif - -%if 0%{?fedora} == 38 || 0%{?rhel} <= 8 -# Install config file -mkdir -p %{buildroot}%{_sysconfdir}/%{name}/ -mv %{SOURCE6} %{buildroot}%{_sysconfdir}/%{name}/%{_target_platform}.cfg -%endif - -# Install config file for clang -%if %{maj_ver} >=18 -mkdir -p %{buildroot}%{_sysconfdir}/%{name}/ -echo "--gcc-triple=%{_target_cpu}-redhat-linux" >> %{buildroot}%{_sysconfdir}/%{name}/%{_target_platform}.cfg -%endif - -# Fix permissions of scan-view scripts -chmod a+x %{buildroot}%{install_datadir}/scan-view/{Reporter.py,startfile.py} - -# multilib fix -%multilib_fix_c_header --file %{install_includedir}/clang/Config/config.h - -# remove editor integrations (bbedit, sublime, emacs, vim) -rm -vf %{buildroot}%{install_datadir}/clang/clang-format-bbedit.applescript -rm -vf %{buildroot}%{install_datadir}/clang/clang-format-sublime.py* - -# TODO: Package html docs -rm -Rvf %{buildroot}%{install_docdir}/Clang/clang/html -rm -Rvf %{buildroot}%{install_datadir}/clang/clang-doc-default-stylesheet.css -rm -Rvf %{buildroot}%{install_datadir}/clang/index.js - -# TODO: What are the Fedora guidelines for packaging bash autocomplete files? -rm -vf %{buildroot}%{install_datadir}/clang/bash-autocomplete.sh - - -# Create sub-directories in the clang resource directory that will be -# populated by other packages -mkdir -p %{buildroot}%{install_prefix}/lib/clang/%{maj_ver}/{bin,include,lib,share}/ - -#Add versioned resource directory macro -mkdir -p %{buildroot}%{_rpmmacrodir}/ -echo "%%clang%{maj_ver}_resource_dir %%{_prefix}/lib/clang/%{maj_ver}" >> %{buildroot}%{_rpmmacrodir}/macros.%{name} - -%check -%if %{with check} -# Build test dependencies separately, to prevent invocations of host clang from being affected -# by LD_LIBRARY_PATH below. -%cmake_build --target clang-test-depends \ - ExtraToolsUnitTests ClangdUnitTests ClangIncludeCleanerUnitTests ClangPseudoUnitTests -# requires lit.py from LLVM utilities -# Set SOURCE_DATE_EPOCH to disable hardware acceleration on s390x -# See https://bugzilla.redhat.com/show_bug.cgi?id=1994082 -SOURCE_DATE_EPOCH=1629181597 LD_LIBRARY_PATH=%{buildroot}/%{install_libdir} %{__ninja} %{_smp_mflags} check-all -C %{_vpath_builddir} -%endif - - -%files -%license LICENSE.TXT -%{install_bindir}/clang -%{install_bindir}/clang++ -%{install_bindir}/clang-%{maj_ver} -%{install_bindir}/clang++-%{maj_ver} -%{install_bindir}/clang-cl -%{install_bindir}/clang-cpp -%if %{without compat_build} -%{_mandir}/man1/clang.1.gz -%{_mandir}/man1/clang++.1.gz -%{_mandir}/man1/clang-%{maj_ver}.1.gz -%{_mandir}/man1/clang++-%{maj_ver}.1.gz -%else -%{_bindir}/clang-%{maj_ver} -%{_bindir}/clang++-%{maj_ver} -%{_bindir}/clang-cl-%{maj_ver} -%{_bindir}/clang-cpp-%{maj_ver} -%endif - -%files libs -%{install_prefix}/lib/clang/%{maj_ver}/include/* -%{install_libdir}/*.so.* -%{_sysconfdir}/%{name}/%{_target_platform}.cfg - -%files devel -%{install_libdir}/*.so -%{install_includedir}/clang/ -%{install_includedir}/clang-c/ -%{install_libdir}/cmake/* -%{install_bindir}/clang-tblgen -%if %{with compat_build} -%{_bindir}/clang-tblgen-%{maj_ver} -%endif -%dir %{install_datadir}/clang/ - -%files resource-filesystem -%dir %{install_prefix}/lib/clang/ -%dir %{install_prefix}/lib/clang/%{maj_ver}/ -%dir %{install_prefix}/lib/clang/%{maj_ver}/bin/ -%dir %{install_prefix}/lib/clang/%{maj_ver}/include/ -%dir %{install_prefix}/lib/clang/%{maj_ver}/lib/ -%dir %{install_prefix}/lib/clang/%{maj_ver}/share/ -%{_rpmmacrodir}/macros.%{name} - - -%files analyzer -%{install_bindir}/scan-view -%{install_bindir}/scan-build -%{install_bindir}/analyze-build -%{install_bindir}/intercept-build -%{install_bindir}/scan-build-py -%if %{with compat_build} -%{_bindir}/scan-view-%{maj_ver} -%{_bindir}/scan-build-%{maj_ver} -%{_bindir}/analyze-build-%{maj_ver} -%{_bindir}/intercept-build-%{maj_ver} -%{_bindir}/scan-build-py-%{maj_ver} -%endif -%{install_libexecdir}/ccc-analyzer -%{install_libexecdir}/c++-analyzer -%{install_libexecdir}/analyze-c++ -%{install_libexecdir}/analyze-cc -%{install_libexecdir}/intercept-c++ -%{install_libexecdir}/intercept-cc -%{install_datadir}/scan-view/ -%{install_datadir}/scan-build/ -%if %{without compat_build} -%{_mandir}/man1/scan-build.1.* -%{python3_sitelib}/libear -%{python3_sitelib}/libscanbuild -%endif - - -%files tools-extra -%{install_bindir}/amdgpu-arch -%{install_bindir}/clang-apply-replacements -%{install_bindir}/clang-change-namespace -%{install_bindir}/clang-check -%{install_bindir}/clang-doc -%{install_bindir}/clang-extdef-mapping -%{install_bindir}/clang-format -%{install_bindir}/clang-include-cleaner -%{install_bindir}/clang-include-fixer -%{install_bindir}/clang-move -%{install_bindir}/clang-offload-bundler -%{install_bindir}/clang-offload-packager -%{install_bindir}/clang-linker-wrapper -%{install_bindir}/clang-pseudo -%{install_bindir}/clang-query -%{install_bindir}/clang-refactor -%{install_bindir}/clang-rename -%{install_bindir}/clang-reorder-fields -%{install_bindir}/clang-repl -%{install_bindir}/clang-scan-deps -%{install_bindir}/clang-tidy -%{install_bindir}/clangd -%{install_bindir}/diagtool -%{install_bindir}/hmaptool -%{install_bindir}/nvptx-arch -%{install_bindir}/pp-trace -%{install_bindir}/c-index-test -%{install_bindir}/find-all-symbols -%{install_bindir}/modularize -%{install_bindir}/clang-format-diff -%{install_bindir}/run-clang-tidy -%if %{with compat_build} -%{_bindir}/amdgpu-arch-%{maj_ver} -%{_bindir}/clang-apply-replacements-%{maj_ver} -%{_bindir}/clang-change-namespace-%{maj_ver} -%{_bindir}/clang-check-%{maj_ver} -%{_bindir}/clang-doc-%{maj_ver} -%{_bindir}/clang-extdef-mapping-%{maj_ver} -%{_bindir}/clang-format-%{maj_ver} -%{_bindir}/clang-include-cleaner-%{maj_ver} -%{_bindir}/clang-include-fixer-%{maj_ver} -%{_bindir}/clang-move-%{maj_ver} -%{_bindir}/clang-offload-bundler-%{maj_ver} -%{_bindir}/clang-offload-packager-%{maj_ver} -%{_bindir}/clang-linker-wrapper-%{maj_ver} -%{_bindir}/clang-pseudo-%{maj_ver} -%{_bindir}/clang-query-%{maj_ver} -%{_bindir}/clang-refactor-%{maj_ver} -%{_bindir}/clang-rename-%{maj_ver} -%{_bindir}/clang-reorder-fields-%{maj_ver} -%{_bindir}/clang-repl-%{maj_ver} -%{_bindir}/clang-scan-deps-%{maj_ver} -%{_bindir}/clang-tidy-%{maj_ver} -%{_bindir}/clangd-%{maj_ver} -%{_bindir}/diagtool-%{maj_ver} -%{_bindir}/hmaptool-%{maj_ver} -%{_bindir}/nvptx-arch-%{maj_ver} -%{_bindir}/pp-trace-%{maj_ver} -%{_bindir}/c-index-test-%{maj_ver} -%{_bindir}/find-all-symbols-%{maj_ver} -%{_bindir}/modularize-%{maj_ver} -%{_bindir}/clang-format-diff-%{maj_ver} -%{_bindir}/run-clang-tidy-%{maj_ver} -%else -%{_mandir}/man1/diagtool.1.gz -%{_emacs_sitestartdir}/clang-format.el -%{_emacs_sitestartdir}/clang-rename.el -%{_emacs_sitestartdir}/clang-include-fixer.el -%endif -%{install_datadir}/clang/clang-format.py* -%{install_datadir}/clang/clang-format-diff.py* -%{install_datadir}/clang/clang-include-fixer.py* -%{install_datadir}/clang/clang-tidy-diff.py* -%{install_datadir}/clang/run-find-all-symbols.py* -%{install_datadir}/clang/clang-rename.py* - -%files tools-extra-devel -%{install_includedir}/clang-tidy/ - -%files -n git-clang-format -%{install_bindir}/git-clang-format -%if %{with compat_build} -%{_bindir}/git-clang-format-%{maj_ver} -%endif - -%if %{without compat_build} -%files -n python3-clang -%{python3_sitelib}/clang/ - - -%endif -%changelog -* Tue Jul 09 2024 Tom Stellard - 18.1.8-1 -- 18.1.8 Release - -* Thu Jun 27 2024 Tom Stellard - 18.1.2-7 -- Strip .gnu.build-attrib* sections from some binaries too - -* Sat Jun 22 2024 Tom Stellard - 18.1.2-6 -- Strip .gnu.build-attrib* sections out of libraries - -* Sat May 25 2024 Tom Stellard - 18.1.2-5 -- Set SOURCE_DATE_EPOCH when testing - -* Fri May 24 2024 Tom Stellard - 18.1.2-4 -- Limit number of compile jobs to avoid running out of memory - -* Thu Mar 21 2024 Tom Stellrd - 18.1.2-1 -- 18.1.2 Release - -* Wed Nov 29 2023 Nikita Popov - 17.0.6-1 -- Update to LLVM 17.0.6 - -* Wed Oct 04 2023 Nikita Popov - 17.0.2-1 -- Update to LLVM 17.0.2 - -* Thu Jun 29 2023 Tom Stellard - 16.0.6-2 -- Use gcc-toolset-13 by default - -* Sat Jun 17 2023 Tom Stellard - 16.0.6-1 -- 16.0.6 Release - -* Fri May 12 2023 Tom Stellard - 16.0.0-2 -- Fix clang_resource_dir macro - -* Fri Apr 28 2023 Tom Stellard - 16.0.0-1 -- 16.0.0 Release - -* 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 - -* Tue Jun 28 2022 Tom Stellard - 14.0.6-1 -- 14.0.6 Release - -* Wed Jun 01 2022 Timm Bäder - 14.0.0-2 -- Increate gcc-toolset dependency to 12 -- Set GCC_INSTALL_PREFIX variable - -* Thu Apr 07 2022 Timm Bäder - 14.0.0-1 -- Update to 14.0.0 - -* Thu Feb 03 2022 Tom Stellard - 13.0.1-1 -- 13.0.1 Release - -* Fri Jan 21 2022 Serge Guelton - 13.0.0-3 -- Backport bidi patches - -* Fri Oct 22 2021 Tom Stellard - 13.0.0-2 -- Don't emit unwind tables for bpf - -* Fri Oct 15 2021 Tom Stellard - 13.0.0-1 -- 13.0.0 Release - -* Fri Jul 16 2021 sguelton@redhat.com - 12.0.1-1 -- 12.0.1 release - -* Thu May 6 2021 sguelton@redhat.com - 12.0.0-1 -- 12.0.0 release - -* Thu Oct 29 2020 sguelton@redhat.com - 11.0.0-1 -- 11.0.0 final release - -* Thu Sep 17 2020 sguelton@redhat.com - 11.0.0-0.1.rc2 -- 11.0.0-rc2 Release - -* Fri Jul 24 2020 sguelton@redhat.com - 10.0.1-1 -- 10.0.1 release - -* Thu Apr 9 2020 sguelton@redhat.com - 10.0.0-1 -- 10.0.0 final - -* Fri Jan 10 2020 Tom Stellard - 9.0.1-2 -- Fix crash with kernel bpf self-tests - -* Thu Dec 19 2019 Tom Stellard - 9.0.1-1 -- 9.0.1 Release - -* Fri Nov 15 2019 Tom Stellard - 9.0.0-5 -- Fix typo from previous patch: move clang-libs dep to correct sub-package - -* Thu Nov 14 2019 Tom Stellard - 9.0.0-4 -- Add explicit requires for clang-libs to fix rpmdiff errors - -* Wed Oct 02 2019 Tom Stellard - 9.0.0-3 -- Limit build to 8 threads to avoid OOM on x86_64 - -* Wed Oct 02 2019 Tom Stellard - 9.0.0-2 -- Disable CLANG_LINK_CLANG_DYLIB - -* Fri Sep 27 2019 Tom Stellard - 9.0.0-1 -- 9.0.0 Release - -* Thu Aug 1 2019 sguelton@redhat.com - 8.0.1-1 -- 8.0.1 Release - -* Thu Jun 13 2019 sguelton@redhat.com - 8.0.1-0.1.rc2 -- 8.0.1rc2 Release - -* Thu Apr 11 2019 sguelton@redhat.com - 8.0.0-1 -- 8.0.0 Release - -* Fri Dec 14 2018 Tom Stellard - 7.0.1-1 -- 7.0.1-1 Release - -* Mon Dec 10 2018 Tom Stellard - 7.0.1-0.1.rc3 -- 7.0.1-rc3 Release - -* Mon Nov 05 2018 Tom Stellard - 6.0.1-12 -- User helper macro to fixup config.h for multilib - -* Sat Oct 27 2018 Tom Stellard - 6.0.1-11 -- Enable make check - -* Mon Oct 15 2018 Tom Stellard - 6.0.1-10 -- Remove Provides: llvm-toolset-6.0-clang-libs - -* Fri Oct 12 2018 Tom Stellard - 6.0.1-9 -- Add Provides: llvm-toolset-6.0-clang-libs - -* Tue Oct 02 2018 Tom Stellard - 6.0.1-8 -- Don't use python2 for the build - -* Mon Oct 01 2018 Tom Stellard - 6.0.1-7 -- Drop scl macros - -* Tue Sep 25 2018 Tomas Orsava - 6.0.1-6 -- Change Requires from python3 to platform-python -- The python3 package was renamed to platform-python -- Related: rhbz#1619153 - -* Fri Sep 14 2018 Tom Stellard - 6.0.1-5 -- Use python3 for git-clang-format - -* Thu Sep 13 2018 Tom Stellard - 6.0.1-4 -- Fix python dependencies - -* Tue Aug 07 2018 Tom Stellard - 6.0.1-3 -- Install ld.so.conf file in the root filesystem - -* Thu Aug 02 2018 Tom Stellard - 6.0.1-2 -- Remove annobin work-around - -* Wed Jul 11 2018 Tom Stellard - 6.0.1-1 -- 6.0.1 Release - -* Wed Apr 11 2018 Tom Stellard - 5.0.1-7 -- Add conditionals to enable building only the clang-libs package - -* Fri Apr 06 2018 Tom Stellard - 5.0.1-6 -- Use cmake from base RHEL - -* Mon Mar 19 2018 Tom Stellard - 5.0.1-5 -- Backport r310435 from clang trunk. rhbz#1558223 - -* Mon Mar 19 2018 Tom Stellard - 5.0.1-4 -- Use system gcc instead of dts. - -* Tue Feb 06 2018 Tom Stellard - 5.0.1-3 -- Backport retpoline support - -* Sat Jan 20 2018 Tom Stellard - 5.0.1-2 -- Limit number of build threads on ppc64le to avoid OOM errors - -* Tue Jan 09 2018 Tom Stellard - 5.0.1-1 -- 5.0.1 Release - -* Wed Jun 21 2017 Tom Stellard - 4.0.1-1 -- 4.0.1 Release. - -* Wed Jun 21 2017 Tom Stellard - 4.0.0-15 -- Fix Requires for clang-tools-extra - -* Wed Jun 21 2017 Tom Stellard - 4.0.0-13 -- Drop libomp dependency on s390x - -* Thu Jun 15 2017 Tom Stellard - 4.0.0-12 -- Use libstdc++ from devtoolset-7 - -* Wed Jun 07 2017 Tom Stellard - 4.0.0-11 -- Fix libomp requires - -* Wed Jun 07 2017 Tom Stellard - 4.0.0-10 -- Build for llvm-toolset-7 rename - -* Tue May 30 2017 Tom Stellard - 4.0.0-9 -- Use ld from devtoolset in clang toolchain - -* Mon May 29 2017 Tom Stellard - 4.0.0-8 -- Add dependency on libopenmp - -* Thu May 25 2017 Tom Stellard - 4.0.0-7 -- Fix check for gcc install - -* Wed May 24 2017 Tom Stellard - 4.0.0-6 -- Add devtoolset-6 dependency for newer libstdc++ - -* Fri May 12 2017 Tom Stellard - 4.0.0-5 -- Add dependency on compiler-rt - -* Tue May 02 2017 Tom Stellard -- Fix dependencies with scl - -* Mon May 01 2017 Tom Stellard - 4.0.0-4 -- Build with llvm-toolset-4 - -* Mon Mar 27 2017 Tom Stellard - 4.0.0-3 -- Enable eh/rtti, which are required by lldb. - -* Fri Mar 24 2017 Tom Stellard - 4.0.0-2 -- Fix clang-tools-extra build -- Fix install - -* Thu Mar 23 2017 Tom Stellard - 4.0.0-1 -- clang 4.0.0 final release - -* Mon Mar 20 2017 David Goerger - 3.9.1-3 -- add clang-tools-extra rhbz#1328091 - -* Thu Mar 16 2017 Tom Stellard - 3.9.1-2 -- Enable build-id by default rhbz#1432403 - -* Thu Mar 02 2017 Dave Airlie - 3.9.1-1 -- clang 3.9.1 final release - -* Fri Feb 10 2017 Fedora Release Engineering - 3.9.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Mon Nov 14 2016 Nathaniel McCallum - 3.9.0-3 -- Add Requires: compiler-rt to clang-libs. -- Without this, compiling with certain CFLAGS breaks. - -* Tue Nov 1 2016 Peter Robinson 3.9.0-2 -- Rebuild for new arches - -* Fri Oct 14 2016 Dave Airlie - 3.9.0-1 -- clang 3.9.0 final release - -* Fri Jul 01 2016 Stephan Bergmann - 3.8.0-2 -- Resolves: rhbz#1282645 add GCC abi_tag support - -* Thu Mar 10 2016 Dave Airlie 3.8.0-1 -- clang 3.8.0 final release - -* Thu Mar 03 2016 Dave Airlie 3.8.0-0.4 -- clang 3.8.0rc3 - -* Wed Feb 24 2016 Dave Airlie - 3.8.0-0.3 -- package all libs into clang-libs. - -* Wed Feb 24 2016 Dave Airlie 3.8.0-0.2 -- enable dynamic linking of clang against llvm - -* Thu Feb 18 2016 Dave Airlie - 3.8.0-0.1 -- clang 3.8.0rc2 - -* Fri Feb 12 2016 Dave Airlie 3.7.1-4 -- rebuild against latest llvm packages -- add BuildRequires llvm-static - -* Wed Feb 03 2016 Fedora Release Engineering - 3.7.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Thu Jan 28 2016 Dave Airlie 3.7.1-2 -- just accept clang includes moving to /usr/lib64, upstream don't let much else happen - -* Thu Jan 28 2016 Dave Airlie 3.7.1-1 -- initial build in Fedora. - -* Tue Oct 06 2015 Jan Vcelak 3.7.0-100 -- initial version using cmake build system diff --git a/modular/llvm/compiler-rt/0001-compiler-rt-Fix-FLOAT16-feature-detection.patch b/modular/llvm/compiler-rt/0001-compiler-rt-Fix-FLOAT16-feature-detection.patch deleted file mode 100644 index 8228ddc..0000000 --- a/modular/llvm/compiler-rt/0001-compiler-rt-Fix-FLOAT16-feature-detection.patch +++ /dev/null @@ -1,36 +0,0 @@ -From ce15f52198639e9195b8833ed60dc1a49c293956 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Tue, 29 Aug 2023 15:49:55 -0700 -Subject: [PATCH] compiler-rt: Fix FLOAT16 feature detection - -CMAKE_TRY_COMPILE_TARGET_TYPE defaults to EXECUTABLE, which causes -any feature detection code snippet without a main function to fail, -so we need to make sure it gets explicitly set to STATIC_LIBRARY. ---- - compiler-rt/lib/builtins/CMakeLists.txt | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/compiler-rt/lib/builtins/CMakeLists.txt b/compiler-rt/lib/builtins/CMakeLists.txt -index 2fc70522895f..e83a1ecea50b 100644 ---- a/compiler-rt/lib/builtins/CMakeLists.txt -+++ b/compiler-rt/lib/builtins/CMakeLists.txt -@@ -5,7 +5,6 @@ - if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) - cmake_minimum_required(VERSION 3.20.0) - -- set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) - project(CompilerRTBuiltins C ASM) - set(COMPILER_RT_STANDALONE_BUILD TRUE) - set(COMPILER_RT_BUILTINS_STANDALONE_BUILD TRUE) -@@ -50,6 +49,8 @@ if (COMPILER_RT_STANDALONE_BUILD) - ON) - endif() - -+set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) -+ - include(builtin-config-ix) - include(CMakeDependentOption) - include(CMakePushCheckState) --- -2.41.0 - diff --git a/modular/llvm/compiler-rt/compiler-rt.spec b/modular/llvm/compiler-rt/compiler-rt.spec deleted file mode 100644 index ac8c4d0..0000000 --- a/modular/llvm/compiler-rt/compiler-rt.spec +++ /dev/null @@ -1,605 +0,0 @@ -%bcond_with snapshot_build - -%if %{with snapshot_build} -# Unlock LLVM Snapshot LUA functions -%{llvm_sb_verbose} -%{llvm_sb} -%endif - -%global toolchain clang - -# Opt out of https://fedoraproject.org/wiki/Changes/fno-omit-frame-pointer -# https://bugzilla.redhat.com/show_bug.cgi?id=2158587 -%undefine _include_frame_pointers - -%undefine __cmake_in_source_build - -%bcond_with compat_build - -%global maj_ver 18 -%global min_ver 1 -%global patch_ver 8 -#global rc_ver 4 -%if %{with snapshot_build} -%global maj_ver %{llvm_snapshot_version_major} -%global min_ver %{llvm_snapshot_version_minor} -%global patch_ver %{llvm_snapshot_version_patch} -%undefine rc_ver -%endif -%global compiler_rt_version %{maj_ver}.%{min_ver}.%{patch_ver} - -%global crt_srcdir compiler-rt-%{compiler_rt_version}%{?rc_ver:rc%{rc_ver}}.src - -%if %{with compat_build} -%global pkg_name compiler-rt%{maj_ver} -%else -%global pkg_name compiler-rt -%endif - -# see https://sourceware.org/bugzilla/show_bug.cgi?id=25271 -%global optflags %(echo %{optflags} -D_DEFAULT_SOURCE) - -# see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93615 -%global optflags %(echo %{optflags} -Dasm=__asm__) - -%global __python3 /usr/bin/python3 - -Name: %{pkg_name} -Version: %{compiler_rt_version}%{?rc_ver:~rc%{rc_ver}}%{?llvm_snapshot_version_suffix:~%{llvm_snapshot_version_suffix}} -Release: 1%{?dist} -Summary: LLVM "compiler-rt" runtime libraries - -License: Apache-2.0 WITH LLVM-exception OR NCSA OR MIT -URL: http://llvm.org -%if %{with snapshot_build} -Source0: %{llvm_snapshot_source_prefix}compiler-rt-%{llvm_snapshot_yyyymmdd}.src.tar.xz -%{llvm_snapshot_extra_source_tags} -%else -Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{compiler_rt_version}%{?rc_ver:-rc%{rc_ver}}/%{crt_srcdir}.tar.xz -Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{compiler_rt_version}%{?rc_ver:-rc%{rc_ver}}/%{crt_srcdir}.tar.xz.sig -Source2: release-keys.asc -%endif - -Patch0: 0001-compiler-rt-Fix-FLOAT16-feature-detection.patch - -BuildRequires: clang -BuildRequires: cmake -BuildRequires: ninja-build -BuildRequires: python3 -# We need python3-devel for %%py3_shebang_fix -BuildRequires: python3-devel -BuildRequires: llvm-devel = %{version} -BuildRequires: llvm-cmake-utils = %{version} -BuildRequires: zlib-devel - -# For gpg source verification -BuildRequires: gnupg2 - -Requires: clang-resource-filesystem%{?isa} = %{version} -Provides: %{name}(major) = %{maj_ver} - -%description -The compiler-rt project is a part of the LLVM project. It provides -implementation of the low-level target-specific hooks required by -code generation, sanitizer runtimes and profiling library for code -instrumentation, and Blocks C language extension. - -%prep -%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' -%autosetup -n %{crt_srcdir} -p2 - -# compiler-rt does not allow configuring LLVM_COMMON_CMAKE_UTILS. -ln -s %{_datadir}/llvm/cmake ../cmake - -%py3_shebang_fix lib/hwasan/scripts/hwasan_symbolize - -%build -# Copy CFLAGS into ASMFLAGS, so -fcf-protection is used when compiling assembly files. -export ASMFLAGS=$CFLAGS - -%cmake -GNinja \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_MODULE_PATH=%{_libdir}/cmake/llvm \ - -DCMAKE_SKIP_RPATH:BOOL=ON \ - -DCOMPILER_RT_INSTALL_PATH=%{_prefix}/lib/clang/%{maj_ver} \ - -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON \ - \ -%if %{with snapshot_build} - -DLLVM_VERSION_SUFFIX="%{llvm_snapshot_version_suffix}" \ -%endif - \ -%if 0%{?__isa_bits} == 64 - -DLLVM_LIBDIR_SUFFIX=64 \ -%else - -DLLVM_LIBDIR_SUFFIX= \ -%endif - -DPython3_EXECUTABLE=%{__python3} \ - -DCOMPILER_RT_INCLUDE_TESTS:BOOL=OFF # could be on? - -%cmake_build - -%install - -%cmake_install -%ifarch ppc64le -# Fix install path on ppc64le so that the directory name matches the triple used -# by clang. -mv %{buildroot}%{_prefix}/lib/clang/%{maj_ver}/lib/powerpc64le-redhat-linux-gnu %{buildroot}%{_prefix}/lib/clang/%{maj_ver}/lib/ppc64le-redhat-linux-gnu -%endif -%ifarch %{ix86} -# Fix install path on ix86 so that the directory name matches the triple used -# by clang on both actual ix86 and on x86_64 with -m32: -%if "%{_target_cpu}" != "i386" -ln -s i386-redhat-linux-gnu %{buildroot}%{_prefix}/lib/clang/%{maj_ver}/lib/%{_target_cpu}-redhat-linux-gnu -%endif -%endif - -%check -#%%cmake_build --target check-compiler-rt - -%files -%license LICENSE.TXT -%ifarch x86_64 aarch64 riscv64 -%{_prefix}/lib/clang/%{maj_ver}/bin/* -%endif -%{_prefix}/lib/clang/%{maj_ver}/include/* -%{_prefix}/lib/clang/%{maj_ver}/lib/* -%{_prefix}/lib/clang/%{maj_ver}/share/* -#%ifarch x86_64 aarch64 -#{_bindir}/hwasan_symbolize -#%endif - -%changelog -* Mon Jul 29 2024 Raven - 18.1.8-1 -- 18.1.8 Release - -* Fri May 03 2024 Tom Stellard - 18.1.4-1 -- 18.1.4 Release - -* Sat Apr 27 2024 Songsong Zhang - 18.1.3-2 -- Add riscv64 support - -* Wed Apr 17 2024 Tom Stellard - 18.1.3-1 -- 18.1.3 Release - -* Fri Mar 22 2024 Tom Stellard - 18.1.2-1 -- 18.1.2 Release - -* Tue Mar 12 2024 Tom Stellard - 18.1.1-1 -- 18.1.1 Release - -* Wed Feb 28 2024 Tom Stellard - 18.1.0~rc4-1 -- 18.1.0-rc4 Release - -* Wed Jan 24 2024 Fedora Release Engineering - 17.0.6-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 17.0.6-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -%{?llvm_snapshot_changelog_entry} - -* Mon Dec 18 2023 Jeremy Newton - 17.0.6-3 -- Add compiler-rt(major) provides - -* Wed Dec 13 2023 Miro Hrončok - 17.0.6-2 -- Fix install path on i686 - -* Wed Nov 29 2023 Tulio Magno Quites Machado Filho - 17.0.6-1 -- Update to LLVM 17.0.6 - -* Wed Nov 01 2023 Tulio Magno Quites Machado Filho - 17.0.4-1 -- Update to LLVM 17.0.4 - -* Wed Oct 18 2023 Tulio Magno Quites Machado Filho - 17.0.3-1 -- Update to LLVM 17.0.3 - -* Thu Oct 05 2023 Tulio Magno Quites Machado Filho - 17.0.2-1 -- Update to LLVM 17.0.2 - -* Mon Sep 25 2023 Tulio Magno Quites Machado Filho - 17.0.1-1 -- Update to LLVM 17.0.1 - -* Mon Sep 11 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc4-1 -- Update to LLVM 17.0.0 RC4 - -* Tue Aug 29 2023 Tom Stellard - 17.0.0~rc3-2 -- Fix FLOAT16 detection - -* Fri Aug 25 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc3-1 -- Update to LLVM 17.0.0 RC3 - -* Wed Aug 23 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc2-1 -- Update to LLVM 17.0.0 RC2 - -* Thu Aug 03 2023 Tom Stellard - 17.0.0~rc1-2 -- Fix for ppc64le - -* Thu Aug 03 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc1-1 -- Update to LLVM 17.0.0 RC1 - -* Wed Jul 19 2023 Fedora Release Engineering - 16.0.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Mon Jul 10 2023 Tulio Magno Quites Machado Filho - 16.0.6-1 -- Update to LLVM 16.0.6 - -* Thu Jun 15 2023 Nikita Popov - 16.0.5-2 -- Use llvm-cmake-utils package - -* Tue Jun 06 2023 Tulio Magno Quites Machado Filho - 16.0.5-1 -- Update to LLVM 16.0.5 - -* Fri May 19 2023 Tulio Magno Quites Machado Filho - 16.0.4-1 -- Update to LLVM 16.0.4 - -* Wed May 10 2023 Tulio Magno Quites Machado Filho - 16.0.3-1 -- Update to LLVM 16.0.3 - -* Thu Apr 27 2023 Tulio Magno Quites Machado Filho - 16.0.2-1 -- Update to LLVM 16.0.2 - -* Thu Apr 13 2023 Tulio Magno Quites Machado Filho - 16.0.1-1 -- Update to LLVM 16.0.1 - -* Tue Mar 21 2023 Tulio Magno Quites Machado Filho - 16.0.0-1 -- Update to LLVM 16.0.0 - -* Wed Mar 15 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc4-1 -- Update to LLVM 16.0.0 RC4 - -* Mon Mar 06 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc3-2 -- Fix the path of the libraries - -* Thu Feb 23 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc3-1 -- Update to LLVM 16.0.0 RC3 - -* Wed Feb 15 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc1-1 -- Update to LLVM 16.0.0 RC1 - -* Wed Feb 01 2023 Tom Stellard - 15.0.7-4 -- Omit frame pointers when building - -* Thu Jan 19 2023 Tulio Magno Quites Machado Filho - 15.0.7-3 -- Include the Apache license adopted in 2019. - -* Thu Jan 19 2023 Fedora Release Engineering - 15.0.7-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Fri Jan 13 2023 Nikita Popov - 15.0.7-1 -- Update to LLVM 15.0.7 - -* Thu Dec 15 2022 Nikita Popov - 15.0.6-2 -- Remove ppc64le ieeelongdouble workaround - -* Tue Dec 06 2022 Nikita Popov - 15.0.6-1 -- Update to LLVM 15.0.6 - -* Mon Nov 07 2022 Nikita Popov - 15.0.4-1 -- Update to LLVM 15.0.4 - -* Fri Sep 23 2022 Nikita Popov - 15.0.0-3 -- Switch to building with clang - -* Tue Sep 13 2022 Nikita Popov - 15.0.0-2 -- Make sure asm files are built with -fcf-protection - -* Tue Sep 06 2022 Nikita Popov - 15.0.0-1 -- Update to LLVM 15.0.0 - -* Wed Jul 20 2022 Fedora Release Engineering - 14.0.5-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Mon Jun 20 2022 Timm Bäder - 14.0.5-1 -- Update to 14.0.5 - -* Fri Apr 29 2022 Timm Bäder - 14.0.0-2 -- Remove llvm-cmake-devel BR - -* Thu Mar 24 2022 Timm Bäder - 14.0.0-1 -- Update to 14.0.0 - -* Thu Feb 03 2022 Nikita Popov - 13.0.1-1 -- Update to LLVM 13.0.1 final - -* Wed Jan 19 2022 Fedora Release Engineering - 13.0.1~rc2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Fri Jan 14 2022 Nikita Popov - 13.0.1~rc2-1 -- Update to LLVM 13.0.1rc2 - -* Wed Jan 12 2022 Nikita Popov - 13.0.1~rc1-1 -- Update to LLVM 13.0.1rc1 - -* Fri Oct 01 2021 Tom Stellard - 13.0.0-1 -- 13.0.0 Release - -* Wed Sep 22 2021 Tom Stellard - 13.0.0~rc3-1 -- 13.0.0-rc3 Release - -* Mon Aug 09 2021 Tom Stellard - 13.0.0~rc1-1 -- 13.0.0-rc1 Release - -* Wed Jul 21 2021 Fedora Release Engineering - 12.0.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Tue Jul 13 2021 Tom Stellard - 12.0.1 -- 12.0.1 Release - -* Wed Jun 30 2021 Tom Stellard - 12.0.1~rc3-1 -- 12.0.1-rc3 Release - -* Fri Jun 04 2021 Tom Stellard - 12.0.1~rc1-2 -- Fix installation paths - -* Tue Jun 01 2021 Tom Stellard - 12.0.1~rc1-1 -- 12.0.1-rc1 Release - -* Fri May 21 2021 sguelton@redhat.com - 12.0.0-3 -- Update removal of C++ dep to follow upstream -- Backport linux/cyclade.h removal patch - -* Mon May 10 2021 sguelton@redhat.com - 12.0.0-2 -- Backport 82150606fb11d28813ae6 - -* Fri Apr 16 2021 Tom Stellard - 12.0.0-1 -- 12.0.0 Release - -* Thu Apr 08 2021 sguelton@redhat.com - 12.0.0-0.6.rc5 -- New upstream release candidate - -* Fri Apr 02 2021 sguelton@redhat.com - 12.0.0-0.5.rc4 -- New upstream release candidate - -* Thu Mar 11 2021 sguelton@redhat.com - 12.0.0-0.4.rc3 -- LLVM 12.0.0 rc3 - -* Tue Mar 09 2021 sguelton@redhat.com - 12.0.0-0.3.rc2 -- rebuilt - -* Thu Feb 25 2021 Serge Guelton - 12.0.0-0.2.rc2 -- 12.0.0-rc2 release - -* Tue Feb 16 2021 Serge Guelton - 12.0.0-0.1.rc1 -- 12.0.0-rc1 release - -* Tue Jan 26 2021 Fedora Release Engineering - 11.1.0-0.3.rc2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Fri Jan 22 2021 Serge Guelton - 11.1.0-0.2.rc2 -- 11.1.0-rc2 release - -* Thu Jan 14 2021 Serge Guelton - 11.1.0-0.1.rc1 -- 11.1.0-rc1 release - -* Wed Jan 06 2021 Serge Guelton - 11.0.1-3 -- LLVM 11.0.1 final - -* Tue Dec 22 2020 sguelton@redhat.com - 11.0.1-2.rc2 -- llvm 11.0.1-rc2 - -* Tue Dec 01 2020 sguelton@redhat.com - 11.0.1-1.rc1 -- llvm 11.0.1-rc1 - -* Thu Oct 29 2020 Tom Stellard - 11.0.0-2 -- Add dependency on clang-resource-filesystem - -* Thu Oct 15 2020 sguelton@redhat.com - 11.0.0-1 -- Fix NVR - -* Mon Oct 12 2020 sguelton@redhat.com - 11.0.0-0.5 -- llvm 11.0.0 - final release - -* Thu Oct 08 2020 sguelton@redhat.com - 11.0.0-0.4.rc6 -- 11.0.0-rc6 - -* Fri Oct 02 2020 sguelton@redhat.com - 11.0.0-0.3.rc5 -- 11.0.0-rc5 Release - -* Sun Sep 27 2020 sguelton@redhat.com - 11.0.0-0.2.rc3 -- Fix NVR - -* Thu Sep 24 2020 sguelton@redhat.com - 11.0.0-0.1.rc3 -- 11.0.0-rc3 Release - -* Tue Sep 01 2020 sguelton@redhat.com - 11.0.0-0.1.rc2 -- 11.0.0-rc2 Release - -* Mon Aug 10 2020 Tom Stellard - 11.0.0-0.1.rc1 -- 11.0.0-rc1 Release - -* Wed Jul 29 2020 sguelton@redhat.com - 10.0.0-9 -- use %%license macro - -* Mon Jul 27 2020 sguelton@redhat.com - 10.0.0-8 -- Remove now obsolete debuginfo package limitation - -* Mon Jul 27 2020 Fedora Release Engineering - 10.0.0-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 20 2020 sguelton@redhat.com - 10.0.0-6 -- Use modern cmake macros - -* Wed Jul 15 2020 sguelton@redhat.com - 10.0.0-5 -- Fix multilib runtime links, see rhbz#1855379 - -* Wed Jul 15 2020 sguelton@redhat.com - 10.0.0-4 -- Correctly use gpg verification - -* Thu Jul 09 2020 Tom Stellard - 10.0.0-3 -- Drop dependency on llvm-static - -* Thu Jun 11 2020 sguelton@redhat.com - 10.0.0-2 -- Fix msan compilation warnings, see af38074874c605f9 upstream - -* Mon Mar 30 2020 sguelton@redhat.com - 10.0.0-1 -- 10.0.0 final - -* Wed Mar 25 2020 sguelton@redhat.com - 10.0.0-0.6.rc6 -- 10.0.0 rc6 - -* Fri Mar 20 2020 sguelton@redhat.com - 10.0.0-0.5.rc5 -- 10.0.0 rc5 - -* Sun Mar 15 2020 sguelton@redhat.com - 10.0.0-0.4.rc4 -- 10.0.0 rc4 - -* Thu Mar 5 2020 sguelton@redhat.com - 10.0.0-0.3.rc3 -- 10.0.0 rc3 - -* Fri Feb 14 2020 sguelton@redhat.com - 10.0.0-0.1.rc2 -- 10.0.0 rc2 - -* Wed Feb 12 2020 sguelton@redhat.com - 10.0.0-0.2.rc1 -- Ship blacklist files in the proper directory, see rhbz#1794936 - -* Fri Jan 31 2020 sguelton@redhat.com - 10.0.0-0.1.rc1 -- 10.0.0 rc1 - -* Tue Jan 28 2020 Fedora Release Engineering - 9.0.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Thu Sep 19 2019 Tom Stellard - 9.0.0-1 -- 9.0.0 Release - -* Thu Aug 22 2019 Tom Stellard - 9.0.0-0.1.rc3 -- 9.0.0-rc3 Release - -* Wed Jul 24 2019 Fedora Release Engineering - 8.0.0-2.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Tue Jun 18 2019 sguelton@redhat.com - 8.0.0-2 -- Fix rhbz#1678240 - -* Wed Mar 20 2019 sguelton@redhat.com - 8.0.0-1 -- 8.0.0 final - -* Tue Mar 12 2019 sguelton@redhat.com - 8.0.0-0.4.rc4 -- 8.0.0 Release candidate 4 - -* Mon Mar 4 2019 sguelton@redhat.com - 8.0.0-0.3.rc3 -- 8.0.0 Release candidate 3 - -* Fri Feb 22 2019 sguelton@redhat.com - 8.0.0-0.2.rc2 -- 8.0.0 Release candidate 2 - -* Mon Feb 11 2019 sguelton@redhat.com - 8.0.0-0.1.rc1 -- 8.0.0 Release candidate 1 - -* Thu Jan 31 2019 Fedora Release Engineering - 7.0.1-2.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Fri Jan 18 2019 sguelton@redhat.com - 7.0.1-2 -- GCC-9 compatibility - -* Mon Dec 17 2018 sguelton@redhat.com - 7.0.1-1 -- 7.0.1 Release - -* Tue Dec 04 2018 sguelton@redhat.com - 7.0.0-2 -- Ensure rpmlint passes on specfile - -* Mon Sep 24 2018 Tom Stellard - 7.0.0-1 -- 7.0.0-1 Release - -* Wed Sep 12 2018 Tom Stellard - 7.0.0-0.4.rc3 -- 7.0.0-rc3 Release - -* Fri Sep 07 2018 Tom Stellard - 7.0.0-0.3.rc1 -- Use python3 for build scripts - -* Thu Sep 06 2018 Tom Stellard - 7.0.0-0.2.rc1 -- Drop BuildRequires: python2 - -* Tue Aug 14 2018 Tom Stellard - 7.0.0-0.1.rc1 -- 7.0.0-rc1 Release - -* Thu Jul 12 2018 Fedora Release Engineering - 6.0.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Thu Jun 28 2018 Tom Stellard - 6.0.1-1 -- 6.0.1 Release - -* Mon Mar 19 2018 Iryna Shcherbina - 6.0.0-2 -- Update Python 2 dependency declarations to new packaging standards - (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) - -* Thu Mar 08 2018 Tom Stellard - 6.0.0-1 -- 6.0.0 Release - -* Tue Feb 13 2018 Tom Stellard - 6.0.0-0.4.rc2 -- 6.0.0-rc2 Release - -* Tue Feb 13 2018 Tom Stellard - 6.0.0-0.3.rc1 -- Fix build on AArch64 - -* Wed Feb 07 2018 Fedora Release Engineering - 6.0.0-0.2.rc1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Thu Jan 25 2018 Tom Stellard - 6.0.0-0.1.rc1 -- 6.0.0-rc1 Release - -* Wed Jan 17 2018 Tom Stellard - 5.0.1-2 -- Build libFuzzer with gcc - -* Wed Dec 20 2017 Tom Stellard - 5.0.1-1 -- 5.0.1 Release - -* Fri Oct 13 2017 Tom Stellard - 5.0.0-1 -- 5.0.0 Release - -* Mon Sep 25 2017 Tom Stellard - 4.0.1-6 -- Fix AArch64 build with glibc 2.26 - -* Tue Sep 12 2017 Tom Stellard - 4.0.1-5 -- Package libFuzzer - -* Wed Aug 02 2017 Fedora Release Engineering - 4.0.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 4.0.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Fri Jun 23 2017 Tom Stellard - 4.0.1-2 -- Fix build with newer glibc - -* Fri Jun 23 2017 Tom Stellard - 4.0.1-1 -- 4.0.1 Release - -* Tue Mar 14 2017 Tom Stellard - 4.0.0-1 -- compiler-rt 4.0.0 Final Release - -* Thu Mar 02 2017 Dave Airlie - 3.9.1-1 -- compiler-rt 3.9.1 - -* Fri Feb 10 2017 Fedora Release Engineering - 3.9.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Mon Nov 21 2016 Dan Horák - 3.9.0-3 -- disable debuginfo on s390(x) - -* Wed Nov 02 2016 Dave Airlie - 3.9.0-2 -- build for new arches. - -* Wed Oct 26 2016 Dave Airlie - 3.9.0-1 -- compiler-rt 3.9.0 final release - -* Mon May 2 2016 Tom Callaway 3.8.0-2 -- make symlinks to where the linker thinks these libs are - -* Thu Mar 10 2016 Dave Airlie 3.8.0-1 -- compiler-rt 3.8.0 final release - -* Thu Mar 03 2016 Dave Airlie 3.8.0-0.2 -- compiler-rt 3.8.0rc3 - -* Thu Feb 18 2016 Dave Airlie - 3.8.0-0.1 -- compiler-rt 3.8.0rc2 - -* Fri Feb 05 2016 Dave Airlie 3.7.1-3 -- fix compiler-rt paths - from rwindz0@gmail.com - #1304605 - -* Wed Feb 03 2016 Fedora Release Engineering - 3.7.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Oct 06 2015 Jan Vcelak 3.7.0-100 -- initial version using cmake build system diff --git a/modular/llvm/libomp/libomp.spec b/modular/llvm/libomp/libomp.spec deleted file mode 100644 index 2f50c7b..0000000 --- a/modular/llvm/libomp/libomp.spec +++ /dev/null @@ -1,544 +0,0 @@ -%bcond_with snapshot_build - -%if %{with snapshot_build} -# Unlock LLVM Snapshot LUA functions -%{llvm_sb} -%endif - -%global maj_ver 18 -%global min_ver 1 -%global libomp_version %{maj_ver}.%{min_ver}.8 -#global rc_ver 4 -%global libomp_srcdir openmp-%{libomp_version}%{?rc_ver:rc%{rc_ver}}.src -%global so_suffix %{maj_ver}.%{min_ver} - -%if %{with snapshot_build} -%undefine rc_ver -%global maj_ver %{llvm_snapshot_version_major} -%global libomp_version %{llvm_snapshot_version} -%global so_suffix %{maj_ver}.%{min_ver}%{llvm_snapshot_version_suffix} -%endif - -%global libomp_srcdir openmp-%{libomp_version}%{?rc_ver:rc%{rc_ver}}.src - -%global toolchain clang - -# Opt out of https://fedoraproject.org/wiki/Changes/fno-omit-frame-pointer -# https://bugzilla.redhat.com/show_bug.cgi?id=2158587 -%undefine _include_frame_pointers - -%undefine __cmake_in_source_build - -%ifarch ppc64le -%global libomp_arch ppc64 -%else -%global libomp_arch %{_arch} -%endif - -%global __python3 /usr/bin/python3 - -Name: libomp -Version: %{libomp_version}%{?rc_ver:~rc%{rc_ver}}%{?llvm_snapshot_version_suffix:~%{llvm_snapshot_version_suffix}} -Release: 1%{?dist} -Summary: OpenMP runtime for clang - -License: Apache-2.0 WITH LLVM-exception OR NCSA -URL: http://openmp.llvm.org -%if %{with snapshot_build} -Source0: %{llvm_snapshot_source_prefix}openmp-%{llvm_snapshot_yyyymmdd}.src.tar.xz -%{llvm_snapshot_extra_source_tags} -%else -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: release-keys.asc -%endif - -BuildRequires: clang >= %{maj_ver} -# For clang-offload-packager -BuildRequires: clang-tools-extra -BuildRequires: cmake -BuildRequires: ninja-build -BuildRequires: elfutils-libelf-devel -BuildRequires: perl -BuildRequires: perl-Data-Dumper -BuildRequires: perl-Encode -BuildRequires: libffi-devel - -# For gpg source verification -BuildRequires: gnupg2 - -# libomptarget needs the llvm cmake files -BuildRequires: llvm-devel -BuildRequires: llvm-cmake-utils - -Requires: elfutils-libelf%{?isa} - -%description -OpenMP runtime for clang. - -%package devel -Summary: OpenMP header files -Requires: %{name}%{?isa} = %{version}-%{release} -Requires: clang-resource-filesystem%{?isa} = %{version} - -%description devel -OpenMP header files. - -%prep -%if %{without snapshot_build} -%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' -%endif -%autosetup -n %{libomp_srcdir} -p2 - -%build -%cmake -GNinja \ - -DLIBOMP_INSTALL_ALIASES=OFF \ - -DCMAKE_MODULE_PATH=%{_datadir}/llvm/cmake/Modules \ - -DLLVM_DIR=%{_libdir}/cmake/llvm \ - -DCMAKE_INSTALL_INCLUDEDIR=%{_prefix}/lib/clang/%{maj_ver}/include \ -%if 0%{?__isa_bits} == 64 - -DOPENMP_LIBDIR_SUFFIX=64 \ -%else - -DOPENMP_LIBDIR_SUFFIX= \ -%endif -%if %{with snapshot_build} - -DLLVM_VERSION_SUFFIX="%{llvm_snapshot_version_suffix}" \ -%endif - -DPython3_EXECUTABLE=%{__python3} \ - -DCMAKE_SKIP_RPATH:BOOL=ON - -%cmake_build - - -%install -%cmake_install - -# Remove static libraries with equivalent shared libraries -rm -rf %{buildroot}%{_libdir}/libarcher_static.a - -%check -%cmake_build --target check-openmp - -%files -%license LICENSE.TXT -%{_libdir}/libomp.so -%{_libdir}/libompd.so -%ifnarch %{arm} -%{_libdir}/libarcher.so -%endif -%ifnarch %{ix86} %{arm} -# libomptarget is not supported on 32-bit systems. -# s390x does not support the offloading plugins. -%ifnarch s390x -%{_libdir}/libomptarget.rtl.amdgpu.so.%{so_suffix} -%{_libdir}/libomptarget.rtl.cuda.so.%{so_suffix} -%{_libdir}/libomptarget.rtl.%{libomp_arch}.so.%{so_suffix} -%endif -%{_libdir}/libomptarget.so.%{so_suffix} -%endif - -%files devel -%{_prefix}/lib/clang/%{maj_ver}/include/omp.h -%{_prefix}/lib/clang/%{maj_ver}/include/ompx.h -%ifnarch %{arm} -%{_prefix}/lib/clang/%{maj_ver}/include/omp-tools.h -%{_prefix}/lib/clang/%{maj_ver}/include/ompt.h -%{_prefix}/lib/clang/%{maj_ver}/include/ompt-multiplex.h -%endif -%{_libdir}/cmake/openmp/FindOpenMPTarget.cmake -%ifnarch %{ix86} %{arm} -# libomptarget is not supported on 32-bit systems. -# s390x does not support the offloading plugins. -%ifnarch s390x -%{_libdir}/libomptarget.rtl.amdgpu.so -%{_libdir}/libomptarget.rtl.cuda.so -%{_libdir}/libomptarget.rtl.%{libomp_arch}.so -%endif -%{_libdir}/libomptarget.devicertl.a -%{_libdir}/libomptarget-amdgpu-*.bc -%{_libdir}/libomptarget-nvptx-*.bc -%{_libdir}/libomptarget.so -%endif -%{_datadir}/gdb/python/ompd/* - -%changelog -* Mon Jul 29 2024 Raven - 18.1.8-1 -- 18.1.8 Release - -* Fri May 03 2024 Tom Stellard - 18.1.4-1 -- 18.1.4 Release - -* Wed Apr 17 2024 Tom Stellard - 18.1.3-1 -- 18.1.3 Release - -* Fri Mar 22 2024 Tom Stellard - 18.1.2-1 -- 18.1.2 Release - -* Wed Mar 13 2024 Tom Stellard - 18.1.1-1 -- 18.1.1 Release - -* Thu Feb 29 2024 Tom Stellard - 18.1.0~rc4-1 -- 18.1.0-rc4 Release - -* Thu Jan 25 2024 Fedora Release Engineering - 17.0.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sun Jan 21 2024 Fedora Release Engineering - 17.0.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -%{?llvm_snapshot_changelog_entry} - -* Wed Nov 29 2023 Tulio Magno Quites Machado Filho - 17.0.6-1 -- Update to LLVM 17.0.6 - -* Wed Nov 01 2023 Tulio Magno Quites Machado Filho - 17.0.4-1 -- Update to LLVM 17.0.4 - -* Wed Oct 18 2023 Tulio Magno Quites Machado Filho - 17.0.3-1 -- Update to LLVM 17.0.3 - -* Thu Oct 05 2023 Tulio Magno Quites Machado Filho - 17.0.2-1 -- Update to LLVM 17.0.2 - -* Mon Sep 25 2023 Tulio Magno Quites Machado Filho - 17.0.1-1 -- Update to LLVM 17.0.1 - -* Mon Sep 11 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc4-1 -- Update to LLVM 17.0.0 RC4 - -* Fri Aug 25 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc3-1 -- Update to LLVM 17.0.0 RC3 - -* Wed Aug 23 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc2-1 -- Update to LLVM 17.0.0 RC2 - -* Wed Aug 02 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc1-1 -- Update to LLVM 17.0.0 RC1 - -* Thu Jul 20 2023 Fedora Release Engineering - 16.0.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Mon Jul 10 2023 Tulio Magno Quites Machado Filho - 16.0.6-1 -- Update to LLVM 16.0.6 - -* Wed Jun 28 2023 Tulio Magno Quites Machado Filho - 16.0.5-4 -- Specify the required clang version at build time - -* Sat Jun 17 2023 Tom Stellard - 16.0.5-3 -- Remove libomp-test package - -* Thu Jun 15 2023 Nikita Popov - 16.0.5-2 -- Use llvm-cmake-utils package - -* Tue Jun 06 2023 Tulio Magno Quites Machado Filho - 16.0.5-1 -- Update to LLVM 16.0.5 - -* Fri May 19 2023 Tulio Magno Quites Machado Filho - 16.0.4-1 -- Update to LLVM 16.0.4 - -* Wed May 10 2023 Tulio Magno Quites Machado Filho - 16.0.3-1 -- Update to LLVM 16.0.3 - -* Thu Apr 27 2023 Tulio Magno Quites Machado Filho - 16.0.2-1 -- Update to LLVM 16.0.2 - -* Wed Apr 19 2023 Tulio Magno Quites Machado Filho - 16.0.1-3 -- Bump the release. Fix rhbz#2187642. - -* Tue Apr 18 2023 Tulio Magno Quites Machado Filho - 16.0.1-2 -- Be explicit about libomp-devel denpending on libomp. Fix rhbz#2187642. - -* Thu Apr 13 2023 Tulio Magno Quites Machado Filho - 16.0.1-1 -- Update to LLVM 16.0.1 - -* Tue Mar 21 2023 Tulio Magno Quites Machado Filho - 16.0.0-1 -- Update to LLVM 16.0.0 - -* Wed Mar 15 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc4-1 -- Update to LLVM 16.0.0 RC4 - -* Thu Feb 23 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc3-1 -- Update to LLVM 16.0.0 RC3 - -* Tue Feb 14 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc1-1 -- Update to LLVM 16.0.0 RC1 - -* Tue Jan 31 2023 Tulio Magno Quites Machado Filho - 15.0.7-5 -- Include the Apache license adopted in 2019. - -* Fri Jan 20 2023 Tom Stellard - 15.0.7-4 -- Omit frame pointers when building - -* Fri Jan 20 2023 Nikita Popov - 15.0.7-3 -- Fix build against GCC 13 - -* Thu Jan 19 2023 Fedora Release Engineering - 15.0.7-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Fri Jan 13 2023 Nikita Popov - 15.0.7-1 -- Update to LLVM 15.0.7 - -* Tue Dec 06 2022 Nikita Popov - 15.0.6-1 -- Update to LLVM 15.0.6 - -* Mon Nov 07 2022 Nikita Popov - 15.0.4-1 -- Update to LLVM 15.0.4 - -* Mon Sep 12 2022 Nikita Popov - 15.0.0-3 -- Re-enable LTO build - -* Mon Sep 12 2022 Nikita Popov - 15.0.0-2 -- Add explicit requires from libomp-devel to libomp - -* Tue Sep 06 2022 Nikita Popov - 15.0.0-1 -- Update to LLVM 15.0.0 - -* Thu Jul 21 2022 Fedora Release Engineering - 14.0.5-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Mon Jun 20 2022 Timm Bäder - 14.0.5-1 -- 14.0.5 Release - -* Thu Mar 24 2022 Timm Bäder - 14.0.0-1 -- 14.0.0 Release - -* Thu Feb 03 2022 Nikita Popov - 13.0.1-1 -- Update to LLVM 13.0.1 final - -* Tue Jan 25 2022 Nikita Popov - 13.0.1~rc3-2 -- Update to LLVM 13.0.1rc3 - -* Thu Jan 20 2022 Fedora Release Engineering - 13.0.1~rc2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Thu Jan 13 2022 Nikita Popov - 13.0.1~rc2-1 -- Update to LLVM 13.0.1rc2 - -* Mon Jan 10 2022 Nikita Popov - 13.0.1~rc1-1 -- Update to LLVM 13.0.1rc1 - -* Sat Jan 08 2022 Miro Hrončok - 13.0.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Changes/LIBFFI34 - -* Mon Oct 04 2021 Tom Stellard - 13.0.0-1 -- 13.0.0 Release - -* Tue Sep 21 2021 Tom Stellard - 13.0.0~rc3-1 -- 13.0.0-rc3 Release - -* Mon Aug 09 2021 Tom Stellard - 13.0.0~rc1-1 -- 13.0.0-rc1 Release - -* Thu Jul 22 2021 Fedora Release Engineering - 12.0.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Tue Jul 13 2021 Tom Stellard - 12.0.1-1 -- 12.0.1 Release - -* Thu Jul 01 2021 Tom Stellard - 12.0.1~rc3-1 -- Fix install path - -* Fri Jun 04 2021 Tom Stellard - 12.0.1~rc1-2 -- Fix install path - -* Tue Jun 01 2021 Tom Stellard - 12.0.1~rc1-1 -- 12.0.1-rc1 Release - -* Fri Apr 16 2021 Tom Stellard - 12.0.0-1 -- 12.0.0 Release - -* Thu Apr 08 2021 sguelton@redhat.com - 12.0.0-0.7.rc5 -- New upstream release candidate - -* Fri Apr 02 2021 sguelton@redhat.com - 12.0.0-0.6.rc4 -- New upstream release candidate - -* Wed Mar 31 2021 Jonathan Wakely - 12.0.0-0.5.rc3 -- Rebuilt for removed libstdc++ symbols (#1937698) - -* Thu Mar 11 2021 sguelton@redhat.com - 12.0.0-0.4.rc3 -- LLVM 12.0.0 rc3 - -* Tue Mar 09 2021 sguelton@redhat.com - 12.0.0-0.3.rc2 -- rebuilt - -* Wed Feb 24 2021 sguelton@redhat.com - 12.0.0-0.2.rc2 -- 12.0.0-rc2 release - -* Mon Feb 22 2021 sguelton@redhat.com - 12.0.0-0.1.rc1 -- 12.0.0-rc1 release - -* Tue Jan 26 2021 Fedora Release Engineering - 11.1.0-0.3.rc2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Fri Jan 22 2021 Serge Guelton - 11.1.0-0.2.rc2 -- llvm 11.1.0-rc2 release - -* Thu Jan 14 2021 Serge Guelton - 11.1.0-0.1.rc1 -- 11.1.0-rc1 release - -* Wed Jan 06 2021 Serge Guelton - 11.0.1-3 -- LLVM 11.0.1 final - -* Tue Dec 22 2020 sguelton@redhat.com - 11.0.1-2.rc2 -- llvm 11.0.1-rc2 - -* Tue Dec 01 2020 sguelton@redhat.com - 11.0.1-1.rc1 -- llvm 11.0.1-rc1 - -* Wed Oct 28 2020 Tom Stellard - 11.0.0-2 -- Replace clang-devel dependency with clang-resource-filesystem - -* Thu Oct 15 2020 sguelton@redhat.com - 11.0.0-1 -- Fix NVR - -* Mon Oct 12 2020 sguelton@redhat.com - 11.0.0-0.5 -- llvm 11.0.0 - final release - -* Thu Oct 08 2020 sguelton@redhat.com - 11.0.0-0.4.rc6 -- 11.0.0-rc6 - -* Fri Oct 02 2020 sguelton@redhat.com - 11.0.0-0.3.rc5 -- 11.0.0-rc5 Release - -* Sun Sep 27 2020 sguelton@redhat.com - 11.0.0-0.2.rc3 -- Fix NVR - -* Thu Sep 24 2020 sguelton@redhat.com - 11.0.0-0.1.rc3 -- 11.0.0-rc3 Release - -* Tue Sep 01 2020 sguelton@redhat.com - 11.0.0-0.1.rc2 -- 11.0.0-rc2 Release - -* Mon Aug 10 2020 Tom Stellard - 11.0.0-0.1.rc1 -- 11.0.0-rc1 Release - -* Mon Aug 10 2020 sguelton@redhat.com - 10.0.0-8 -- Make gcc dependency explicit, see https://fedoraproject.org/wiki/Packaging:C_and_C%2B%2B#BuildRequires_and_Requires -- use %%license macro - -* Sat Aug 08 2020 Jeff Law - 10.0.0-7 -- Disable LTO for now - -* Sat Aug 01 2020 Fedora Release Engineering - 10.0.0-6 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue Jul 28 2020 Fedora Release Engineering - 10.0.0-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 20 2020 sguelton@redhat.com - 10.0.0-4 -- Use modern cmake macro -- Use gnupg verify - -* Tue Jun 16 2020 sguelton@redhat.com - 10.0.0-3 -- Add Requires: libomp = %%{version}-%%{release} to libomp-test to avoid - the need to test interoperability between the various combinations of old - and new subpackages. - -* Mon Jun 01 2020 sguelton@redhat.com - 10.0.0-2 -- Add Requires: libomp-devel = %%{version}-%%{release} to libomp-test to avoid - the need to test interoperability between the various combinations of old - and new subpackages. - -* Mon Mar 30 2020 sguelton@redhat.com - 10.0.0-1 -- 10.0.0 final - -* Wed Mar 25 2020 sguelton@redhat.com - 10.0.0-0.6.rc6 -- 10.0.0 rc6 - -* Fri Mar 20 2020 sguelton@redhat.com - 10.0.0-0.5.rc5 -- 10.0.0 rc5 - -* Sun Mar 15 2020 sguelton@redhat.com - 10.0.0-0.4.rc4 -- 10.0.0 rc4 - -* Thu Mar 05 2020 sguelton@redhat.com - 10.0.0-0.3.rc3 -- 10.0.0 rc3 - -* Fri Feb 14 2020 sguelton@redhat.com - 10.0.0-0.2.rc2 -- 10.0.0 rc2 - -* Fri Jan 31 2020 sguelton@redhat.com - 10.0.0-0.1.rc1 -- 10.0.0 rc1 - -* Wed Jan 29 2020 Fedora Release Engineering - 9.0.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Thu Dec 19 2019 Tom Stellard - 9.0.1-1 -- 9.0.1 Release - -* Thu Sep 19 2019 Tom Stellard - 9.0.0-1 -- 9.0.0 Release - -* Thu Aug 22 2019 Tom Stellard - 9.0.0-0.1.rc3 -- 9.0.0-rc3 Release - -* Thu Jul 25 2019 Fedora Release Engineering - 8.0.0-2.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Thu Apr 25 2019 Tom Stellard - 8.0.0-2 -- Simplify libomp-test package - -* Wed Mar 20 2019 sguelton@redhat.com - 8.0.0-1 -- 8.0.0 final - -* Tue Mar 12 2019 sguelton@redhat.com - 8.0.0-0.3.rc4 -- 8.0.0 Release candidate 4 - -* Mon Feb 11 2019 sguelton@redhat.com - 8.0.0-0.2.rc2 -- 8.0.0 Release candidate 2 - -* Mon Feb 11 2019 sguelton@redhat.com - 8.0.0-0.1.rc1 -- 8.0.0 Release candidate 1 - -* Fri Feb 01 2019 Fedora Release Engineering - 7.0.1-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Mon Dec 17 2018 sguelton@redhat.com - 7.0.1-1 -- 7.0.1 Release - -* Wed Sep 12 2018 Tom Stellard - 7.0.0-1 -- 7.0.1 Release - -* Wed Sep 12 2018 Tom Stellard - 7.0.0-0.2.rc3 -- 7.0.0-rc3 Release - -* Tue Aug 14 2018 Tom Stellard - 7.0.0-0.1.rc1 -- 7.0.1-rc1 Release - -* Fri Jul 13 2018 Fedora Release Engineering - 6.0.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Mon Jul 02 2018 Tom Stellard - 6.0.1-2 -- Add -threads option to runtest.sh - -* Thu Jun 28 2018 Tom Stellard - 6.0.1-1 -- 6.0.1 Release - -* Fri May 11 2018 Tom Stellard - 6.0.0-0.1.rc1 -- 6.0.1-rc1 Release - -* Wed Mar 28 2018 Tom Stellard - 6.0.0-3 -- Add test package - -* Wed Mar 28 2018 Tom Stellard - 6.0.0-2 -- Enable libomptarget plugins - -* Fri Mar 09 2018 Tom Stellard - 6.0.0-1 -- 6.0.0 Release - -* Tue Feb 13 2018 Tom Stellard - 6.0.0-0.3.rc2 -- 6.0.0-rc2 Release - -* Wed Feb 07 2018 Fedora Release Engineering - 6.0.0-0.2.rc1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Thu Jan 25 2018 Tom Stellard - 6.0.0-0.1.rc1 -- 6.0.0-rc1 Release - -* Thu Dec 21 2017 Tom Stellard - 5.0.1-1 -- 5.0.1 Release. - -* Mon May 15 2017 Tom Stellard - 5.0.0-1 -- Initial version. diff --git a/modular/llvm/lld/0002-PATCH-lld-Import-compact_unwind_encoding.h-from-libu.patch b/modular/llvm/lld/0002-PATCH-lld-Import-compact_unwind_encoding.h-from-libu.patch deleted file mode 100644 index 8d31209..0000000 --- a/modular/llvm/lld/0002-PATCH-lld-Import-compact_unwind_encoding.h-from-libu.patch +++ /dev/null @@ -1,497 +0,0 @@ -From 9df81767571465ef1f2e7370299e21c64fe34f40 Mon Sep 17 00:00:00 2001 -From: serge-sans-paille -Date: Thu, 25 Feb 2021 14:24:14 +0100 -Subject: [PATCH][lld] Import compact_unwind_encoding.h from libunwind - -This avoids an implicit cross package dependency ---- - lld/include/mach-o/compact_unwind_encoding.h | 477 +++++++++++++++++++ - 1 file changed, 477 insertions(+) - create mode 100644 lld/include/mach-o/compact_unwind_encoding.h - -diff --git a/lld/include/mach-o/compact_unwind_encoding.h b/lld/include/mach-o/compact_unwind_encoding.h -new file mode 100644 -index 000000000000..5301b1055ef9 ---- /dev/null -+++ b/lld/include/mach-o/compact_unwind_encoding.h -@@ -0,0 +1,477 @@ -+//===------------------ mach-o/compact_unwind_encoding.h ------------------===// -+// -+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -+// See https://llvm.org/LICENSE.txt for license information. -+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -+// -+// -+// Darwin's alternative to DWARF based unwind encodings. -+// -+//===----------------------------------------------------------------------===// -+ -+ -+#ifndef __COMPACT_UNWIND_ENCODING__ -+#define __COMPACT_UNWIND_ENCODING__ -+ -+#include -+ -+// -+// Compilers can emit standard DWARF FDEs in the __TEXT,__eh_frame section -+// of object files. Or compilers can emit compact unwind information in -+// the __LD,__compact_unwind section. -+// -+// When the linker creates a final linked image, it will create a -+// __TEXT,__unwind_info section. This section is a small and fast way for the -+// runtime to access unwind info for any given function. If the compiler -+// emitted compact unwind info for the function, that compact unwind info will -+// be encoded in the __TEXT,__unwind_info section. If the compiler emitted -+// DWARF unwind info, the __TEXT,__unwind_info section will contain the offset -+// of the FDE in the __TEXT,__eh_frame section in the final linked image. -+// -+// Note: Previously, the linker would transform some DWARF unwind infos into -+// compact unwind info. But that is fragile and no longer done. -+ -+ -+// -+// The compact unwind endoding is a 32-bit value which encoded in an -+// architecture specific way, which registers to restore from where, and how -+// to unwind out of the function. -+// -+typedef uint32_t compact_unwind_encoding_t; -+ -+ -+// architecture independent bits -+enum { -+ UNWIND_IS_NOT_FUNCTION_START = 0x80000000, -+ UNWIND_HAS_LSDA = 0x40000000, -+ UNWIND_PERSONALITY_MASK = 0x30000000, -+}; -+ -+ -+ -+ -+// -+// x86 -+// -+// 1-bit: start -+// 1-bit: has lsda -+// 2-bit: personality index -+// -+// 4-bits: 0=old, 1=ebp based, 2=stack-imm, 3=stack-ind, 4=DWARF -+// ebp based: -+// 15-bits (5*3-bits per reg) register permutation -+// 8-bits for stack offset -+// frameless: -+// 8-bits stack size -+// 3-bits stack adjust -+// 3-bits register count -+// 10-bits register permutation -+// -+enum { -+ UNWIND_X86_MODE_MASK = 0x0F000000, -+ UNWIND_X86_MODE_EBP_FRAME = 0x01000000, -+ UNWIND_X86_MODE_STACK_IMMD = 0x02000000, -+ UNWIND_X86_MODE_STACK_IND = 0x03000000, -+ UNWIND_X86_MODE_DWARF = 0x04000000, -+ -+ UNWIND_X86_EBP_FRAME_REGISTERS = 0x00007FFF, -+ UNWIND_X86_EBP_FRAME_OFFSET = 0x00FF0000, -+ -+ UNWIND_X86_FRAMELESS_STACK_SIZE = 0x00FF0000, -+ UNWIND_X86_FRAMELESS_STACK_ADJUST = 0x0000E000, -+ UNWIND_X86_FRAMELESS_STACK_REG_COUNT = 0x00001C00, -+ UNWIND_X86_FRAMELESS_STACK_REG_PERMUTATION = 0x000003FF, -+ -+ UNWIND_X86_DWARF_SECTION_OFFSET = 0x00FFFFFF, -+}; -+ -+enum { -+ UNWIND_X86_REG_NONE = 0, -+ UNWIND_X86_REG_EBX = 1, -+ UNWIND_X86_REG_ECX = 2, -+ UNWIND_X86_REG_EDX = 3, -+ UNWIND_X86_REG_EDI = 4, -+ UNWIND_X86_REG_ESI = 5, -+ UNWIND_X86_REG_EBP = 6, -+}; -+ -+// -+// For x86 there are four modes for the compact unwind encoding: -+// UNWIND_X86_MODE_EBP_FRAME: -+// EBP based frame where EBP is push on stack immediately after return address, -+// then ESP is moved to EBP. Thus, to unwind ESP is restored with the current -+// EPB value, then EBP is restored by popping off the stack, and the return -+// is done by popping the stack once more into the pc. -+// All non-volatile registers that need to be restored must have been saved -+// in a small range in the stack that starts EBP-4 to EBP-1020. The offset/4 -+// is encoded in the UNWIND_X86_EBP_FRAME_OFFSET bits. The registers saved -+// are encoded in the UNWIND_X86_EBP_FRAME_REGISTERS bits as five 3-bit entries. -+// Each entry contains which register to restore. -+// UNWIND_X86_MODE_STACK_IMMD: -+// A "frameless" (EBP not used as frame pointer) function with a small -+// constant stack size. To return, a constant (encoded in the compact -+// unwind encoding) is added to the ESP. Then the return is done by -+// popping the stack into the pc. -+// All non-volatile registers that need to be restored must have been saved -+// on the stack immediately after the return address. The stack_size/4 is -+// encoded in the UNWIND_X86_FRAMELESS_STACK_SIZE (max stack size is 1024). -+// The number of registers saved is encoded in UNWIND_X86_FRAMELESS_STACK_REG_COUNT. -+// UNWIND_X86_FRAMELESS_STACK_REG_PERMUTATION constains which registers were -+// saved and their order. -+// UNWIND_X86_MODE_STACK_IND: -+// A "frameless" (EBP not used as frame pointer) function large constant -+// stack size. This case is like the previous, except the stack size is too -+// large to encode in the compact unwind encoding. Instead it requires that -+// the function contains "subl $nnnnnnnn,ESP" in its prolog. The compact -+// encoding contains the offset to the nnnnnnnn value in the function in -+// UNWIND_X86_FRAMELESS_STACK_SIZE. -+// UNWIND_X86_MODE_DWARF: -+// No compact unwind encoding is available. Instead the low 24-bits of the -+// compact encoding is the offset of the DWARF FDE in the __eh_frame section. -+// This mode is never used in object files. It is only generated by the -+// linker in final linked images which have only DWARF unwind info for a -+// function. -+// -+// The permutation encoding is a Lehmer code sequence encoded into a -+// single variable-base number so we can encode the ordering of up to -+// six registers in a 10-bit space. -+// -+// The following is the algorithm used to create the permutation encoding used -+// with frameless stacks. It is passed the number of registers to be saved and -+// an array of the register numbers saved. -+// -+//uint32_t permute_encode(uint32_t registerCount, const uint32_t registers[6]) -+//{ -+// uint32_t renumregs[6]; -+// for (int i=6-registerCount; i < 6; ++i) { -+// int countless = 0; -+// for (int j=6-registerCount; j < i; ++j) { -+// if ( registers[j] < registers[i] ) -+// ++countless; -+// } -+// renumregs[i] = registers[i] - countless -1; -+// } -+// uint32_t permutationEncoding = 0; -+// switch ( registerCount ) { -+// case 6: -+// permutationEncoding |= (120*renumregs[0] + 24*renumregs[1] -+// + 6*renumregs[2] + 2*renumregs[3] -+// + renumregs[4]); -+// break; -+// case 5: -+// permutationEncoding |= (120*renumregs[1] + 24*renumregs[2] -+// + 6*renumregs[3] + 2*renumregs[4] -+// + renumregs[5]); -+// break; -+// case 4: -+// permutationEncoding |= (60*renumregs[2] + 12*renumregs[3] -+// + 3*renumregs[4] + renumregs[5]); -+// break; -+// case 3: -+// permutationEncoding |= (20*renumregs[3] + 4*renumregs[4] -+// + renumregs[5]); -+// break; -+// case 2: -+// permutationEncoding |= (5*renumregs[4] + renumregs[5]); -+// break; -+// case 1: -+// permutationEncoding |= (renumregs[5]); -+// break; -+// } -+// return permutationEncoding; -+//} -+// -+ -+ -+ -+ -+// -+// x86_64 -+// -+// 1-bit: start -+// 1-bit: has lsda -+// 2-bit: personality index -+// -+// 4-bits: 0=old, 1=rbp based, 2=stack-imm, 3=stack-ind, 4=DWARF -+// rbp based: -+// 15-bits (5*3-bits per reg) register permutation -+// 8-bits for stack offset -+// frameless: -+// 8-bits stack size -+// 3-bits stack adjust -+// 3-bits register count -+// 10-bits register permutation -+// -+enum { -+ UNWIND_X86_64_MODE_MASK = 0x0F000000, -+ UNWIND_X86_64_MODE_RBP_FRAME = 0x01000000, -+ UNWIND_X86_64_MODE_STACK_IMMD = 0x02000000, -+ UNWIND_X86_64_MODE_STACK_IND = 0x03000000, -+ UNWIND_X86_64_MODE_DWARF = 0x04000000, -+ -+ UNWIND_X86_64_RBP_FRAME_REGISTERS = 0x00007FFF, -+ UNWIND_X86_64_RBP_FRAME_OFFSET = 0x00FF0000, -+ -+ UNWIND_X86_64_FRAMELESS_STACK_SIZE = 0x00FF0000, -+ UNWIND_X86_64_FRAMELESS_STACK_ADJUST = 0x0000E000, -+ UNWIND_X86_64_FRAMELESS_STACK_REG_COUNT = 0x00001C00, -+ UNWIND_X86_64_FRAMELESS_STACK_REG_PERMUTATION = 0x000003FF, -+ -+ UNWIND_X86_64_DWARF_SECTION_OFFSET = 0x00FFFFFF, -+}; -+ -+enum { -+ UNWIND_X86_64_REG_NONE = 0, -+ UNWIND_X86_64_REG_RBX = 1, -+ UNWIND_X86_64_REG_R12 = 2, -+ UNWIND_X86_64_REG_R13 = 3, -+ UNWIND_X86_64_REG_R14 = 4, -+ UNWIND_X86_64_REG_R15 = 5, -+ UNWIND_X86_64_REG_RBP = 6, -+}; -+// -+// For x86_64 there are four modes for the compact unwind encoding: -+// UNWIND_X86_64_MODE_RBP_FRAME: -+// RBP based frame where RBP is push on stack immediately after return address, -+// then RSP is moved to RBP. Thus, to unwind RSP is restored with the current -+// EPB value, then RBP is restored by popping off the stack, and the return -+// is done by popping the stack once more into the pc. -+// All non-volatile registers that need to be restored must have been saved -+// in a small range in the stack that starts RBP-8 to RBP-2040. The offset/8 -+// is encoded in the UNWIND_X86_64_RBP_FRAME_OFFSET bits. The registers saved -+// are encoded in the UNWIND_X86_64_RBP_FRAME_REGISTERS bits as five 3-bit entries. -+// Each entry contains which register to restore. -+// UNWIND_X86_64_MODE_STACK_IMMD: -+// A "frameless" (RBP not used as frame pointer) function with a small -+// constant stack size. To return, a constant (encoded in the compact -+// unwind encoding) is added to the RSP. Then the return is done by -+// popping the stack into the pc. -+// All non-volatile registers that need to be restored must have been saved -+// on the stack immediately after the return address. The stack_size/8 is -+// encoded in the UNWIND_X86_64_FRAMELESS_STACK_SIZE (max stack size is 2048). -+// The number of registers saved is encoded in UNWIND_X86_64_FRAMELESS_STACK_REG_COUNT. -+// UNWIND_X86_64_FRAMELESS_STACK_REG_PERMUTATION constains which registers were -+// saved and their order. -+// UNWIND_X86_64_MODE_STACK_IND: -+// A "frameless" (RBP not used as frame pointer) function large constant -+// stack size. This case is like the previous, except the stack size is too -+// large to encode in the compact unwind encoding. Instead it requires that -+// the function contains "subq $nnnnnnnn,RSP" in its prolog. The compact -+// encoding contains the offset to the nnnnnnnn value in the function in -+// UNWIND_X86_64_FRAMELESS_STACK_SIZE. -+// UNWIND_X86_64_MODE_DWARF: -+// No compact unwind encoding is available. Instead the low 24-bits of the -+// compact encoding is the offset of the DWARF FDE in the __eh_frame section. -+// This mode is never used in object files. It is only generated by the -+// linker in final linked images which have only DWARF unwind info for a -+// function. -+// -+ -+ -+// ARM64 -+// -+// 1-bit: start -+// 1-bit: has lsda -+// 2-bit: personality index -+// -+// 4-bits: 4=frame-based, 3=DWARF, 2=frameless -+// frameless: -+// 12-bits of stack size -+// frame-based: -+// 4-bits D reg pairs saved -+// 5-bits X reg pairs saved -+// DWARF: -+// 24-bits offset of DWARF FDE in __eh_frame section -+// -+enum { -+ UNWIND_ARM64_MODE_MASK = 0x0F000000, -+ UNWIND_ARM64_MODE_FRAMELESS = 0x02000000, -+ UNWIND_ARM64_MODE_DWARF = 0x03000000, -+ UNWIND_ARM64_MODE_FRAME = 0x04000000, -+ -+ UNWIND_ARM64_FRAME_X19_X20_PAIR = 0x00000001, -+ UNWIND_ARM64_FRAME_X21_X22_PAIR = 0x00000002, -+ UNWIND_ARM64_FRAME_X23_X24_PAIR = 0x00000004, -+ UNWIND_ARM64_FRAME_X25_X26_PAIR = 0x00000008, -+ UNWIND_ARM64_FRAME_X27_X28_PAIR = 0x00000010, -+ UNWIND_ARM64_FRAME_D8_D9_PAIR = 0x00000100, -+ UNWIND_ARM64_FRAME_D10_D11_PAIR = 0x00000200, -+ UNWIND_ARM64_FRAME_D12_D13_PAIR = 0x00000400, -+ UNWIND_ARM64_FRAME_D14_D15_PAIR = 0x00000800, -+ -+ UNWIND_ARM64_FRAMELESS_STACK_SIZE_MASK = 0x00FFF000, -+ UNWIND_ARM64_DWARF_SECTION_OFFSET = 0x00FFFFFF, -+}; -+// For arm64 there are three modes for the compact unwind encoding: -+// UNWIND_ARM64_MODE_FRAME: -+// This is a standard arm64 prolog where FP/LR are immediately pushed on the -+// stack, then SP is copied to FP. If there are any non-volatile registers -+// saved, then are copied into the stack frame in pairs in a contiguous -+// range right below the saved FP/LR pair. Any subset of the five X pairs -+// and four D pairs can be saved, but the memory layout must be in register -+// number order. -+// UNWIND_ARM64_MODE_FRAMELESS: -+// A "frameless" leaf function, where FP/LR are not saved. The return address -+// remains in LR throughout the function. If any non-volatile registers -+// are saved, they must be pushed onto the stack before any stack space is -+// allocated for local variables. The stack sized (including any saved -+// non-volatile registers) divided by 16 is encoded in the bits -+// UNWIND_ARM64_FRAMELESS_STACK_SIZE_MASK. -+// UNWIND_ARM64_MODE_DWARF: -+// No compact unwind encoding is available. Instead the low 24-bits of the -+// compact encoding is the offset of the DWARF FDE in the __eh_frame section. -+// This mode is never used in object files. It is only generated by the -+// linker in final linked images which have only DWARF unwind info for a -+// function. -+// -+ -+ -+ -+ -+ -+//////////////////////////////////////////////////////////////////////////////// -+// -+// Relocatable Object Files: __LD,__compact_unwind -+// -+//////////////////////////////////////////////////////////////////////////////// -+ -+// -+// A compiler can generated compact unwind information for a function by adding -+// a "row" to the __LD,__compact_unwind section. This section has the -+// S_ATTR_DEBUG bit set, so the section will be ignored by older linkers. -+// It is removed by the new linker, so never ends up in final executables. -+// This section is a table, initially with one row per function (that needs -+// unwind info). The table columns and some conceptual entries are: -+// -+// range-start pointer to start of function/range -+// range-length -+// compact-unwind-encoding 32-bit encoding -+// personality-function or zero if no personality function -+// lsda or zero if no LSDA data -+// -+// The length and encoding fields are 32-bits. The other are all pointer sized. -+// -+// In x86_64 assembly, these entry would look like: -+// -+// .section __LD,__compact_unwind,regular,debug -+// -+// #compact unwind for _foo -+// .quad _foo -+// .set L1,LfooEnd-_foo -+// .long L1 -+// .long 0x01010001 -+// .quad 0 -+// .quad 0 -+// -+// #compact unwind for _bar -+// .quad _bar -+// .set L2,LbarEnd-_bar -+// .long L2 -+// .long 0x01020011 -+// .quad __gxx_personality -+// .quad except_tab1 -+// -+// -+// Notes: There is no need for any labels in the the __compact_unwind section. -+// The use of the .set directive is to force the evaluation of the -+// range-length at assembly time, instead of generating relocations. -+// -+// To support future compiler optimizations where which non-volatile registers -+// are saved changes within a function (e.g. delay saving non-volatiles until -+// necessary), there can by multiple lines in the __compact_unwind table for one -+// function, each with a different (non-overlapping) range and each with -+// different compact unwind encodings that correspond to the non-volatiles -+// saved at that range of the function. -+// -+// If a particular function is so wacky that there is no compact unwind way -+// to encode it, then the compiler can emit traditional DWARF unwind info. -+// The runtime will use which ever is available. -+// -+// Runtime support for compact unwind encodings are only available on 10.6 -+// and later. So, the compiler should not generate it when targeting pre-10.6. -+ -+ -+ -+ -+//////////////////////////////////////////////////////////////////////////////// -+// -+// Final Linked Images: __TEXT,__unwind_info -+// -+//////////////////////////////////////////////////////////////////////////////// -+ -+// -+// The __TEXT,__unwind_info section is laid out for an efficient two level lookup. -+// The header of the section contains a coarse index that maps function address -+// to the page (4096 byte block) containing the unwind info for that function. -+// -+ -+#define UNWIND_SECTION_VERSION 1 -+struct unwind_info_section_header -+{ -+ uint32_t version; // UNWIND_SECTION_VERSION -+ uint32_t commonEncodingsArraySectionOffset; -+ uint32_t commonEncodingsArrayCount; -+ uint32_t personalityArraySectionOffset; -+ uint32_t personalityArrayCount; -+ uint32_t indexSectionOffset; -+ uint32_t indexCount; -+ // compact_unwind_encoding_t[] -+ // uint32_t personalities[] -+ // unwind_info_section_header_index_entry[] -+ // unwind_info_section_header_lsda_index_entry[] -+}; -+ -+struct unwind_info_section_header_index_entry -+{ -+ uint32_t functionOffset; -+ uint32_t secondLevelPagesSectionOffset; // section offset to start of regular or compress page -+ uint32_t lsdaIndexArraySectionOffset; // section offset to start of lsda_index array for this range -+}; -+ -+struct unwind_info_section_header_lsda_index_entry -+{ -+ uint32_t functionOffset; -+ uint32_t lsdaOffset; -+}; -+ -+// -+// There are two kinds of second level index pages: regular and compressed. -+// A compressed page can hold up to 1021 entries, but it cannot be used -+// if too many different encoding types are used. The regular page holds -+// 511 entries. -+// -+ -+struct unwind_info_regular_second_level_entry -+{ -+ uint32_t functionOffset; -+ compact_unwind_encoding_t encoding; -+}; -+ -+#define UNWIND_SECOND_LEVEL_REGULAR 2 -+struct unwind_info_regular_second_level_page_header -+{ -+ uint32_t kind; // UNWIND_SECOND_LEVEL_REGULAR -+ uint16_t entryPageOffset; -+ uint16_t entryCount; -+ // entry array -+}; -+ -+#define UNWIND_SECOND_LEVEL_COMPRESSED 3 -+struct unwind_info_compressed_second_level_page_header -+{ -+ uint32_t kind; // UNWIND_SECOND_LEVEL_COMPRESSED -+ uint16_t entryPageOffset; -+ uint16_t entryCount; -+ uint16_t encodingsPageOffset; -+ uint16_t encodingsCount; -+ // 32-bit entry array -+ // encodings array -+}; -+ -+#define UNWIND_INFO_COMPRESSED_ENTRY_FUNC_OFFSET(entry) (entry & 0x00FFFFFF) -+#define UNWIND_INFO_COMPRESSED_ENTRY_ENCODING_INDEX(entry) ((entry >> 24) & 0xFF) -+ -+ -+ -+#endif -+ --- -2.30.2 - diff --git a/modular/llvm/lld/lld.spec b/modular/llvm/lld/lld.spec deleted file mode 100644 index a16743f..0000000 --- a/modular/llvm/lld/lld.spec +++ /dev/null @@ -1,675 +0,0 @@ -%bcond_with snapshot_build - -%if %{with snapshot_build} -# Unlock LLVM Snapshot LUA functions -%{llvm_sb_verbose} -%{llvm_sb} -%endif - -%global toolchain clang - -# Opt out of https://fedoraproject.org/wiki/Changes/fno-omit-frame-pointer -# https://bugzilla.redhat.com/show_bug.cgi?id=2158587 -%undefine _include_frame_pointers - -%bcond_without check -%bcond_with compat_build - -%global maj_ver 18 -%global min_ver 1 -%global patch_ver 8 -#global rc_ver 4 - -%if %{with snapshot_build} -%undefine rc_ver -%global maj_ver %{llvm_snapshot_version_major} -%global min_ver %{llvm_snapshot_version_minor} -%global patch_ver %{llvm_snapshot_version_patch} -%endif - -%global lld_version %{maj_ver}.%{min_ver}.%{patch_ver} - -%global lld_srcdir lld-%{lld_version}%{?rc_ver:rc%{rc_ver}}.src - -%if %{with compat_build} -%global pkg_name lld%{maj_ver} -%global install_prefix %{_libdir}/llvm%{maj_ver} -%global install_includedir %{install_prefix}/include -%global install_libdir %{install_prefix}/lib -%global install_datadir %{install_prefix}/share -%global install_bindir %{install_prefix}/bin -%else -%global pkg_name lld -%global install_prefix /usr -%global install_includedir %{_includedir} -%global install_libdir %{_libdir} -%global install_datadir %{_datadir} -%global install_bindir %{_bindir} -%endif - -%global __python3 /usr/bin/python3 -%undefine __cmake_in_source_build - -Name: %{pkg_name} -Version: %{lld_version}%{?rc_ver:~rc%{rc_ver}}%{?llvm_snapshot_version_suffix:~%{llvm_snapshot_version_suffix}} -Release: 1%{?dist} -Summary: The LLVM Linker - -License: Apache-2.0 WITH LLVM-exception OR NCSA -URL: http://llvm.org -%if %{with snapshot_build} -Source0: %{llvm_snapshot_source_prefix}lld-%{llvm_snapshot_yyyymmdd}.src.tar.xz -%{llvm_snapshot_extra_source_tags} -%else -Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:-rc%{rc_ver}}/%{lld_srcdir}.tar.xz -Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:-rc%{rc_ver}}/%{lld_srcdir}.tar.xz.sig -Source2: release-keys.asc -%endif - -# Bundle libunwind header need during build for MachO support -Patch1: 0002-PATCH-lld-Import-compact_unwind_encoding.h-from-libu.patch - -BuildRequires: clang -BuildRequires: cmake -BuildRequires: ninja-build -%if %{with compat_build} -BuildRequires: llvm%{maj_ver}-devel = %{version} -BuildRequires: llvm%{maj_ver}-cmake-utils = %{version} -%else -BuildRequires: llvm-devel = %{version} -BuildRequires: llvm-cmake-utils = %{version} -BuildRequires: llvm-test = %{version} -BuildRequires: llvm-googletest = %{version} -%endif -BuildRequires: ncurses-devel -BuildRequires: zlib-devel - -# For make check: -BuildRequires: python3-rpm-macros -BuildRequires: python3-lit - -# For gpg source verification -BuildRequires: gnupg2 - -Requires(post): %{_sbindir}/update-alternatives -Requires(preun): %{_sbindir}/update-alternatives - -Requires: %{name}-libs = %{version}-%{release} - -%description -The LLVM project linker. - -%package devel -Summary: Libraries and header files for LLD -Requires: %{name}-libs%{?_isa} = %{version}-%{release} -%if %{without compat_build} -# lld tools are referenced in the cmake files, so we need to add lld as a -# dependency. -Requires: %{name}%{?_isa} = %{version}-%{release} -%endif -Provides: %{name}-devel(major) = %{maj_ver} - -%description devel -This package contains library and header files needed to develop new native -programs that use the LLD infrastructure. - -%package libs -Summary: LLD shared libraries - -%description libs -Shared libraries for LLD. - -%prep -%if %{without snapshot_build} -%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' -%endif - -%autosetup -n %{lld_srcdir} -p2 - -%build - -%cmake \ - -GNinja \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_INSTALL_PREFIX=%{install_prefix} \ - -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ - -DLLVM_DYLIB_COMPONENTS="all" \ - -DLLVM_COMMON_CMAKE_UTILS=%{install_datadir}/llvm/cmake \ - -DCMAKE_SKIP_RPATH:BOOL=ON \ - -DPYTHON_EXECUTABLE=%{__python3} \ -%if %{with snapshot_build} - -DLLVM_VERSION_SUFFIX="%{llvm_snapshot_version_suffix}" \ -%endif - -DLLVM_INCLUDE_TESTS=ON \ - -DLLVM_EXTERNAL_LIT=%{_bindir}/lit \ - -DLLVM_LIT_ARGS="-sv \ - --path %{_libdir}/llvm" \ -%if %{with compat_build} - -DLLVM_CMAKE_DIR=%{install_libdir}/cmake/llvm \ -%else -%if 0%{?__isa_bits} == 64 - -DLLVM_LIBDIR_SUFFIX=64 \ -%else - -DLLVM_LIBDIR_SUFFIX= \ -%endif -%endif - -DPython3_EXECUTABLE=%{__python3} \ - -DLLVM_MAIN_SRC_DIR=%{_datadir}/llvm/src - -%cmake_build - -%install - -# Install libraries and binaries -%cmake_install - -# This is generated by Patch1 during build and (probably) must be removed afterward -rm %{buildroot}%{install_includedir}/mach-o/compact_unwind_encoding.h - -%if %{with compat_build} -# Add version suffix to binaries -mkdir -p %{buildroot}%{_bindir} -for f in %{buildroot}/%{install_bindir}/*; do - filename=`basename $f` - ln -s ../../%{install_bindir}/$filename %{buildroot}/%{_bindir}/$filename-%{maj_ver} -done -%else -# Required when using update-alternatives: -# https://docs.fedoraproject.org/en-US/packaging-guidelines/Alternatives/ -touch %{buildroot}%{_bindir}/ld - -install -D -m 644 -t %{buildroot}%{_mandir}/man1/ docs/ld.lld.1 - - -%post -%{_sbindir}/update-alternatives --install %{_bindir}/ld ld %{_bindir}/ld.lld 1 - -%postun -if [ $1 -eq 0 ] ; then - %{_sbindir}/update-alternatives --remove ld %{_bindir}/ld.lld -fi -%endif - -%check - -%if %{with check} -export LD_LIBRARY_PATH=%{buildroot}/%{install_libdir} -%cmake_build --target check-lld -%endif - -%if %{without compat_build} -%ldconfig_scriptlets libs -%endif - -%files -%license LICENSE.TXT -%ghost %{_bindir}/ld -%{install_bindir}/lld* -%{install_bindir}/ld.lld -%{install_bindir}/ld64.lld -%{install_bindir}/wasm-ld -%if %{without compat_build} -%{_mandir}/man1/ld.lld.1* -%else -%{_bindir}/*-%{maj_ver} -%endif - -%files devel -%{install_includedir}/lld -%{install_libdir}/liblld*.so -%{install_libdir}/cmake/lld/ - -%files libs -%{install_libdir}/liblld*.so.* - -%changelog -* Mon Jul 29 2024 Raven - 18.1.8-1 -- 18.1.8 Release - -* Thu May 02 2024 Tom Stellard - 18.1.4-1 -- 18.1.4 Release - -* Wed Apr 17 2024 Tom Stellard - 18.1.3-1 -- 18.1.3 Release - -* Thu Mar 21 2024 Tom Stellard - 18.1.2-1 -- 18.1.2 Release - -* Tue Mar 12 2024 Tom Stellard - 18.1.1-1 -- 18.1.1 Release - -* Sat Mar 02 2024 Tom Stellard - 18.1.0~rc4-2 -- Enable s390x arch - -* Wed Feb 28 2024 Tom Stellard - 18.1.0~rc4-1 -- 18.1.0-rc4 Release - -* Thu Jan 25 2024 Fedora Release Engineering - 17.0.6-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sun Jan 21 2024 Fedora Release Engineering - 17.0.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -%{?llvm_snapshot_changelog_entry} - -* Mon Dec 18 2023 Jeremy Newton - 17.0.6-2 -- Add lld-devel(major) provides - -* Wed Nov 29 2023 Tulio Magno Quites Machado Filho - 17.0.6-1 -- Update to LLVM 17.0.6 - -* Wed Nov 22 2023 Tulio Magno Quites Machado Filho - 17.0.5-1 -- Update to LLVM 17.0.5 - -* Wed Nov 01 2023 Tulio Magno Quites Machado Filho - 17.0.4-1 -- Update to LLVM 17.0.4 - -* Wed Oct 18 2023 Tulio Magno Quites Machado Filho - 17.0.3-1 -- Update to LLVM 17.0.3 - -* Wed Oct 04 2023 Tulio Magno Quites Machado Filho - 17.0.2-1 -- Update to LLVM 17.0.2 - -* Mon Sep 25 2023 Tulio Magno Quites Machado Filho - 17.0.1-1 -- Update to LLVM 17.0.1 - -* Mon Sep 11 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc4-1 -- Update to LLVM 17.0.0 RC4 - -* Fri Aug 25 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc3-1 -- Update to LLVM 17.0.0 RC3 - -* Wed Aug 23 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc2-1 -- Update to LLVM 17.0.0 RC2 - -* Wed Aug 02 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc1-1 -- Update to LLVM 17.0.0 RC1 - -* Thu Jul 20 2023 Fedora Release Engineering - 16.0.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Mon Jul 10 2023 Tulio Magno Quites Machado Filho - 16.0.6-1 -- Update to LLVM 16.0.6 - -* Tue Jun 13 2023 Nikita Popov - 16.0.5-2 -- Use llvm-cmake-utils package - -* Tue Jun 06 2023 Tulio Magno Quites Machado Filho - 16.0.5-1 -- Update to LLVM 16.0.5 - -* Fri May 19 2023 Tulio Magno Quites Machado Filho - 16.0.4-1 -- Update to LLVM 16.0.4 - -* Thu May 11 2023 Tulio Magno Quites Machado Filho - 16.0.3-2 -- Distribute the manpage. Fix rhbz#2203231 - -* Wed May 10 2023 Tulio Magno Quites Machado Filho - 16.0.3-1 -- Update to LLVM 16.0.3 - -* Wed Apr 26 2023 Tulio Magno Quites Machado Filho - 16.0.2-1 -- Update to LLVM 16.0.2 - -* Thu Apr 13 2023 Tulio Magno Quites Machado Filho - 16.0.1-1 -- Update to LLVM 16.0.1 - -* Fri Mar 24 2023 Tulio Magno Quites Machado Filho - 16.0.0-2 -- Use installed llvm_gtest - -* Tue Mar 21 2023 Tulio Magno Quites Machado Filho - 16.0.0-1 -- Update to LLVM 16.0.0 - -* Wed Mar 15 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc4-1 -- Update to LLVM 16.0.0 RC4 - -* Thu Feb 23 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc3-1 -- Update to LLVM 16.0.0 RC3 - -* Tue Feb 14 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc1-1 -- Update to LLVM 16.0.0 RC1 - -* Thu Jan 19 2023 Tulio Magno Quites Machado Filho - 15.0.7-3 -- Update license to SPDX identifiers. -- Include the Apache license adopted in 2019. - -* Thu Jan 19 2023 Fedora Release Engineering - 15.0.7-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Fri Jan 13 2023 Nikita Popov - 15.0.7-1 -- Update to LLVM 15.0.7 - -* Mon Jan 09 2023 Tom Stellard - 15.0.6-2 -- Omit frame pointers when building - -* Tue Dec 06 2022 Nikita Popov - 15.0.6-1 -- Update to LLVM 15.0.6 - -* Mon Nov 14 2022 Tulio Magno Quites Machado Filho - 15.0.4-2 -- Enable LTO. - -* Mon Nov 07 2022 Nikita Popov - 15.0.4-1 -- Update to LLVM 15.0.4 - -* Tue Oct 11 2022 Nikita Popov - 15.0.0-2 -- Remove lld-test package - -* Tue Sep 06 2022 Nikita Popov - 15.0.0-1 -- Update to LLVM 15.0.0 - -* Tue Aug 09 2022 Nikita Popov - 14.0.5-4 -- Backport --package-metadata flag - -* Thu Jul 21 2022 Fedora Release Engineering - 14.0.5-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Mon Jul 11 2022 Konrad Kleine - 14.0.5-2 -- Set build type to RelWithDebInfo - -* Fri Jun 17 2022 Timm Bäder - 14.0.5-1 -- Update to 14.0.5 - -* Thu Mar 31 2022 Tom Stellard - 14.0.0-2 -- Fix CI test failure: gcc-compat-basic - -* Mon Feb 28 2022 Timm Bäder - 14.0.0~rc1-1 -- Update to 14.0.0rc1 - -* Thu Feb 03 2022 Nikita Popov - 13.0.1-1 -- Update to LLVM 13.0.1 final - -* Tue Feb 01 2022 Nikita Popov - 13.0.1~rc3-1 -- Update to LLVM 13.0.1 rc3 - -* Thu Jan 20 2022 Fedora Release Engineering - 13.0.1~rc2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Fri Jan 14 2022 Nikita Popov - 13.0.1~rc2-1 -- Update to LLVM 13.0.1rc2 - -* Wed Jan 12 2022 Nikita Popov - 13.0.1~rc1-1 -- Update to LLVM 13.0.1rc1 - -* Wed Oct 06 2021 Tom Stellard - 13.0.0-2 -- Rebuild for llvm soname bump - -* Fri Oct 01 2021 Tom Stellard - 13.0.0-1 -- 13.0.0 Release - -* Thu Sep 30 2021 Tom Stellard - 13.0.0~rc4-1 -- 13.0.0-rc4 Release - -* Mon Sep 20 2021 Tom Stellard - 13.0.0~rc1-3 -- 13.0.0-rc3 Release - -* Tue Sep 14 2021 Konrad Kleine - 13.0.0~rc1-2 -- Add --without=check option - -* Fri Aug 06 2021 Tom Stellard - 13.0.0~rc1-1 -- 13.0.0-rc1 Release - -* Thu Jul 22 2021 Fedora Release Engineering - 12.0.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Tue Jul 13 2021 Tom Stellard - 12.0.1-1 -- 12.0.1 Release - -* Wed Jun 30 2021 Tom Stellard - 12.0.1~rc3-1 -- 12.0.1-rc3 Release - -* Tue Jun 01 2021 Tom Stellard - 12.0.1~rc1-1 -- 12.0.1-rc1 Release - -* Fri Apr 16 2021 Tom Stellard - 12.0.0-1 -- 12.0.0 Release - -* Thu Apr 08 2021 sguelton@redhat.com - 12.0.0-0.8.rc5 -- New upstream release candidate - -* Wed Apr 07 2021 Tom Stellard - 12.0.0-0.7.rc4 -- Set executable permissions on run-lit-tests - -* Fri Apr 02 2021 sguelton@redhat.com - 12.0.0-0.6.rc4 -- New upstream release candidate - -* Wed Mar 31 2021 Jonathan Wakely - 12.0.0-0.5.rc3 -- Rebuilt for removed libstdc++ symbols (#1937698) - -* Thu Mar 11 2021 sguelton@redhat.com - 12.0.0-0.4.rc3 -- LLVM 12.0.0 rc3 - -* Wed Mar 10 2021 sguelton@redhat.com - 12.0.0-0.3.rc2 -- rebuilt - -* Wed Feb 24 2021 sguelton@redhat.com - 12.0.0-0.2.rc2 -- llvm 12.0.0-rc2 release - -* Tue Feb 16 2021 sguelton@redhat.com - 12.0.0-0.1.rc1 -- llvm 12.0.0-rc1 release - -* Tue Jan 26 2021 Fedora Release Engineering - 11.1.0-0.3.rc2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Fri Jan 22 2021 Serge Guelton - 11.1.0-0.2.rc2 -- llvm 11.1.0-rc2 release - -* Thu Jan 14 2021 Serge Guelton - 11.1.0-0.1.rc1 -- 11.1.0-rc1 release - -* Wed Jan 06 2021 Serge Guelton - 11.0.1-3 -- LLVM 11.0.1 final - -* Tue Dec 22 2020 sguelton@redhat.com - 11.0.1-2.rc2 -- llvm 11.0.1-rc2 - -* Tue Dec 01 2020 sguelton@redhat.com - 11.0.1-1.rc1 -- llvm 11.0.1-rc1 - -* Thu Nov 12 2020 sguelton@redhat.com - 11.0.0-3 -- Exclude s390x, unsupported upstream - -* Mon Oct 19 2020 sguelton@redhat.com - 11.0.0-2 -- Rebuilt with all gating tests on - -* Thu Oct 15 2020 sguelton@redhat.com - 11.0.0-1 -- Fix NVR - -* Mon Oct 12 2020 sguelton@redhat.com - 11.0.0-0.6 -- llvm 11.0.0 - final release - -* Thu Oct 08 2020 sguelton@redhat.com - 11.0.0-0.5.rc6 -- 11.0.0-rc6 - -* Wed Oct 07 2020 sguelton@redhat.com - 11.0.0-0.4.rc5 -- Update CI tests - -* Fri Oct 02 2020 sguelton@redhat.com - 11.0.0-0.3.rc5 -- 11.0.0-rc5 Release - -* Sun Sep 27 2020 sguelton@redhat.com - 11.0.0-0.2.rc3 -- Fix NVR - -* Thu Sep 24 2020 sguelton@redhat.com - 11.0.0-0.1.rc3 -- 11.0.0-rc3 Release - -* Tue Sep 01 2020 sguelton@redhat.com - 11.0.0-0.1.rc2 -- 11.0.0-rc2 Release - -* Mon Aug 10 2020 Tom Stellard - 11.0.0-0.1.rc1 -- 11.0.0-rc1 Release - -* Mon Aug 10 2020 sguelton@redhat.com - 10.0.0-7 -- use %%license macro - -* Mon Aug 10 2020 Tom Stellard - 10.0.0-6 -- Disable LTO - -* Sat Aug 01 2020 Fedora Release Engineering - 10.0.0-5 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue Jul 28 2020 Fedora Release Engineering - 10.0.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 20 2020 sguelton@redhat.com - 10.0.0-3 -- Use generic cmake macros -- Use Ninja as build system -- Remove chrpath dependency - -* Fri Jul 17 2020 sguelton@redhat.com - 10.0.0-2 -- Make test archive arch-independent - -* Mon Mar 30 2020 sguelton@redhat.com - 10.0.0-1 -- 10.0.0 final - -* Wed Mar 25 2020 sguelton@redhat.com - 10.0.0-0.6.rc6 -- 10.0.0 rc6 - -* Fri Mar 20 2020 sguelton@redhat.com - 10.0.0-0.5.rc5 -- 10.0.0 rc5 - -* Sun Mar 15 2020 sguelton@redhat.com - 10.0.0-0.4.rc4 -- 10.0.0 rc4 - -* Thu Mar 05 2020 sguelton@redhat.com - 10.0.0-0.3.rc3 -- 10.0.0 rc3 - -* Fri Feb 14 2020 sguelton@redhat.com - 10.0.0-0.2.rc2 -- 10.0.0 rc2 - -* Fri Jan 31 2020 sguelton@redhat.com - 10.0.0-0.1.rc1 -- 10.0.0 rc1 - -* Wed Jan 29 2020 Fedora Release Engineering - 9.0.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Thu Dec 19 2019 Tom Stellard -9.0.1-1 -- 9.0.1 Release - -* Sat Dec 14 2019 Tom Stellard - 9.0.0-6 -- Fix some rpmdiff errors - -* Fri Dec 13 2019 Tom Stellard - 9.0.0-5 -- Remove build artifacts installed with unittests - -* Thu Dec 05 2019 Tom Stellard - 9.0.0-4 -- Enable GPG-based source file verification - -* Thu Dec 05 2019 Tom Stellard - 9.0.0-3 -- Add lld-test package - -* Thu Nov 14 2019 Tom Stellard - 9.0.0-2 -- Add explicit lld-libs requires to fix rpmdiff errors - -* Thu Sep 19 2019 Tom Stellard -9.0.0-1 -- 9.0.0 Release - -* Thu Aug 22 2019 Tom Stellard - 9.0.0-0.1.rc3 -- 9.0.0-rc3 Release - -* Tue Aug 20 2019 Tom Stellard - 8.0.0-3 -- touch /usr/bin/ld as required by the packaging guidelines for - update-alternatives - -* Tue Aug 13 2019 Tom Stellard - 8.0.0-2 -- Add update-alternative for ld - -* Thu Jul 25 2019 Fedora Release Engineering - 8.0.0-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Wed Mar 20 2019 sguelton@redhat.com - 8.0.0-1 -- 8.0.0 final - -* Tue Mar 12 2019 sguelton@redhat.com - 8.0.0-0.4.rc4 -- 8.0.0 Release candidate 4 - -* Tue Mar 5 2019 sguelton@redhat.com - 8.0.0-0.4.rc3 -- Cleanup specfile after llvm specfile update - -* Mon Mar 4 2019 sguelton@redhat.com - 8.0.0-0.3.rc3 -- 8.0.0 Release candidate 3 - -* Fri Feb 22 2019 sguelton@redhat.com - 8.0.0-0.2.rc2 -- 8.0.0 Release candidate 2 - -* Mon Feb 11 2019 sguelton@redhat.com - 8.0.0-0.1.rc1 -- 8.0.0 Release candidate 1 - -* Fri Feb 01 2019 Fedora Release Engineering - 7.0.1-3.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Mon Jan 14 2019 sguelton@redhat.com - 7.0.1-3 -- Fix lld + annobin integration & Setup basic CI tests - -* Mon Dec 17 2018 sguelton@redhat.com - 7.0.1-2 -- Update lit dependency - -* Mon Dec 17 2018 sguelton@redhat.com - 7.0.1-1 -- 7.0.1 Release - -* Tue Dec 04 2018 sguelton@redhat.com - 7.0.0-2 -- Ensure rpmlint passes on specfile - -* Mon Sep 24 2018 Tom Stellard - 7.0.0-1 -- 7.0.1 Release - -* Tue Sep 11 2018 Tom Stellard - 7.0.0-0.4.rc3 -- 7.0.0-rc3 Release - -* Fri Aug 31 2018 Tom Stellard - 7.0.0-0.3.rc2 -- 7.0.0-rc2 Release - -* Thu Aug 30 2018 Tom Stellard - 7.0.0-0.2.rc1 -- Enable make check - -* Mon Aug 13 2018 Tom Stellard - 7.0.0-0.1.rc1 -- 7.0.0-rc1 Release - -* Fri Jul 13 2018 Fedora Release Engineering - 6.0.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Wed Jun 27 2018 Tom Stellard - 6.0.1-1 -- 6.0.1 Release - -* Fri May 11 2018 Tom Stellard - 6.0.1-0.1.rc1 -- 6.0.1-rc1 Release - -* Thu Mar 08 2018 Tom Stellard - 6.0.0-1 -- 6.0.0 Release - -* Tue Feb 13 2018 Tom Stellard - 6.0.0-0.3.rc2 -- 6.0.0-rc2 Release - -* Thu Feb 08 2018 Fedora Release Engineering - 6.0.0-0.2.rc1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Thu Jan 25 2018 Tom Stellard - 6.0.0-0.1.rc1 -- 6.0.0-rc1 Release - -* Thu Dec 21 2017 Tom Stellard - 5.0.1-1 -- 5.0.1 Release - -* Mon Sep 11 2017 Tom Stellard - 5.0.0-1 -- 5.0.0 Release - -* Thu Aug 03 2017 Fedora Release Engineering - 4.0.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 4.0.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Thu Jul 06 2017 Tom Stellard - 4.0.1-2 -- Backport r307092 - -* Tue Jul 04 2017 Tom Stellard - 4.0.1-1 -- 4.0.1 Release - -* Tue Jul 04 2017 Tom Stellard - 4.0.0-4 -- Fix build without llvm-static - -* Wed May 31 2017 Tom Stellard - 4.0.0-3 -- Remove llvm-static dependency - -* Mon May 15 2017 Fedora Release Engineering - 4.0.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild - -* Tue Mar 14 2017 Tom Stellard - 4.0.0-1 -- lld 4.0.0 Final Release diff --git a/modular/llvm/lldb/lldb.spec b/modular/llvm/lldb/lldb.spec deleted file mode 100644 index 36a44d8..0000000 --- a/modular/llvm/lldb/lldb.spec +++ /dev/null @@ -1,616 +0,0 @@ -%global toolchain clang - -# Opt out of https://fedoraproject.org/wiki/Changes/fno-omit-frame-pointer -# https://bugzilla.redhat.com/show_bug.cgi?id=2158587 -%undefine _include_frame_pointers - -%undefine __cmake_in_source_build - -%global lldb_version 18.1.8 -#global rc_ver 4 -%global lldb_srcdir %{name}-%{lldb_version}%{?rc_ver:rc%{rc_ver}}.src - -%global __python3 /usr/bin/python3 - -Name: lldb -Version: %{lldb_version}%{?rc_ver:~rc%{rc_ver}} -Release: 1%{?dist} -Summary: Next generation high-performance debugger - -License: Apache-2.0 WITH LLVM-exception OR NCSA -URL: http://lldb.llvm.org/ -Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{lldb_version}%{?rc_ver:-rc%{rc_ver}}/%{lldb_srcdir}.tar.xz -Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{lldb_version}%{?rc_ver:-rc%{rc_ver}}/%{lldb_srcdir}.tar.xz.sig -Source2: release-keys.asc - -BuildRequires: clang -BuildRequires: cmake -BuildRequires: ninja-build -BuildRequires: llvm-devel = %{version} -BuildRequires: llvm-test = %{version} -BuildRequires: llvm-cmake-utils = %{version} -BuildRequires: clang-devel = %{version} -BuildRequires: ncurses-devel -BuildRequires: swig >= 4.0 -BuildRequires: llvm-static = %{version} -BuildRequires: libffi-devel -BuildRequires: zlib-devel -BuildRequires: libxml2-devel -BuildRequires: libedit-devel -BuildRequires: python3-lit -BuildRequires: multilib-rpm-config -BuildRequires: doxygen - -Requires: python3-lldb - -# For origin certification -BuildRequires: gnupg2 - -%description -LLDB is a next generation, high-performance debugger. It is built as a set -of reusable components which highly leverage existing libraries in the -larger LLVM Project, such as the Clang expression parser and LLVM -disassembler. - -%package devel -Summary: Development header files for LLDB -Requires: %{name}%{?_isa} = %{version}-%{release} - -%description devel -The package contains header files for the LLDB debugger. - -%package -n python3-lldb -%{?python_provide:%python_provide python3-lldb} -Summary: Python module for LLDB -BuildRequires: python3-devel -BuildRequires: python3-setuptools -Requires: python3-six -Requires: %{name}%{?_isa} = %{version}-%{release} - -%description -n python3-lldb -The package contains the LLDB Python module. - -%prep -%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' -%autosetup -n %{lldb_srcdir} -p2 - -%build -%global _lto_cflags -flto=thin - -%cmake -GNinja \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_SKIP_RPATH:BOOL=ON \ - -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ - -DLLVM_CONFIG:FILEPATH=/usr/bin/llvm-config-%{__isa_bits} \ - -DLLVM_COMMON_CMAKE_UTILS=%{_datadir}/llvm/cmake \ - -DLLDB_DISABLE_CURSES:BOOL=OFF \ - -DLLDB_DISABLE_LIBEDIT:BOOL=OFF \ - -DLLDB_DISABLE_PYTHON:BOOL=OFF \ -%if 0%{?__isa_bits} == 64 - -DLLVM_LIBDIR_SUFFIX=64 \ -%else - -DLLVM_LIBDIR_SUFFIX= \ -%endif - \ - -DPython3_EXECUTABLE=%{__python3} \ - -DPYTHON_VERSION_MAJOR:STRING=$(%{__python3} -c "import sys; print(sys.version_info.major)") \ - -DPYTHON_VERSION_MINOR:STRING=$(%{__python3} -c "import sys; print(sys.version_info.minor)") \ - -DLLVM_EXTERNAL_LIT=%{_bindir}/lit \ - -DCLANG_LINK_CLANG_DYLIB=ON \ - -DCLANG_RESOURCE_DIR=$(realpath --relative-to=/usr/bin %{clang_resource_dir}) \ - -DLLVM_LIT_ARGS="-sv \ - --path %{_libdir}/llvm" \ - -%cmake_build - -%install -%cmake_install - -%multilib_fix_c_header --file %{_includedir}/lldb/Host/Config.h - -# remove static libraries -rm -fv %{buildroot}%{_libdir}/*.a - -# remove unused lua bindings -rm -rf %{buildroot}%{_prefix}/lib/lua - -# python: fix binary libraries location -liblldb=$(basename $(readlink -e %{buildroot}%{_libdir}/liblldb.so)) -ln -vsf "../../../${liblldb}" %{buildroot}%{python3_sitearch}/lldb/_lldb.so -%py_byte_compile %{__python3} %{buildroot}%{python3_sitearch}/lldb - -# remove bundled six.py -rm -f %{buildroot}%{python3_sitearch}/six.* - -%ldconfig_scriptlets - -%check - - -%files -%license LICENSE.TXT -%{_bindir}/lldb* -# Usually, *.so symlinks are kept in devel subpackages. However, the python -# bindings depend on this symlink at runtime. -%{_libdir}/*.so -%{_libdir}/liblldb.so.* -%{_libdir}/liblldbIntelFeatures.so.* - -%files devel -%{_includedir}/lldb - -%files -n python3-lldb -%{python3_sitearch}/lldb - -%changelog -* Mon Jul 29 2024 Raven - 18.1.8-1 -- 18.1.8 Release - -* Fri May 03 2024 Tom Stellard - 18.1.4-1 -- 18.1.4 Release - -* Wed Apr 17 2024 Tom Stellard - 18.1.3-1 -- 18.1.3 Release - -* Mon Mar 25 2024 Tulio Magno Quites Machado Filho - 18.1.2-2 -- Move liblldb symlink to the main package. Fix rhbz#2260611. - -* Fri Mar 22 2024 Tom Stellard - 18.1.2-1 -- 18.1.2 Release - -* Tue Mar 12 2024 Tom Stellard - 18.1.1-1 -- 18.1.1 Release - -* Wed Feb 28 2024 Tom Stellard - 18.1.0~rc4-1 -- 18.1.0-rc4 Release - -* Thu Jan 25 2024 Fedora Release Engineering - 17.0.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sun Jan 21 2024 Fedora Release Engineering - 17.0.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Wed Nov 29 2023 Tulio Magno Quites Machado Filho - 17.0.6-1 -- Update to LLVM 17.0.6 - -* Wed Nov 01 2023 Tulio Magno Quites Machado Filho - 17.0.4-1 -- Update to LLVM 17.0.4 - -* Wed Oct 18 2023 Tulio Magno Quites Machado Filho - 17.0.3-1 -- Update to LLVM 17.0.3 - -* Wed Oct 04 2023 Tulio Magno Quites Machado Filho - 17.0.2-1 -- Update to LLVM 17.0.2 - -* Mon Sep 25 2023 Tulio Magno Quites Machado Filho - 17.0.1-1 -- Update to LLVM 17.0.1 - -* Mon Sep 11 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc4-1 -- Update to LLVM 17.0.0 RC4 - -* Fri Aug 25 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc3-1 -- Update to LLVM 17.0.0 RC3 - -* Wed Aug 23 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc2-1 -- Update to LLVM 17.0.0 RC2 - -* Wed Aug 02 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc1-1 -- Update to LLVM 17.0.0 RC1 - -* Thu Jul 20 2023 Fedora Release Engineering - 16.0.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Mon Jul 10 2023 Tulio Magno Quites Machado Filho - 16.0.6-1 -- Update to LLVM 16.0.6 - -* Fri Jun 16 2023 Python Maint - 16.0.5-4 -- Rebuilt for Python 3.12 - -* Thu Jun 15 2023 Nikita Popov - 16.0.5-3 -- Use llvm-cmake-utils package - -* Thu Jun 15 2023 Python Maint - 16.0.5-2 -- Rebuilt for Python 3.12 - -* Tue Jun 06 2023 Tulio Magno Quites Machado Filho - 16.0.5-1 -- Update to LLVM 16.0.5 - -* Fri May 19 2023 Tulio Magno Quites Machado Filho - 16.0.4-1 -- Update to LLVM 16.0.4 - -* Wed May 10 2023 Tulio Magno Quites Machado Filho - 16.0.3-1 -- Update to LLVM 16.0.3 - -* Wed Apr 26 2023 Tulio Magno Quites Machado Filho - 16.0.2-1 -- Update to LLVM 16.0.2 - -* Thu Apr 13 2023 Tulio Magno Quites Machado Filho - 16.0.1-1 -- Update to LLVM 16.0.1 - -* Tue Mar 21 2023 Tulio Magno Quites Machado Filho - 16.0.0-1 -- Update to LLVM 16.0.0 - -* Wed Mar 15 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc4-1 -- Update to LLVM 16.0.0 RC4 - -* Thu Feb 23 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc3-1 -- Update to LLVM 16.0.0 RC3 - -* Tue Feb 14 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc1-1 -- Update to LLVM 16.0.0 RC1 - -* Thu Jan 19 2023 Tulio Magno Quites Machado Filho - 15.0.7-3 -- Include the Apache license adopted in 2019. - -* Thu Jan 19 2023 Fedora Release Engineering - 15.0.7-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Fri Jan 13 2023 Nikita Popov - 15.0.7-1 -- Update to LLVM 15.0.7 - -* Thu Jan 12 2023 Tom Stellard - 15.0.6-2 -- Omit frame pointers when building - -* Tue Dec 06 2022 Nikita Popov - 15.0.6-1 -- Update to LLVM 15.0.6 - -* Mon Nov 07 2022 Nikita Popov - 15.0.4-1 -- Update to LLVM 15.0.4 - -* Tue Oct 18 2022 Nikita Popov - 15.0.0-3 -- Fix crash on ppc64le (fix rhbz#2121369) - -* Mon Oct 03 2022 sguelton@redhat.com - 15.0.0-2 -- Backport compat patches for swig 4.1.0, see rhbz#2128646 - -* Tue Sep 06 2022 Nikita Popov - 15.0.0-1 -- Update to LLVM 15.0.0 - -* Tue Aug 09 2022 Nikita Popov - 14.0.5-3 -- Fix s390x build - -* Thu Jul 21 2022 Fedora Release Engineering - 14.0.5-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Mon Jun 20 2022 Timm Bäder - 14.0.5-1 -- Update to 14.0.5 - -* Mon Jun 13 2022 Python Maint - 14.0.0-2 -- Rebuilt for Python 3.11 - -* Wed Mar 23 2022 Timm Bäder - 14.0.0-1 -- Update to 14.0.0 - -* Thu Feb 03 2022 Nikita Popov - 13.0.1-1 -- Update to LLVM 13.0.1 final - -* Thu Jan 20 2022 Fedora Release Engineering - 13.0.1~rc2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Fri Jan 14 2022 Nikita Popov - 13.0.1~rc2-1 -- Update to LLVM 13.0.1rc2 - -* Wed Jan 12 2022 Nikita Popov - 13.0.1~rc1-1 -- Update to LLVM 13.0.1rc1 - -* Fri Oct 01 2021 Tom Stellard - 13.0.0-1 -- 13.0.0 Release - -* Wed Sep 22 2021 Tom Stellard - 13.0.0~rc3-1 -- 13.0.0-rc3 Release - -* Mon Aug 09 2021 Tom Stellard - 13.0.0~rc1-1 -- 13.0.0-rc1 Release - -* Thu Jul 22 2021 Fedora Release Engineering - 12.0.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Wed Jul 14 2021 Tom Stellard - 12.0.1-1 -- 12.0.1 Release - -* Thu Jul 01 2021 Tom Stellard - 12.0.0~rc3-1 -- 12.0.0-rc3 Release - -* Fri Jun 04 2021 Python Maint - 12.0.1~rc1-2 -- Rebuilt for Python 3.10 - -* Thu Jun 03 2021 Tom Stellard - 12.0.0~rc1-1 -- 12.0.0-rc1 Release - -* Fri Apr 16 2021 Tom Stellard - 12.0.0-1 -- 12.0.0 Release - -* Thu Apr 08 2021 sguelton@redhat.com - 12.0.0-11.rc5 -- New upstream release candidate - -* Fri Apr 02 2021 sguelton@redhat.com - 12.0.0-10.rc4 -- New upstream release candidate - -* Wed Mar 31 2021 Jonathan Wakely - 12.0.0-9.rc3 -- Rebuilt for removed libstdc++ symbols (#1937698) - -* Thu Mar 11 2021 sguelton@redhat.com - 12.0.0-8.rc3 -- LLVM 12.0.0 rc3 - -* Thu Mar 11 2021 sguelton@redhat.com - 12.0.0-7.rc2 -- rebuilt - -* Tue Mar 02 2021 sguelton@redhat.com - 12.0.0-6.rc2 -- Update test regexp - -* Tue Mar 02 2021 sguelton@redhat.com - 12.0.0-5.rc2 -- Improve CI debugging - -* Tue Mar 02 2021 sguelton@redhat.com - 12.0.0-4.rc2 -- Apply upstream D97721 - -* Mon Mar 01 2021 sguelton@redhat.com - 12.0.0-3.rc2 -- Update CI test - -* Thu Feb 25 2021 sguelton@redhat.com - 12.0.0-0.2.rc2 -- 12.0.0-rc2 release - -* Wed Feb 17 2021 sguelton@redhat.com - 12.0.0-0.1.rc1 -- 12.0.0-rc1 release - -* Tue Jan 26 2021 Fedora Release Engineering - 11.1.0-3.rc2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Fri Jan 22 2021 Serge Guelton - 11.1.0-2.rc2 -- llvm 11.1.0-rc2 release - -* Thu Jan 14 2021 Serge Guelton - 11.1.0-0.1.rc1 -- 11.1.0-rc1 release - -* Wed Jan 06 2021 Serge Guelton - 11.0.1-3 -- LLVM 11.0.1 final - -* Tue Dec 22 2020 sguelton@redhat.com - 11.0.1-2.rc2 -- llvm 11.0.1-rc2 - -* Tue Dec 01 2020 sguelton@redhat.com - 11.0.1-1.rc1 -- llvm 11.0.1-rc1 - -* Thu Oct 15 2020 sguelton@redhat.com - 11.0.0-1 -- Fix NVR - -* Mon Oct 12 2020 sguelton@redhat.com - 11.0.0-0.5 -- llvm 11.0.0 - final release - -* Thu Oct 08 2020 sguelton@redhat.com - 11.0.0-0.4.rc6 -- 11.0.0-rc6 - -* Fri Oct 02 2020 sguelton@redhat.com - 11.0.0-0.3.rc5 -- 11.0.0-rc5 Release - -* Sun Sep 27 2020 sguelton@redhat.com - 11.0.0-0.2.rc3 -- Fix NVR - -* Thu Sep 24 2020 sguelton@redhat.com - 11.0.0-0.1.rc3 -- 11.0.0-rc3 Release - -* Tue Sep 01 2020 sguelton@redhat.com - 11.0.0-0.1.rc2 -- 11.0.0-rc2 Release - -* Mon Aug 10 2020 Tom Stellard - 11.0.0-0.1.rc1 -- 11.0.0-rc1 Release - -* Wed Jul 29 2020 sguelton@redhat.com - 10.0.0-8 -- Make gcc dependency explicit, see https://fedoraproject.org/wiki/Packaging:C_and_C%2B%2B#BuildRequires_and_Requires -- use %%license macro - -* Tue Jul 28 2020 Fedora Release Engineering - 10.0.0-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Fri Jul 17 2020 sguelton@redhat.com - 10.0.0-6 -- Use ninja and according macros as build system - -* Tue Jun 16 2020 sguelton@redhat.com - 10.0.0-5 -- Finer grain specification of python3-lldb deps - -* Tue Jun 02 2020 sguelton@redhat.com - 10.0.0-4 -- Fix arch-dependent header - -* Tue Jun 02 2020 sguelton@redhat.com - 10.0.0-3 -- Instruct cmake not to generate RPATH - -* Tue May 26 2020 Miro Hrončok - 10.0.0-2 -- Rebuilt for Python 3.9 - -* Mon Mar 30 2020 sguelton@redhat.com - 10.0.0-1 -- 10.0.0 final - -* Wed Mar 25 2020 sguelton@redhat.com - 10.0.0-0.6.rc6 -- 10.0.0 rc6 - -* Fri Mar 20 2020 sguelton@redhat.com - 10.0.0-0.5.rc5 -- 10.0.0 rc5 - -* Sun Mar 15 2020 sguelton@redhat.com - 10.0.0-0.4.rc4 -- 10.0.0 rc4 - -* Thu Mar 05 2020 sguelton@redhat.com - 10.0.0-0.3.rc3 -- 10.0.0 rc3 - -* Fri Feb 14 2020 sguelton@redhat.com - 10.0.0-0.2.rc2 -- 10.0.0 rc2 - -* Fri Jan 31 2020 sguelton@redhat.com - 10.0.0-0.1.rc1 -- 10.0.0 rc1 - -* Wed Jan 29 2020 Tom Stellard - 9.0.1-4 -- Link against libclang-cpp.so -- https://fedoraproject.org/wiki/Changes/Stop-Shipping-Individual-Component-Libraries-In-clang-lib-Package - -* Wed Jan 29 2020 Fedora Release Engineering - 9.0.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Sat Dec 21 2019 Tom Stellard - 9.0.1-2 -- 9.0.1 Release - -* Thu Sep 19 2019 Tom Stellard - 9.0.0-1 -- 9.0.0 Release - -* Thu Aug 22 2019 Tom Stellard - 9.0.0-0.1.rc3 -- 9.0.0-rc3 Release - -* Mon Aug 19 2019 Miro Hrončok - 8.0.0-2.2 -- Rebuilt for Python 3.8 - -* Thu Jul 25 2019 Fedora Release Engineering - 8.0.0-2.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Tue Mar 26 2019 sguelton@redhat.com - 8.0.0-2 -- Only depend on Python3 - -* Wed Mar 20 2019 sguelton@redhat.com - 8.0.0-1 -- 8.0.0 final - -* Tue Mar 12 2019 sguelton@redhat.com - 8.0.0-0.4.rc4 -- 8.0.0 Release candidate 4 - -* Tue Mar 5 2019 sguelton@redhat.com - 8.0.0-0.3.rc3 -- 8.0.0 Release candidate 3 - -* Fri Feb 22 2019 sguelton@redhat.com - 8.0.0-0.2.rc2 -- 8.0.0 Release candidate 2 - -* Mon Feb 11 2019 sguelton@redhat.com - 8.0.0-0.1.rc1 -- 8.0.0 Release candidate 1 - -* Fri Feb 01 2019 Fedora Release Engineering - 7.0.1-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Mon Dec 17 2018 sguelton@redhat.com - 7.0.1-1 -- 7.0.1 Release - -* Tue Dec 04 2018 sguelton@redhat.com - 7.0.0-2 -- Ensure rpmlint passes on specfile - -* Tue Sep 25 2018 Tom Stellard - 7.0.0-1 -- 7.0.0 Release - -* Fri Sep 21 2018 Tom Stellard - 7.0.0-0.5.rc3 -- lldb should depend on python2-lldb - -* Mon Sep 17 2018 Tom Stellard - 7.0.0-0.4.rc3 -- 7.0.0-rc3 Release - -* Wed Sep 12 2018 Tom Stellard - 7.0.0-0.3.rc2 -- Enable build on s390x - -* Fri Aug 31 2018 Tom Stellard - 7.0.0-0.2.rc2 -- 7.0.0-rc2 Release - -* Tue Aug 14 2018 Tom Stellard - 7.0.0-0.1.rc1 -- 7.0.1-rc1 Release - -* Tue Aug 07 2018 Tom Stellard - 6.0.1-3 -- Enable ppc64le arch - -* Fri Jul 13 2018 Fedora Release Engineering - 6.0.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Mon May 21 2018 Tom Stellard - 6.0.1-1 -- 6.0.1 Release - -* Mon May 21 2018 Tom Stellard - 6.0.1-0.1.rc1 -- 6.0.1-rc1 Release - -* Sat May 05 2018 Miro Hrončok - 6.0.0-4 -- Update Python macros to new packaging standards - (See https://fedoraproject.org/wiki/Changes/Avoid_usr_bin_python_in_RPM_Build) - -* Tue Mar 20 2018 Tom Stellard - 6.0.0-3 -- Rebuild against llvm with the rhbz#1558657 fix - -* Wed Mar 14 2018 Tilmann Scheller - 6.0.0-2 -- Restore LLDB SB API headers, fixes rhbz#1548758 - -* Fri Mar 09 2018 Tom Stellard - 6.0.0-1 -- 6.0.0 Release - -* Tue Feb 13 2018 Tom Stellard - 6.0.0-0.3.rc2 -- 6.0.0-rc2 release - -* Thu Feb 08 2018 Fedora Release Engineering - 6.0.0-0.2.rc1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Thu Jan 25 2018 Tom Stellard - 6.0.0-0.1.rc1 -- 6.0.1-rc1 Release - -* Thu Dec 21 2017 Tom Stellard - 5.0.1-1 -- 5.0.1 Release - -* Fri Oct 06 2017 Tom Stellard - 5.0.0-1 -- 5.0.0 Release - -* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 4.0.1-4 -- Python 2 binary package renamed to python2-lldb - See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 - -* Mon Jul 31 2017 Jan Kratochvil - 4.0.1-3 -- Backport lldb r303907 - Resolves rhbz #1356140 - -* Wed Jul 26 2017 Fedora Release Engineering - 4.0.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Mon Jun 26 2017 Tom Stellard - 4.0.1-1 -- 4.0.1 Release - -* Mon May 15 2017 Fedora Release Engineering - 4.0.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild - -* Fri Mar 24 2017 Tom Stellard - 4.0.0-1 -- lldb 4.0.0 - -* Tue Mar 21 2017 Tom Stellard - 3.9.1-4 -- Add explicit Requires for llvm-libs and clang-libs - -* Fri Mar 17 2017 Tom Stellard - 3.9.1-3 -- Adjust python sys.path so lldb can find readline.so - -* Tue Mar 14 2017 Tom Stellard - 3.9.1-2 -- Fix build with gcc 7 - -* Thu Mar 02 2017 Dave Airlie - 3.9.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Mon Nov 14 2016 Nathaniel McCallum - 3.9.0-3 -- Disable libedit support until upstream fixes it (#1356140) - -* Wed Nov 2 2016 Peter Robinson 3.9.0-2 -- Set upstream supported architectures in an ExclusiveArch - -* Wed Oct 26 2016 Dave Airlie - 3.9.0-1 -- lldb 3.9.0 -- fixup some issues with MIUtilParse by removing it -- build with -fno-rtti - -* Tue Jul 19 2016 Fedora Release Engineering - 3.8.0-2 -- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages - -* Thu Mar 10 2016 Dave Airlie 3.8.0-1 -- lldb 3.8.0 - -* Thu Mar 03 2016 Dave Airlie 3.8.0-0.3 -- lldb 3.8.0 rc3 - -* Wed Feb 24 2016 Dave Airlie - 3.8.0-0.2 -- dynamically link to llvm - -* Thu Feb 18 2016 Dave Airlie - 3.8.0-0.1 -- lldb 3.8.0 rc2 - -* Sun Feb 14 2016 Dave Airlie 3.7.1-3 -- rebuild lldb against latest llvm - -* Thu Feb 04 2016 Fedora Release Engineering - 3.7.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Oct 06 2015 Jan Vcelak 3.7.0-100 -- initial version using cmake build system diff --git a/modular/llvm/llvm.rpmlintrc b/modular/llvm/llvm.rpmlintrc new file mode 100644 index 0000000..7ae23e2 --- /dev/null +++ b/modular/llvm/llvm.rpmlintrc @@ -0,0 +1,18 @@ +# This library has no dependencies. +addFilter("llvm-libs.x86_64: E: shared-lib-without-dependency-information /usr/lib64/libRemarks.so.[0-9]+") +addFilter("llvm-googletest.x86_64: W: devel-file-in-non-devel-package") + +# same for llvm-test utilities +addFilter("llvm-test.x86_64: W: no-manual-page-for-binary") + +# Don't warn about libs in llvm-libs +addFilter("llvm-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/lib") +# These is ok in the llvm gold plugin +addFilter("llvm-libs.x86_64: W: shared-lib-calls-exit /usr/lib64/LLVMgold.so") +addFilter("llvm-libs.x86_64: W: no-soname /usr/lib64/LLVMgold.so") + +# These are without documentation +addFilter("llvm-googletest.x86_64: W: no-documentation") +addFilter("llvm-libs.x86_64: W: no-documentation") +addFilter("llvm-static.x86_64: W: no-documentation") +addFilter("llvm-test.x86_64: W: no-documentation") diff --git a/modular/llvm/llvm.spec b/modular/llvm/llvm.spec new file mode 100644 index 0000000..c7ef20f --- /dev/null +++ b/modular/llvm/llvm.spec @@ -0,0 +1,3189 @@ +#region globals +#region version +%global maj_ver 19 +%global min_ver 1 +%global patch_ver 1 +#global rc_ver 4 + +%if 0%{?rhel} < 10 +%global gcc_toolset gcc-toolset-14 +%endif + +%bcond_with snapshot_build +%if %{with snapshot_build} +%include %{_sourcedir}/version.spec.inc +%endif +#endregion version + +# Components enabled if supported by target architecture: +%define gold_arches %{ix86} x86_64 aarch64 %{power64} s390x +%ifarch %{gold_arches} + %bcond_without gold +%else + %bcond_with gold +%endif + +# Build compat packages llvmN instead of main package for the current LLVM +# version. Used on Fedora. +%bcond_with compat_build +# Bundle compat libraries for a previous LLVM version, as part of llvm-libs and +# clang-libs. Used on RHEL. +# Disabled due to separate llvm-compatN package +%bcond_with bundle_compat_lib +%bcond_without check + +%if %{with bundle_compat_lib} +%global compat_maj_ver 18 +%global compat_ver %{compat_maj_ver}.1.8 +%endif + +# Compat builds do not include python-lit and lldb +%if %{with compat_build} +%bcond_with python_lit +%bcond_with lldb +%else +%bcond_without python_lit +%bcond_without lldb +%endif + +# Disable LTO on x86 and riscv in order to reduce memory consumption. +%ifarch %ix86 riscv64 +%bcond_with lto_build +%else +%bcond_without lto_build +%endif + +%if %{without lto_build} +%global _lto_cflags %nil +%endif + +# We are building with clang for faster/lower memory LTO builds. +# See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_compiler_macros +%global toolchain clang + +# Opt out of https://fedoraproject.org/wiki/Changes/fno-omit-frame-pointer +# https://bugzilla.redhat.com/show_bug.cgi?id=2158587 +%undefine _include_frame_pointers + +# Suffixless tarball name (essentially: basename -s .tar.xz llvm-project-17.0.6.src.tar.xz) +%if %{with snapshot_build} +%global src_tarball_dir llvm-project-%{llvm_snapshot_git_revision} +%else +%global src_tarball_dir llvm-project-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:-rc%{rc_ver}}.src +%endif + +#region LLVM globals + +%if %{with compat_build} +%global pkg_name_llvm llvm%{maj_ver} +%global pkg_suffix %{maj_ver} +%global exec_suffix -%{maj_ver} +%global install_prefix %{_libdir}/%{pkg_name_llvm} +%global install_bindir %{install_prefix}/bin +%global install_includedir %{install_prefix}/include +%global install_libdir %{install_prefix}/lib +%global install_datadir %{install_prefix}/share +%global install_libexecdir %{install_prefix}/libexec +%global install_docdir %{install_datadir}/doc +%global unprefixed_libdir lib +%global build_libdir llvm/%{_vpath_builddir}/lib + +%global pkg_includedir %{_includedir}/%{pkg_name_llvm} +%global pkg_datadir %{install_prefix}/share +%else +%global pkg_name_llvm llvm +%global install_prefix /usr +%global install_bindir %{_bindir} +%global install_datadir %{_datadir} +%global install_libdir %{_libdir} +%global install_includedir %{_includedir} +%global install_libexecdir %{_libexecdir} +%global install_docdir %{_docdir} +%global unprefixed_libdir %{_lib} +%global build_libdir llvm/%{_vpath_builddir}/%{_lib} +%global pkg_datadir %{_datadir} +%global pkg_suffix %{nil} +%global exec_suffix %{nil} +%endif + +%if 0%{?rhel} +%global targets_to_build "X86;AMDGPU;PowerPC;NVPTX;SystemZ;AArch64;ARM;Mips;BPF;WebAssembly" +%global experimental_targets_to_build "" +%else +%global targets_to_build "all" +%global experimental_targets_to_build "AVR" +%endif + +%global build_install_prefix %{buildroot}%{install_prefix} + +# Lower memory usage of dwz on s390x +%global _dwz_low_mem_die_limit_s390x 1 +%global _dwz_max_die_limit_s390x 1000000 + +%global llvm_triple %{_target_platform} + +# https://fedoraproject.org/wiki/Changes/PythonSafePath#Opting_out +# Don't add -P to Python shebangs +# The executable Python scripts in /usr/share/opt-viewer/ import each other +%undefine _py3_shebang_P + +#endregion LLVM globals + +#region CLANG globals + +%global pkg_name_clang clang%{pkg_suffix} + +#endregion CLANG globals + +#region COMPILER-RT globals + +%global pkg_name_compiler_rt compiler-rt%{pkg_suffix} + +# TODO(kkleine): do these optflags hurt llvm and/or clang? + +# see https://sourceware.org/bugzilla/show_bug.cgi?id=25271 +%global optflags %(echo %{optflags} -D_DEFAULT_SOURCE) + +# see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93615 +%global optflags %(echo %{optflags} -Dasm=__asm__) + +# Copy CFLAGS into ASMFLAGS, so -fcf-protection is used when compiling assembly files. +# export ASMFLAGS=$CFLAGS +#endregion COMPILER-RT globals + +#region LLD globals + +%global pkg_name_libomp libomp%{pkg_suffix} + +%global so_suffix %{maj_ver}.%{min_ver} + +%if %{with snapshot_build} +%global so_suffix %{maj_ver}.%{min_ver}%{llvm_snapshot_version_suffix} +%endif + +%ifarch ppc64le +%global libomp_arch ppc64 +%else +%global libomp_arch %{_arch} +%endif + +#endregion LLD globals + +#region LLD globals +%global pkg_name_lld lld%{pkg_suffix} +#endregion LLD globals + +#region LLDB globals +%global pkg_name_lldb lldb +#endregion LLDB globals +#endregion globals + +#region packages +#region main package +Name: %{pkg_name_llvm} +Version: %{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:~rc%{rc_ver}}%{?llvm_snapshot_version_suffix:~%{llvm_snapshot_version_suffix}} +Release: 1%{?dist} +Summary: The Low Level Virtual Machine + +License: Apache-2.0 WITH LLVM-exception OR NCSA +URL: http://llvm.org + +%if %{with snapshot_build} +Source0: https://github.com/llvm/llvm-project/archive/%{llvm_snapshot_git_revision}.tar.gz +%else +Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:-rc%{rc_ver}}/%{src_tarball_dir}.tar.xz +Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:-rc%{rc_ver}}/%{src_tarball_dir}.tar.xz.sig +%endif +Source6: release-keys.asc + +%if %{without compat_build} +Source2005: macros.%{pkg_name_clang} +%endif + +%if %{with bundle_compat_lib} +Source3000: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{compat_ver}/llvm-project-%{compat_ver}.src.tar.xz +Source3001: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{compat_ver}/llvm-project-%{compat_ver}.src.tar.xz.sig +%endif + +# Sources we use to split up the main spec file in sections so that we can more +# easily see what specfile sections are touched by a patch. +%if %{with snapshot_build} +Source1000: version.spec.inc +%endif + +#region CLANG patches +Patch2001: 0001-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch +Patch2002: 0003-PATCH-clang-Don-t-install-static-libraries.patch +#endregion CLANG patches + +# Workaround a bug in ORC on ppc64le. +# More info is available here: https://reviews.llvm.org/D159115#4641826 +Patch2005: 0001-Workaround-a-bug-in-ORC-on-ppc64le.patch + +#region LLD patches +Patch3002: 0001-Always-build-shared-libs-for-LLD.patch +#endregion LLD patches + +#region RHEL patches +# All RHEL +%if %{maj_ver} >= 20 +Patch9001: 0001-20-Remove-myst_parser-dependency-for-RHEL.patch +%else +Patch9001: 0001-19-Remove-myst_parser-dependency-for-RHEL.patch +%endif + +# RHEL 8 only +Patch9002: 0001-Fix-page-size-constant-on-aarch64-and-ppc64le.patch +#endregion RHEL patches + +%if 0%{?rhel} == 8 +%global python3_pkgversion 3.12 +%global __python3 /usr/bin/python3.12 +%endif + +BuildRequires: gcc +BuildRequires: gcc-c++ +%if 0%{?rhel} < 10 +BuildRequires: %{gcc_toolset}-gcc +BuildRequires: %{gcc_toolset}-gcc-c++ +BuildRequires: %{gcc_toolset}-gcc-plugin-annobin +%endif +BuildRequires: clang +BuildRequires: cmake +BuildRequires: ninja-build +BuildRequires: zlib-devel +BuildRequires: libffi-devel +BuildRequires: ncurses-devel +# This intentionally does not use python3_pkgversion. RHEL 8 does not have +# python3.12-sphinx, and we are only using it as a binary anyway. +BuildRequires: python3-sphinx +%if 0%{?rhel} != 8 +# RHEL 8 does not have these packages for python3.12. However, they are only +# needed for LLDB tests. +BuildRequires: python%{python3_pkgversion}-psutil +BuildRequires: python%{python3_pkgversion}-pexpect +%endif +%if %{undefined rhel} +BuildRequires: python%{python3_pkgversion}-myst-parser +%endif +# Needed for %%multilib_fix_c_header +BuildRequires: multilib-rpm-config +%if %{with gold} +BuildRequires: binutils-devel +%endif +%ifarch %{valgrind_arches} +# Enable extra functionality when run the LLVM JIT under valgrind. +BuildRequires: valgrind-devel +%endif +# LLVM's LineEditor library will use libedit if it is available. +BuildRequires: libedit-devel +# We need python3-devel for %%py3_shebang_fix +BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: python%{python3_pkgversion}-setuptools +%if 0%{?rhel} == 8 +BuildRequires: python%{python3_pkgversion}-rpm-macros +%endif + +# For gpg source verification +BuildRequires: gnupg2 + +BuildRequires: swig +BuildRequires: libxml2-devel +BuildRequires: doxygen + +# For clang-offload-packager +BuildRequires: elfutils-libelf-devel +BuildRequires: perl +BuildRequires: perl-Data-Dumper +BuildRequires: perl-Encode +BuildRequires: libffi-devel + +BuildRequires: perl-generators + +# According to https://fedoraproject.org/wiki/Packaging:Emacs a package +# should BuildRequires: emacs if it packages emacs integration files. +BuildRequires: emacs + +BuildRequires: libatomic + +# scan-build uses these perl modules so they need to be installed in order +# to run the tests. +BuildRequires: perl(Digest::MD5) +BuildRequires: perl(File::Copy) +BuildRequires: perl(File::Find) +BuildRequires: perl(File::Path) +BuildRequires: perl(File::Temp) +BuildRequires: perl(FindBin) +BuildRequires: perl(Hash::Util) +BuildRequires: perl(lib) +BuildRequires: perl(Term::ANSIColor) +BuildRequires: perl(Text::ParseWords) +BuildRequires: perl(Sys::Hostname) + +BuildRequires: graphviz + +# This is required because we need "ps" when running LLDB tests +BuildRequires: procps-ng + +# For reproducible pyc file generation +# See https://docs.fedoraproject.org/en-US/packaging-guidelines/Python_Appendix/#_byte_compilation_reproducibility +# Since Fedora 41 this happens automatically, and RHEL 8 does not support this. +%if (%{defined fedora} && 0%{?fedora} < 41) || 0%{?rhel} == 9 || 0%{?rhel} == 10 +BuildRequires: /usr/bin/marshalparser +%global py_reproducible_pyc_path %{buildroot}%{python3_sitelib} +%endif + +Requires: %{pkg_name_llvm}-libs%{?_isa} = %{version}-%{release} + +Provides: llvm(major) = %{maj_ver} + +%description +LLVM is a compiler infrastructure designed for compile-time, link-time, +runtime, and idle-time optimization of programs from arbitrary programming +languages. The compiler infrastructure includes mirror sets of programming +tools as well as libraries with equivalent functionality. +#endregion main package + +#region LLVM lit package +%if %{with python_lit} +%package -n python%{python3_pkgversion}-lit +Summary: LLVM lit test runner for Python 3 + +BuildArch: noarch +Requires: python%{python3_pkgversion}-setuptools +%if 0%{?rhel} == 8 +# Became python3.12-clang in LLVM 19 +Obsoletes: python3-lit < 18.9 +%else +# This optional dependency is not available for python3.12 on RHEL 8. +Recommends: python%{python3_pkgversion}-psutil +%endif + +%description -n python%{python3_pkgversion}-lit +lit is a tool used by the LLVM project for executing its test suites. +%endif +#endregion LLVM lit package + +#region LLVM packages + +%package -n %{pkg_name_llvm}-devel +Summary: Libraries and header files for LLVM +Requires: %{pkg_name_llvm}%{?_isa} = %{version}-%{release} +Requires: %{pkg_name_llvm}-libs%{?_isa} = %{version}-%{release} +# The installed LLVM cmake files will add -ledit to the linker flags for any +# app that requires the libLLVMLineEditor, so we need to make sure +# libedit-devel is available. +Requires: libedit-devel +Requires: libzstd-devel +# The installed cmake files reference binaries from llvm-test, llvm-static, and +# llvm-gtest. We tried in the past to split the cmake exports for these binaries +# out into separate files, so that llvm-devel would not need to Require these packages, +# but this caused bugs (rhbz#1773678) and forced us to carry two non-upstream +# patches. +Requires: %{pkg_name_llvm}-static%{?_isa} = %{version}-%{release} +Requires: %{pkg_name_llvm}-test%{?_isa} = %{version}-%{release} +Requires: %{pkg_name_llvm}-googletest%{?_isa} = %{version}-%{release} + + +Requires(post): %{_sbindir}/alternatives +Requires(postun): %{_sbindir}/alternatives + +Provides: llvm-devel(major) = %{maj_ver} + +%description -n %{pkg_name_llvm}-devel +This package contains library and header files needed to develop new native +programs that use the LLVM infrastructure. + +%package -n %{pkg_name_llvm}-doc +Summary: Documentation for LLVM +BuildArch: noarch +Requires: %{pkg_name_llvm} = %{version}-%{release} + +%description -n %{pkg_name_llvm}-doc +Documentation for the LLVM compiler infrastructure. + +%package -n %{pkg_name_llvm}-libs +Summary: LLVM shared libraries + +%description -n %{pkg_name_llvm}-libs +Shared libraries for the LLVM compiler infrastructure. + +%package -n %{pkg_name_llvm}-static +Summary: LLVM static libraries +Conflicts: %{pkg_name_llvm}-devel < 8 + +Provides: llvm-static(major) = %{maj_ver} + +%description -n %{pkg_name_llvm}-static +Static libraries for the LLVM compiler infrastructure. + +%package -n %{pkg_name_llvm}-cmake-utils +Summary: CMake utilities shared across LLVM subprojects + +%description -n %{pkg_name_llvm}-cmake-utils +CMake utilities shared across LLVM subprojects. +This is for internal use by LLVM packages only. + +%package -n %{pkg_name_llvm}-test +Summary: LLVM regression tests +Requires: %{pkg_name_llvm}%{?_isa} = %{version}-%{release} +Requires: %{pkg_name_llvm}-libs%{?_isa} = %{version}-%{release} + +Provides: llvm-test(major) = %{maj_ver} + +%description -n %{pkg_name_llvm}-test +LLVM regression tests. + +%package -n %{pkg_name_llvm}-googletest +Summary: LLVM's modified googletest sources + +%description -n %{pkg_name_llvm}-googletest +LLVM's modified googletest sources. + +%if %{with snapshot_build} +%package -n %{pkg_name_llvm}-build-stats +Summary: Statistics for the RPM build + +%description -n %{pkg_name_llvm}-build-stats +Statistics for the RPM build. Only available in snapshot builds. +%endif + +#endregion LLVM packages + +#region CLANG packages + +%package -n %{pkg_name_clang} +Summary: A C language family front-end for LLVM + +Requires: %{pkg_name_clang}-libs%{?_isa} = %{version}-%{release} + +# clang requires gcc, clang++ requires libstdc++-devel +# - https://bugzilla.redhat.com/show_bug.cgi?id=1021645 +# - https://bugzilla.redhat.com/show_bug.cgi?id=1158594 +%if 0%{?rhel} > 9 +Requires: libstdc++-devel +Requires: gcc-c++ +%else +Requires: %{gcc_toolset}-libstdc++-devel +Requires: %{gcc_toolset}-gcc-c++ +%endif + +Provides: clang(major) = %{maj_ver} + +Conflicts: compiler-rt < 11.0.0 + +%description -n %{pkg_name_clang} +clang: noun + 1. A loud, resonant, metallic sound. + 2. The strident call of a crane or goose. + 3. C-language family front-end toolkit. + +The goal of the Clang project is to create a new C, C++, Objective C +and Objective C++ front-end for the LLVM compiler. Its tools are built +as libraries and designed to be loosely-coupled and extensible. + +Install compiler-rt if you want the Blocks C language extension or to +enable sanitization and profiling options when building, and +libomp-devel to enable -fopenmp. + +%package -n %{pkg_name_clang}-libs +Summary: Runtime library for clang +Requires: %{pkg_name_clang}-resource-filesystem%{?_isa} = %{version} +Recommends: %{pkg_name_compiler_rt}%{?_isa} = %{version} +Requires: %{pkg_name_llvm}-libs = %{version} +# atomic support is not part of compiler-rt +Recommends: libatomic%{?_isa} +# libomp-devel is required, so clang can find the omp.h header when compiling +# with -fopenmp. +Recommends: %{pkg_name_libomp}-devel%{_isa} = %{version} +Recommends: %{pkg_name_libomp}%{_isa} = %{version} + +%description -n %{pkg_name_clang}-libs +Runtime library for clang. + +%package -n %{pkg_name_clang}-devel +Summary: Development header files for clang +Requires: %{pkg_name_clang}-libs = %{version}-%{release} +Requires: %{pkg_name_clang}%{?_isa} = %{version}-%{release} +# The clang CMake files reference tools from clang-tools-extra. +Requires: %{pkg_name_clang}-tools-extra%{?_isa} = %{version}-%{release} +Provides: clang-devel(major) = %{maj_ver} + +%description -n %{pkg_name_clang}-devel +Development header files for clang. + +%package -n %{pkg_name_clang}-resource-filesystem +Summary: Filesystem package that owns the clang resource directory +Provides: clang-resource-filesystem(major) = %{maj_ver} + +%description -n %{pkg_name_clang}-resource-filesystem +This package owns the clang resouce directory: $libdir/clang/$version/ + +%package -n %{pkg_name_clang}-analyzer +Summary: A source code analysis framework +License: Apache-2.0 WITH LLVM-exception OR NCSA OR MIT +BuildArch: noarch +Requires: %{pkg_name_clang} = %{version}-%{release} + +%description -n %{pkg_name_clang}-analyzer +The Clang Static Analyzer consists of both a source code analysis +framework and a standalone tool that finds bugs in C and Objective-C +programs. The standalone tool is invoked from the command-line, and is +intended to run in tandem with a build of a project or code base. + +%package -n %{pkg_name_clang}-tools-extra +Summary: Extra tools for clang +Requires: %{pkg_name_clang}-libs%{?_isa} = %{version}-%{release} +Requires: emacs-filesystem + +%description -n %{pkg_name_clang}-tools-extra +A set of extra tools built using Clang's tooling API. + +%package -n %{pkg_name_clang}-tools-extra-devel +Summary: Development header files for clang tools +Requires: %{pkg_name_clang}-tools-extra = %{version}-%{release} + +%description -n %{pkg_name_clang}-tools-extra-devel +Development header files for clang tools. + +# Put git-clang-format in its own package, because it Requires git +# and we don't want to force users to install all those dependenices if they +# just want clang. +%package -n git-clang-format%{pkg_suffix} +Summary: Integration of clang-format for git +Requires: %{pkg_name_clang}-tools-extra = %{version}-%{release} +Requires: git +Requires: python%{python3_pkgversion} + +%description -n git-clang-format%{pkg_suffix} +clang-format integration for git. + +%if %{without compat_build} +%package -n python%{python3_pkgversion}-clang +Summary: Python3 bindings for clang +Requires: %{pkg_name_clang}-devel%{?_isa} = %{version}-%{release} +Requires: python%{python3_pkgversion} +%if 0%{?rhel} == 8 +# Became python3.12-clang in LLVM 19 +Obsoletes: python3-clang < 18.9 +%endif +%description -n python%{python3_pkgversion}-clang +%{summary}. + + +%endif + +#endregion CLANG packages + +#region COMPILER-RT packages + +%package -n %{pkg_name_compiler_rt} +Summary: LLVM "compiler-rt" runtime libraries + +License: Apache-2.0 WITH LLVM-exception OR NCSA OR MIT + +Requires: clang-resource-filesystem%{?isa} = %{version} +Provides: compiler-rt(major) = %{maj_ver} + +%description -n %{pkg_name_compiler_rt} +The compiler-rt project is a part of the LLVM project. It provides +implementation of the low-level target-specific hooks required by +code generation, sanitizer runtimes and profiling library for code +instrumentation, and Blocks C language extension. + +#endregion COMPILER-RT packages + +#region OPENMP packages + +%package -n %{pkg_name_libomp} +Summary: OpenMP runtime for clang + +URL: http://openmp.llvm.org + +Requires: elfutils-libelf%{?isa} + +%description -n %{pkg_name_libomp} +OpenMP runtime for clang. + +%package -n %{pkg_name_libomp}-devel +Summary: OpenMP header files + +URL: http://openmp.llvm.org + +Requires: %{name}%{?isa} = %{version}-%{release} +Requires: clang-resource-filesystem%{?isa} = %{version} + +%description -n %{pkg_name_libomp}-devel +OpenMP header files. +URL: http://openmp.llvm.org + +#endregion OPENMP packages + +#region LLD packages + +%package -n %{pkg_name_lld} +Summary: The LLVM Linker + +Requires(post): %{_sbindir}/update-alternatives +Requires(preun): %{_sbindir}/update-alternatives + +Requires: %{pkg_name_lld}-libs = %{version}-%{release} + +%description -n %{pkg_name_lld} +The LLVM project linker. + +%package -n %{pkg_name_lld}-devel +Summary: Libraries and header files for LLD +Requires: %{pkg_name_lld}-libs%{?_isa} = %{version}-%{release} +%if %{without compat_build} +# lld tools are referenced in the cmake files, so we need to add lld as a +# dependency. +Requires: %{pkg_name_lld}%{?_isa} = %{version}-%{release} +%endif +Provides: lld-devel(major) = %{maj_ver} + +%description -n %{pkg_name_lld}-devel +This package contains library and header files needed to develop new native +programs that use the LLD infrastructure. + +%package -n %{pkg_name_lld}-libs +Summary: LLD shared libraries + +%description -n %{pkg_name_lld}-libs +Shared libraries for LLD. + +#endregion LLD packages + +#region Toolset package +%if 0%{?rhel} +%package -n %{pkg_name_llvm}-toolset +Summary: Package that installs llvm-toolset +Requires: clang = %{version} +Requires: llvm = %{version} +Requires: lld = %{version} + +%description -n %{pkg_name_llvm}-toolset +This is the main package for llvm-toolset. +%endif +#endregion Toolset package + +#region LLDB packages +%if %{with lldb} +%package -n %{pkg_name_lldb} +Summary: Next generation high-performance debugger +License: Apache-2.0 WITH LLVM-exception OR NCSA +URL: http://lldb.llvm.org/ + +Requires: python%{python3_pkgversion}-lldb + +%description -n %{pkg_name_lldb} +LLDB is a next generation, high-performance debugger. It is built as a set +of reusable components which highly leverage existing libraries in the +larger LLVM Project, such as the Clang expression parser and LLVM +disassembler. + +%package -n %{pkg_name_lldb}-devel +Summary: Development header files for LLDB +Requires: %{pkg_name_lldb}%{?_isa} = %{version}-%{release} + +%description -n %{pkg_name_lldb}-devel +The package contains header files for the LLDB debugger. + +%package -n python%{python3_pkgversion}-lldb +%{?python_provide:%python_provide python%{python3_pkgversion}-lldb} +Summary: Python module for LLDB + +Requires: %{pkg_name_lldb}%{?_isa} = %{version}-%{release} + +%if 0%{?rhel} == 8 +# Became python3.12-lldb in LLVM 19 +Obsoletes: python3-lldb < 18.9 +%endif + +%description -n python%{python3_pkgversion}-lldb +The package contains the LLDB Python module. +%endif +#endregion LLDB packages +#endregion packages + +#region prep +%prep +%if %{without snapshot_build} +# llvm +%{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +%endif + +%if %{with bundle_compat_lib} +%{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE3001}' --data='%{SOURCE3000}' +%setup -T -q -b 3000 -n llvm-project-%{compat_ver}.src +%endif + +# -T : Do Not Perform Default Archive Unpacking (without this, the th source would be unpacked twice) +# -b : Unpack The nth Sources Before Changing Directory +# -n : Set Name of Build Directory +# +# see http://ftp.rpm.org/max-rpm/s1-rpm-inside-macros.html +%autosetup -N -T -b 0 -n %{src_tarball_dir} + +# Apply all patches with number <= 9000 +# See https://rpm-software-management.github.io/rpm/manual/autosetup.html +%autopatch -M9000 -p1 + +%if %{defined rhel} +%patch -p1 -P9001 + +%if %{rhel} == 8 +%patch -p1 -P9002 +%endif +%endif + +#region LLVM preparation + +%py3_shebang_fix \ + llvm/test/BugPoint/compile-custom.ll.py \ + llvm/tools/opt-viewer/*.py \ + llvm/utils/update_cc_test_checks.py + +#endregion LLVM preparation + +#region CLANG preparation + +%py3_shebang_fix \ + clang-tools-extra/clang-tidy/tool/ \ + clang-tools-extra/clang-include-fixer/find-all-symbols/tool/run-find-all-symbols.py + +%py3_shebang_fix \ + clang/tools/clang-format/ \ + clang/tools/clang-format/git-clang-format \ + clang/utils/hmaptool/hmaptool \ + clang/tools/scan-view/bin/scan-view \ + clang/tools/scan-view/share/Reporter.py \ + clang/tools/scan-view/share/startfile.py \ + clang/tools/scan-build-py/bin/* \ + clang/tools/scan-build-py/libexec/* + +#endregion CLANG preparation + +#region COMPILER-RT preparation + +%py3_shebang_fix compiler-rt/lib/hwasan/scripts/hwasan_symbolize + +#endregion COMPILER-RT preparation + +#region LLDB preparation +# Empty lldb/docs/CMakeLists.txt because we cannot build it +echo "" > lldb/docs/CMakeLists.txt +#endregion LLDB preparation +#endregion prep + +#region build +%build +%if 0%{?rhel} < 10 +source /opt/rh/%{gcc_toolset}/enable +%endif + +# TODO(kkleine): In clang we had this %ifarch s390 s390x aarch64 %ix86 ppc64le +# Decrease debuginfo verbosity to reduce memory consumption during final library linking. +%global reduce_debuginfo 0 +%ifarch %ix86 +%global reduce_debuginfo 1 +%endif +%if 0%{?rhel} == 8 +%global reduce_debuginfo 1 +%endif + +%if %reduce_debuginfo == 1 +%global optflags %(echo %{optflags} | sed 's/-g /-g1 /') +%endif + +%global projects clang;clang-tools-extra;lld +%if %{with lldb} +%global projects %{projects};lldb +%endif + +# Copy CFLAGS into ASMFLAGS, so -fcf-protection is used when compiling assembly files. +export ASMFLAGS="%{build_cflags}" + +# We set CLANG_DEFAULT_PIE_ON_LINUX=OFF and PPC_LINUX_DEFAULT_IEEELONGDOUBLE=ON to match the +# defaults used by Fedora's GCC. + +# Disable dwz on aarch64, because it takes a huge amount of time to decide not to optimize things. +# This is copied from clang. +%ifarch aarch64 +%define _find_debuginfo_dwz_opts %{nil} +%endif + +export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:`pwd`/%{build_libdir}" + +cd llvm + +#region LLVM lit +%if %{with python_lit} +pushd utils/lit +%py3_build +popd +%endif +#endregion LLVM lit + +%if 0%{?rhel} == 8 +%undefine __cmake_in_source_build +%endif + +# TODO(kkleine): Follow more closely the Distribution guidelines found here: https://llvm.org/docs/BuildingADistribution.html +# force off shared libs as cmake macros turns it on. +%cmake -G Ninja \ + -DLLVM_ENABLE_PROJECTS="%{projects}" \ + \ + \ + -DCLANG_DEFAULT_PIE_ON_LINUX=OFF \ +%if 0%{?fedora} || 0%{?rhel} > 9 + -DPPC_LINUX_DEFAULT_IEEELONGDOUBLE=ON \ +%endif + -DPython3_EXECUTABLE=%{__python3} \ + -DLLVM_INCLUDE_TESTS:BOOL=ON \ + -DCLANG_INCLUDE_TESTS:BOOL=ON \ + -DLLVM_BUILD_UTILS:BOOL=ON \ + -DCLANG_ENABLE_ARCMT:BOOL=ON \ + -DCLANG_ENABLE_STATIC_ANALYZER:BOOL=ON \ + -DCLANG_INCLUDE_DOCS:BOOL=ON \ + -DCLANG_PLUGIN_SUPPORT:BOOL=ON \ + -DENABLE_LINKER_BUILD_ID:BOOL=ON \ + -DLLVM_ENABLE_EH=ON \ + -DCLANG_LINK_CLANG_DYLIB=ON \ + -DCLANG_BUILD_EXAMPLES:BOOL=OFF \ + -DCLANG_REPOSITORY_STRING="%{?dist_vendor} %{version}-%{release}" \ +%if %{with compat_build} + -DCLANG_RESOURCE_DIR=../../../lib/clang/%{maj_ver} \ +%else + -DCLANG_RESOURCE_DIR=../lib/clang/%{maj_ver} \ +%endif + -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR=../clang-tools-extra \ + -DCLANG_CONFIG_FILE_SYSTEM_DIR=%{_sysconfdir}/%{pkg_name_clang}/ \ + -DCLANG_CONFIG_FILE_USER_DIR="~/.config/clang" \ + -DCLANG_DEFAULT_UNWINDLIB=libgcc \ + \ + \ + \ + \ + -DLLVM_ENABLE_RUNTIMES="compiler-rt;openmp;offload" \ + \ + \ + \ + \ + \ + -DCOMPILER_RT_INSTALL_PATH=%{_prefix}/lib/clang/%{maj_ver} \ + -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON \ + -DCOMPILER_RT_INCLUDE_TESTS:BOOL=OFF \ + \ + \ + \ + \ + \ + -DLIBOMP_INSTALL_ALIASES=OFF \ + -DOPENMP_INSTALL_LIBDIR=%{unprefixed_libdir} \ + -DOFFLOAD_INSTALL_LIBDIR=%{unprefixed_libdir} \ + \ + \ + \ + \ + -DBUILD_SHARED_LIBS:BOOL=OFF \ + -DLLVM_PARALLEL_LINK_JOBS=1 \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_SKIP_RPATH:BOOL=ON \ +%if %reduce_debuginfo == 1 + -DCMAKE_C_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \ + -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \ +%endif +%if %{without compat_build} +%if 0%{?__isa_bits} == 64 + -DLLVM_LIBDIR_SUFFIX=64 \ +%else + -DLLVM_LIBDIR_SUFFIX= \ +%endif +%endif + \ + -DLLVM_TARGETS_TO_BUILD=%{targets_to_build} \ + -DLLVM_ENABLE_LIBCXX:BOOL=OFF \ + -DLLVM_ENABLE_ZLIB:BOOL=ON \ + -DLLVM_ENABLE_FFI:BOOL=ON \ + -DLLVM_ENABLE_RTTI:BOOL=ON \ + -DLLVM_USE_PERF:BOOL=ON \ +%if %{with gold} + -DLLVM_BINUTILS_INCDIR=%{_includedir} \ +%endif + -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=%{experimental_targets_to_build} \ + \ + -DLLVM_BUILD_RUNTIME:BOOL=ON \ + \ + -DLLVM_INCLUDE_TOOLS:BOOL=ON \ + -DLLVM_BUILD_TOOLS:BOOL=ON \ + \ + -DLLVM_BUILD_TESTS:BOOL=ON \ + -DLLVM_INSTALL_GTEST:BOOL=ON \ + -DLLVM_LIT_ARGS="-vv" \ + \ + -DLLVM_INCLUDE_EXAMPLES:BOOL=ON \ + -DLLVM_BUILD_EXAMPLES:BOOL=OFF \ + \ + -DLLVM_INCLUDE_UTILS:BOOL=ON \ + -DLLVM_INSTALL_UTILS:BOOL=ON \ + -DLLVM_UTILS_INSTALL_DIR:PATH=bin \ + -DLLVM_TOOLS_INSTALL_DIR:PATH=bin \ + \ + -DLLVM_INCLUDE_DOCS:BOOL=ON \ + -DLLVM_BUILD_DOCS:BOOL=ON \ + -DLLVM_ENABLE_SPHINX:BOOL=ON \ + -DLLVM_ENABLE_DOXYGEN:BOOL=OFF \ + -DLLVM_APPEND_VC_REV:BOOL=OFF \ + \ +%if %{with snapshot_build} + -DLLVM_VERSION_SUFFIX="%{llvm_snapshot_version_suffix}" \ +%else +%if %{without compat_build} + -DLLVM_VERSION_SUFFIX='' \ +%endif +%endif + -DLLVM_UNREACHABLE_OPTIMIZE:BOOL=OFF \ + -DLLVM_BUILD_LLVM_DYLIB:BOOL=ON \ + -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ + -DLLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL=ON \ + -DLLVM_INSTALL_TOOLCHAIN_ONLY:BOOL=OFF \ + -DLLVM_DEFAULT_TARGET_TRIPLE=%{llvm_triple} \ + -DSPHINX_WARNINGS_AS_ERRORS=OFF \ + -DCMAKE_INSTALL_PREFIX=%{install_prefix} \ + -DLLVM_INSTALL_SPHINX_HTML_DIR=%{_pkgdocdir}/html \ + -DSPHINX_EXECUTABLE=%{_bindir}/sphinx-build-3 \ + -DLLVM_INCLUDE_BENCHMARKS=OFF \ + \ + \ + -DLLVM_DYLIB_COMPONENTS="all" \ + -DLLVM_COMMON_CMAKE_UTILS=%{install_datadir}/llvm/cmake \ + \ + \ + \ +%if %{with lldb} + -DLLDB_DISABLE_CURSES:BOOL=OFF \ + -DLLDB_DISABLE_LIBEDIT:BOOL=OFF \ + -DLLDB_DISABLE_PYTHON:BOOL=OFF \ +%ifarch ppc64le + -DLLDB_TEST_USER_ARGS=--skip-category=watchpoint \ +%endif +%if 0%{?rhel} == 8 + -DLLDB_INCLUDE_TESTS:BOOL=OFF \ +%else + -DLLDB_ENFORCE_STRICT_TEST_REQUIREMENTS:BOOL=ON \ +%endif +%endif + \ + \ + \ +%ifarch x86_64 + -DCMAKE_SHARED_LINKER_FLAGS="$LDFLAGS -Wl,-z,cet-report=error" \ +%endif +%if 0%{?rhel} == 8 + -DLLVM_RAM_PER_COMPILE_JOB=2048 \ +%endif +%if %{with lto_build} +%if 0%{?fedora} >= 41 + -DLLVM_UNITTEST_LINK_FLAGS="-fno-lto" +%else + -DLLVM_UNITTEST_LINK_FLAGS="-Wl,-plugin-opt=O0" +%endif +%endif + +# Build libLLVM.so first. This ensures that when libLLVM.so is linking, there +# are no other compile jobs running. This will help reduce OOM errors on the +# builders without having to artificially limit the number of concurrent jobs. +%cmake_build --target LLVM + +# Also build libclang-cpp.so separately to avoid OOM errors. +# This is to fix occasional OOM errors on the ppc64le COPR builders. +%cmake_build --target libclang-cpp.so + +%cmake_build + +# If we don't build the runtimes target here, we'll have to wait for the %check +# section until these files are available but they need to be installed. +# +# /usr/lib64/libomptarget.devicertl.a +# /usr/lib64/libomptarget-amdgpu-*.bc +# /usr/lib64/libomptarget-nvptx-*.bc + +%cmake_build --target runtimes + +#region compat lib +cd .. + +%if %{with bundle_compat_lib} +%cmake -S ../llvm-project-%{compat_ver}.src/llvm -B ../llvm-compat-libs -G Ninja \ + -DCMAKE_INSTALL_PREFIX=%{buildroot}%{_libdir}/llvm%{compat_maj_ver}/ \ + -DCMAKE_SKIP_RPATH=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=OFF \ + -DLLVM_BUILD_LLVM_DYLIB=ON \ + -DLLVM_ENABLE_EH=ON \ + -DLLVM_ENABLE_RTTI=ON \ + -DLLVM_ENABLE_PROJECTS=clang \ + -DLLVM_TARGETS_TO_BUILD=%{targets_to_build} \ + -DLLVM_INCLUDE_BENCHMARKS=OFF \ + -DLLVM_INCLUDE_TESTS=OFF + +%ninja_build -C ../llvm-compat-libs LLVM +%ninja_build -C ../llvm-compat-libs libclang.so +%ninja_build -C ../llvm-compat-libs libclang-cpp.so + +%endif +#endregion compat lib +#endregion build + +#region install +%install +#region LLVM installation + +pushd llvm + +%if %{with python_lit} +pushd utils/lit +%py3_install + +# Strip out #!/usr/bin/env python +sed -i -e '1{\@^#!/usr/bin/env python@d}' %{buildroot}%{python3_sitelib}/lit/*.py +popd +%endif + +%cmake_install + +popd + +mkdir -p %{buildroot}/%{_bindir} + +# Install binaries needed for lit tests +%global test_binaries llvm-isel-fuzzer llvm-opt-fuzzer + +for f in %{test_binaries} +do + install -m 0755 llvm/%{_vpath_builddir}/bin/$f %{buildroot}%{install_bindir} +done + +# Install libraries needed for unittests +install %{build_libdir}/libLLVMTestingSupport.a %{buildroot}%{install_libdir} +install %{build_libdir}/libLLVMTestingAnnotations.a %{buildroot}%{install_libdir} + +# Fix multi-lib +%multilib_fix_c_header --file %{install_includedir}/llvm/Config/llvm-config.h + +%if %{without compat_build} + +# Fix some man pages +ln -s llvm-config.1 %{buildroot}%{_mandir}/man1/llvm-config%{exec_suffix}-%{__isa_bits}.1 + +%if %{with gold} +# Add symlink to lto plugin in the binutils plugin directory. +%{__mkdir_p} %{buildroot}%{_libdir}/bfd-plugins/ +ln -s -t %{buildroot}%{_libdir}/bfd-plugins/ ../LLVMgold.so +%endif + +%else + +# Create ld.so.conf.d entry +mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d +cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{pkg_name_llvm}-%{_arch}.conf << EOF +%{install_libdir} +EOF + +# Add version suffix to man pages and move them to mandir. +mkdir -p %{buildroot}/%{_mandir}/man1 +for f in %{build_install_prefix}/share/man/man1/*; do + filename=`basename $f | cut -f 1 -d '.'` + mv $f %{buildroot}%{_mandir}/man1/$filename%{exec_suffix}.1 +done + +%endif + +mkdir -p %{buildroot}%{pkg_datadir}/llvm/cmake +cp -Rv cmake/* %{buildroot}%{pkg_datadir}/llvm/cmake + +#endregion LLVM installation + +#region CLANG installation + +# Add a symlink in /usr/bin to clang-format-diff +ln -s %{install_datadir}/clang/clang-format-diff.py %{buildroot}%{install_bindir}/clang-format-diff + +# File in the macros file for other packages to use. We are not doing this +# in the compat package, because the version macros would # conflict with +# eachother if both clang and the clang compat package were installed together. +%if %{without compat_build} +install -p -m0644 -D %{SOURCE2005} %{buildroot}%{_rpmmacrodir}/macros.%{pkg_name_clang} +sed -i -e "s|@@CLANG_MAJOR_VERSION@@|%{maj_ver}|" \ + -e "s|@@CLANG_MINOR_VERSION@@|%{min_ver}|" \ + -e "s|@@CLANG_PATCH_VERSION@@|%{patch_ver}|" \ + %{buildroot}%{_rpmmacrodir}/macros.%{pkg_name_clang} + +# install clang python bindings +mkdir -p %{buildroot}%{python3_sitelib}/clang/ +# If we don't default to true here, we'll see this error: +# install: omitting directory 'bindings/python/clang/__pycache__' +# NOTE: this only happens if we include the gdb plugin of libomp. +# Remove the plugin with command and we're good: rm -rf %{buildroot}/%{_datarootdir}/gdb +install -p -m644 clang/bindings/python/clang/* %{buildroot}%{python3_sitelib}/clang/ +%py_byte_compile %{__python3} %{buildroot}%{python3_sitelib}/clang + +# install scanbuild-py to python sitelib. +mv %{buildroot}%{_prefix}/lib/{libear,libscanbuild} %{buildroot}%{python3_sitelib} +# Cannot use {libear,libscanbuild} style expansion in py_byte_compile. +%py_byte_compile %{__python3} %{buildroot}%{python3_sitelib}/libear +%py_byte_compile %{__python3} %{buildroot}%{python3_sitelib}/libscanbuild + +# Move emacs integration files to the correct directory +mkdir -p %{buildroot}%{_emacs_sitestartdir} +for f in clang-format.el clang-include-fixer.el; do +mv %{buildroot}{%{_datadir}/clang,%{_emacs_sitestartdir}}/$f +done +%if %{maj_ver} < 20 +mv %{buildroot}{%{_datadir}/clang,%{_emacs_sitestartdir}}/clang-rename.el +%endif + +# Add clang++-{version} symlink +ln -s clang++ %{buildroot}%{_bindir}/clang++-%{maj_ver} + +%else + +# Fix permission +chmod u-x %{buildroot}%{_mandir}/man1/scan-build%{exec_suffix}.1* + +# Not sure where to put these python modules for the compat build. +rm -Rf %{buildroot}%{install_libdir}/{libear,libscanbuild} + +# Not sure where to put the emacs integration files for the compat build. +rm -Rf %{buildroot}%{install_datadir}/clang/*.el + +# Add clang++-{version} symlink +ln -s ../../%{install_bindir}/clang++ %{buildroot}%{install_bindir}/clang++-%{maj_ver} + +%endif + +# Create Manpage symlinks +ln -s clang%{exec_suffix}.1.gz %{buildroot}%{_mandir}/man1/clang++%{exec_suffix}.1.gz +%if %{without compat_build} +ln -s clang.1.gz %{buildroot}%{_mandir}/man1/clang-%{maj_ver}.1.gz +ln -s clang.1.gz %{buildroot}%{_mandir}/man1/clang++-%{maj_ver}.1.gz +%endif + +# Fix permissions of scan-view scripts +chmod a+x %{buildroot}%{install_datadir}/scan-view/{Reporter.py,startfile.py} + +# multilib fix +%multilib_fix_c_header --file %{install_includedir}/clang/Config/config.h + +# remove editor integrations (bbedit, sublime, emacs, vim) +rm -vf %{buildroot}%{install_datadir}/clang/clang-format-bbedit.applescript +rm -vf %{buildroot}%{install_datadir}/clang/clang-format-sublime.py* + +# TODO: Package html docs +rm -Rvf %{buildroot}%{install_docdir}/LLVM/clang/html +rm -Rvf %{buildroot}%{install_docdir}/LLVM/clang-tools/html +rm -Rvf %{buildroot}%{install_datadir}/clang-doc/clang-doc-default-stylesheet.css +rm -Rvf %{buildroot}%{install_datadir}/clang-doc/index.js + +# TODO: What are the Fedora guidelines for packaging bash autocomplete files? +rm -vf %{buildroot}%{install_datadir}/clang/bash-autocomplete.sh + +# Create sub-directories in the clang resource directory that will be +# populated by other packages +mkdir -p %{buildroot}%{_prefix}/lib/clang/%{maj_ver}/{bin,include,lib,share}/ + +# Add versioned resource directory macro +mkdir -p %{buildroot}%{_rpmmacrodir}/ +echo "%%clang%{maj_ver}_resource_dir %%{_prefix}/lib/clang/%{maj_ver}" >> %{buildroot}%{_rpmmacrodir}/macros.%{pkg_name_clang} + +# Install config file for clang +%if %{maj_ver} >= 18 +mkdir -p %{buildroot}%{_sysconfdir}/%{pkg_name_clang}/ +echo "--gcc-triple=%{_target_cpu}-redhat-linux" >> %{buildroot}%{_sysconfdir}/%{pkg_name_clang}/%{_target_platform}-clang.cfg +echo "--gcc-triple=%{_target_cpu}-redhat-linux" >> %{buildroot}%{_sysconfdir}/%{pkg_name_clang}/%{_target_platform}-clang++.cfg +%if 0%{?rhel} < 10 +echo "--gcc-toolchain=/opt/rh/%{gcc_toolset}/root/usr" >> %{buildroot}%{_sysconfdir}/%{pkg_name_clang}/%{_target_platform}-clang.cfg +echo "--gcc-toolchain=/opt/rh/%{gcc_toolset}/root/usr" >> %{buildroot}%{_sysconfdir}/%{pkg_name_clang}/%{_target_platform}-clang++.cfg +%endif +%endif + +#endregion CLANG installation + +#region COMPILER-RT installation + +# Triple where compiler-rt libs are installed. If it differs from llvm_triple, then there is +# also a symlink llvm_triple -> compiler_rt_triple. +%global compiler_rt_triple %{llvm_triple} + +%ifarch ppc64le +# Fix install path on ppc64le so that the directory name matches the triple used +# by clang. +mv %{buildroot}%{_prefix}/lib/clang/%{maj_ver}/lib/powerpc64le-redhat-linux-gnu %{buildroot}%{_prefix}/lib/clang/%{maj_ver}/lib/%{llvm_triple} +%endif + +%ifarch %{ix86} +# Fix install path on ix86 so that the directory name matches the triple used +# by clang on both actual ix86 (i686) and on x86_64 with -m32 (i386): +%global compiler_rt_triple i386-redhat-linux-gnu +%if "%{llvm_triple}" != "%{compiler_rt_triple}" +ln -s %{compiler_rt_triple} %{buildroot}%{_prefix}/lib/clang/%{maj_ver}/lib/%{llvm_triple} +%endif +%else +rm -rf %{buildroot}%{_prefix}/lib/clang/%{maj_ver}/lib/i386-redhat-linux-gnu +%endif + +#endregion COMPILER-RT installation + +#region OPENMP installation + +# Remove static libraries with equivalent shared libraries +rm -rf %{buildroot}%{install_libdir}/libarcher_static.a + +# Remove the openmp gdb plugin for now +rm -rf %{buildroot}/%{install_datadir}/gdb +# # TODO(kkleine): These was added to avoid a permission issue +# chmod go+w %{buildroot}/%{_datarootdir}/gdb/python/ompd/ompdModule.so +# chmod +w %{buildroot}/%{_datarootdir}/gdb/python/ompd/ompdModule.so + +%ifnarch %{ix86} +# Remove files that we don't package, yet. +%if %{maj_ver} >= 20 +rm %{buildroot}%{install_bindir}/llvm-offload-device-info +%else +rm %{buildroot}%{install_bindir}/llvm-omp-device-info +%endif +rm %{buildroot}%{install_bindir}/llvm-omp-kernel-replay +%endif + +#endregion OPENMP installation + +#region LLD installation + +# Remove LLD's HTML documentation files +rm -Rvf %{buildroot}%{install_docdir}/LLVM/lld/html + +%if %{without compat_build} +# Required when using update-alternatives: +# https://docs.fedoraproject.org/en-US/packaging-guidelines/Alternatives/ +touch %{buildroot}%{_bindir}/ld + +install -D -m 644 -t %{buildroot}%{_mandir}/man1/ lld/docs/ld.lld.1 +%endif + +#endregion LLD installation + +#region LLDB installation +%if %{with lldb} +%multilib_fix_c_header --file %{install_includedir}/lldb/Host/Config.h + +# python: fix binary libraries location +liblldb=$(basename $(readlink -e %{buildroot}%{_libdir}/liblldb.so)) +ln -vsf "../../../${liblldb}" %{buildroot}%{python3_sitearch}/lldb/_lldb.so +%py_byte_compile %{__python3} %{buildroot}%{python3_sitearch}/lldb +%endif +#endregion LLDB installation + +%if %{with compat_build} +# Add version suffix to binaries. Do this at the end so it includes any +# additional binaries that may be been added by other steps. +for f in %{buildroot}/%{install_bindir}/*; do + filename=`basename $f` + if echo $filename | grep -e '%{maj_ver}'; then + continue + fi + ln -s ../../%{install_bindir}/$filename %{buildroot}/%{_bindir}/$filename%{exec_suffix} +done +%endif + +# llvm-config special casing. llvm-config is managed by update-alternatives. +# the original file must remain available for compatibility with the CMake +# infrastructure. Without compat, cmake points to the symlink, with compat it +# points to the original file. + +%if %{without compat_build} + +mv %{buildroot}/%{install_bindir}/llvm-config %{buildroot}/%{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} +# We still maintain a versionned symlink for consistency across llvm versions. +# This is specific to the non-compat build and matches the exec prefix for +# compat builds. An isa-agnostic versionned symlink is also maintained in the (un)install +# steps. +(cd %{buildroot}/%{install_bindir} ; ln -s llvm-config%{exec_suffix}-%{__isa_bits} llvm-config-%{maj_ver}-%{__isa_bits} ) +# ghost presence +touch %{buildroot}%{_bindir}/llvm-config-%{maj_ver} + +%else + +rm %{buildroot}%{_bindir}/llvm-config%{exec_suffix} +(cd %{buildroot}/%{install_bindir} ; ln -s llvm-config llvm-config%{exec_suffix}-%{__isa_bits} ) + +%endif + +# ghost presence +touch %{buildroot}%{_bindir}/llvm-config%{exec_suffix} + +%if %{with bundle_compat_lib} +install -m 0755 ../llvm-compat-libs/lib/libLLVM.so.%{compat_maj_ver}* %{buildroot}%{_libdir} +install -m 0755 ../llvm-compat-libs/lib/libclang.so.%{compat_maj_ver}* %{buildroot}%{_libdir} +install -m 0755 ../llvm-compat-libs/lib/libclang-cpp.so.%{compat_maj_ver}* %{buildroot}%{_libdir} +%endif +#endregion install + +#region check +%check +# TODO(kkleine): Instead of deleting test files we should mark them as expected +# to fail. See https://llvm.org/docs/CommandGuide/lit.html#cmdoption-lit-xfail + +%ifarch ppc64le +# TODO: Re-enable when ld.gold fixed its internal error. +rm llvm/test/tools/gold/PowerPC/mtriple.ll +%endif + +# non reproducible errors +# TODO(kkleine): Add this to XFAIL instead? +rm llvm/test/tools/dsymutil/X86/swift-interface.test + +%if %{with check} + +cd llvm + +#region Helper functions +# Call this function before setting up a next component to test. +function reset_test_opts() +{ + # Some libraries will not be found if we don't set this + export LD_LIBRARY_PATH="%{buildroot}/%{install_libdir}:%{buildroot}/%{_libdir}"; + + # See https://llvm.org/docs/CommandGuide/lit.html#general-options + export LIT_OPTS="-vv" + + # Set to mark tests as expected to fail. + # See https://llvm.org/docs/CommandGuide/lit.html#cmdoption-lit-xfail + unset LIT_XFAIL + + # Set to mark tests to not even run. + # See https://llvm.org/docs/CommandGuide/lit.html#cmdoption-lit-filter-out + # Unfortunately LIT_FILTER_OUT is not accepting a list but a regular expression. + # To make this easily maintainable, we'll create an associate array in bash, + # to which you can append and later we'll join that array and escape dots (".") + # in your test paths. The following line resets this array. + # See also the function "test_list_to_regex". + test_list_filter_out=() + unset LIT_FILTER_OUT + + # Set for filtering out unit tests. + # See http://google.github.io/googletest/advanced.html#running-a-subset-of-the-tests + unset GTEST_FILTER +} + +# Convert array of test names into a regex. +# Call this function with an indexed array. +# +# Example: +# +# testlist=() +# testlist+=("foo") +# testlist+=("bar") +# export LIT_FILTER_OUT=$(test_list_to_regex testlist) +# +# Then $LIT_FILTER_OUT should evaluate to: (foo|bar) +function test_list_to_regex() +{ + local -n arr=$1 + # Prepare LIT_FILTER_OUT regex from index bash array + # Join each element with a pipe symbol (regex for "or") + arr=$(printf "|%s" "${arr[@]}") + # Remove the initial pipe symbol + arr=${arr:1} + # Properly escape path dots (".") for use in regular expression + arr=$(echo $arr | sed 's/\./\\./g') + # Add enclosing parenthesis + echo "($arr)" +} +#endregion Helper functions + +#region Test LLVM lit +# It's fine to always run this, even if we're not shipping python-lit. +reset_test_opts +%cmake_build --target check-lit +#endregion Test LLVM lit + +#region Test LLVM +reset_test_opts +# Xfail testing of update utility tools +export LIT_XFAIL="tools/UpdateTestChecks" +%cmake_build --target check-llvm +#endregion Test LLVM + +#region Test CLANG +reset_test_opts +export LIT_XFAIL="$LIT_XFAIL;clang/test/CodeGen/profile-filter.c" +%cmake_build --target check-clang +#endregion Test Clang + +#region Test Clang Tools +reset_test_opts +%ifarch %ix86 +# Clang Tools :: clang-tidy/checkers/altera/struct-pack-align.cpp +export LIT_XFAIL="$LIT_XFAIL;clang-tidy/checkers/altera/struct-pack-align.cpp" +%endif +%cmake_build --target check-clang-tools +#endregion Test Clang Tools + +#region Test OPENMP +reset_test_opts + +# TODO(kkleine): OpenMP tests are currently not run on rawhide (see https://bugzilla.redhat.com/show_bug.cgi?id=2252966): +# +# + /usr/bin/cmake --build redhat-linux-build -j6 --verbose --target check-openmp +# Change Dir: '/builddir/build/BUILD/openmp-17.0.6.src/redhat-linux-build' +# Run Build Command(s): /usr/bin/ninja-build -v -j 6 check-openmp +# [1/1] cd /builddir/build/BUILD/openmp-17.0.6.src/redhat-linux-build && /usr/bin/cmake -E echo check-openmp\ does\ nothing,\ dependencies\ not\ found. +# +# We're marking the tests that are failing with the follwing error as expected to fail (XFAIL): +# +# gdb.error: No symbol "ompd_sizeof____kmp_gtid" in current context +# +# NOTE: It could be a different symbol in some tests. +export LIT_XFAIL="api_tests/test_ompd_get_curr_task_handle.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_get_enclosing_parallel_handle.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_get_generating_task_handle.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_get_icv_from_scope.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_get_scheduling_task_handle.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_get_state.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_get_task_frame.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_get_task_function.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_get_task_in_parallel.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_get_task_parallel_handle.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_get_thread_id.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_get_thread_in_parallel.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_parallel_handle_compare.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_rel_parallel_handle.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_rel_task_handle.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_rel_thread_handle.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_task_handle_compare.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_thread_handle_compare.c" +export LIT_XFAIL="$LIT_XFAIL;openmp_examples/ompd_icvs.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_get_curr_parallel_handle.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_get_display_control_vars.c" +export LIT_XFAIL="$LIT_XFAIL;api_tests/test_ompd_get_thread_handle.c" + +# The following test is flaky and we'll filter it out +test_list_filter_out+=("libomp :: ompt/teams/distribute_dispatch.c") +test_list_filter_out+=("libomp :: affinity/kmp-abs-hw-subset.c") +test_list_filter_out+=("libomp :: parallel/bug63197.c") +test_list_filter_out+=("libomp :: tasking/issue-69733.c") +test_list_filter_out+=("libarcher :: races/task-taskgroup-unrelated.c") + +# These tests fail more often than not, but not always. +test_list_filter_out+=("libomp :: worksharing/for/omp_collapse_many_GELTGT_int.c") +test_list_filter_out+=("libomp :: worksharing/for/omp_collapse_many_GTGEGT_int.c") +test_list_filter_out+=("libomp :: worksharing/for/omp_collapse_many_LTLEGE_int.c") +test_list_filter_out+=("libomp :: worksharing/for/omp_collapse_one_int.c") + +# The following tests seem pass on ppc64le and x86_64 and aarch64 only: +%ifnarch ppc64le x86_64 s390x aarch64 +# Passes on ppc64le: +# libomptarget :: powerpc64le-ibm-linux-gnu :: mapping/target_derefence_array_pointrs.cpp +# libomptarget :: powerpc64le-ibm-linux-gnu-LTO :: mapping/target_derefence_array_pointrs.cpp +# Passes on x86_64: +# libomptarget :: x86_64-pc-linux-gnu :: mapping/target_derefence_array_pointrs.cpp +# libomptarget :: x86_64-pc-linux-gnu-LTO :: mapping/target_derefence_array_pointrs.cpp +# Passes on s390x: +# libomptarget :: s390x-ibm-linux-gnu :: mapping/target_derefence_array_pointrs.cpp +# libomptarget :: s390x-ibm-linux-gnu-LTO :: mapping/target_derefence_array_pointrs.cpp +export LIT_XFAIL="$LIT_XFAIL;mapping/target_derefence_array_pointrs.cpp" +%endif + +%ifnarch x86_64 +# Passes on x86_64: +# libomptarget :: x86_64-pc-linux-gnu :: api/ompx_3d.c +# libomptarget :: x86_64-pc-linux-gnu :: api/ompx_3d.cpp +# libomptarget :: x86_64-pc-linux-gnu-LTO :: api/ompx_3d.c +# libomptarget :: x86_64-pc-linux-gnu-LTO :: api/ompx_3d.cpp +# libomptarget :: aarch64-unknown-linux-gnu :: +export LIT_XFAIL="$LIT_XFAIL;api/ompx_3d.c" +export LIT_XFAIL="$LIT_XFAIL;api/ompx_3d.cpp" +%endif + +%ifarch ppc64le +export LIT_XFAIL="$LIT_XFAIL;barrier/barrier.c" +export LIT_XFAIL="$LIT_XFAIL;critical/critical.c" +export LIT_XFAIL="$LIT_XFAIL;critical/lock-nested.c" +export LIT_XFAIL="$LIT_XFAIL;critical/lock.c" +export LIT_XFAIL="$LIT_XFAIL;parallel/parallel-firstprivate.c" +export LIT_XFAIL="$LIT_XFAIL;parallel/parallel-nosuppression.c" +export LIT_XFAIL="$LIT_XFAIL;parallel/parallel-simple.c" +export LIT_XFAIL="$LIT_XFAIL;parallel/parallel-simple2.c" +export LIT_XFAIL="$LIT_XFAIL;races/critical-unrelated.c" +export LIT_XFAIL="$LIT_XFAIL;races/lock-nested-unrelated.c" +export LIT_XFAIL="$LIT_XFAIL;races/lock-unrelated.c" +export LIT_XFAIL="$LIT_XFAIL;races/parallel-simple.c" +export LIT_XFAIL="$LIT_XFAIL;races/task-dependency.c" +export LIT_XFAIL="$LIT_XFAIL;races/task-taskgroup-unrelated.c" +export LIT_XFAIL="$LIT_XFAIL;races/task-taskwait-nested.c" +export LIT_XFAIL="$LIT_XFAIL;races/task-two.c" +export LIT_XFAIL="$LIT_XFAIL;races/taskwait-depend.c" +export LIT_XFAIL="$LIT_XFAIL;reduction/parallel-reduction-nowait.c" +export LIT_XFAIL="$LIT_XFAIL;reduction/parallel-reduction.c" +export LIT_XFAIL="$LIT_XFAIL;task/omp_task_depend_all.c" +export LIT_XFAIL="$LIT_XFAIL;task/task-barrier.c" +export LIT_XFAIL="$LIT_XFAIL;task/task-create.c" +export LIT_XFAIL="$LIT_XFAIL;task/task-dependency.c" +export LIT_XFAIL="$LIT_XFAIL;task/task-taskgroup-nested.c" +export LIT_XFAIL="$LIT_XFAIL;task/task-taskgroup.c" +export LIT_XFAIL="$LIT_XFAIL;task/task-taskwait-nested.c" +export LIT_XFAIL="$LIT_XFAIL;task/task-taskwait.c" +export LIT_XFAIL="$LIT_XFAIL;task/task_early_fulfill.c" +export LIT_XFAIL="$LIT_XFAIL;task/task_late_fulfill.c" +export LIT_XFAIL="$LIT_XFAIL;task/taskwait-depend.c" +export LIT_XFAIL="$LIT_XFAIL;worksharing/ordered.c" +export LIT_XFAIL="$LIT_XFAIL;api/omp_dynamic_shared_memory.c" +export LIT_XFAIL="$LIT_XFAIL;jit/empty_kernel_lvl1.c" +export LIT_XFAIL="$LIT_XFAIL;jit/empty_kernel_lvl2.c" +export LIT_XFAIL="$LIT_XFAIL;jit/type_punning.c" +export LIT_XFAIL="$LIT_XFAIL;offloading/barrier_fence.c" +export LIT_XFAIL="$LIT_XFAIL;offloading/bug49334.cpp" +export LIT_XFAIL="$LIT_XFAIL;offloading/default_thread_limit.c" +export LIT_XFAIL="$LIT_XFAIL;offloading/ompx_bare.c" +export LIT_XFAIL="$LIT_XFAIL;offloading/ompx_coords.c" +export LIT_XFAIL="$LIT_XFAIL;offloading/ompx_saxpy_mixed.c" +export LIT_XFAIL="$LIT_XFAIL;offloading/small_trip_count.c" +export LIT_XFAIL="$LIT_XFAIL;offloading/small_trip_count_thread_limit.cpp" +export LIT_XFAIL="$LIT_XFAIL;offloading/spmdization.c" +export LIT_XFAIL="$LIT_XFAIL;offloading/target_critical_region.cpp" +export LIT_XFAIL="$LIT_XFAIL;offloading/thread_limit.c" +export LIT_XFAIL="$LIT_XFAIL;api/omp_dynamic_shared_memory.c" +export LIT_XFAIL="$LIT_XFAIL;jit/empty_kernel_lvl1.c" +export LIT_XFAIL="$LIT_XFAIL;jit/empty_kernel_lvl2.c" +export LIT_XFAIL="$LIT_XFAIL;jit/type_punning.c" +export LIT_XFAIL="$LIT_XFAIL;offloading/barrier_fence.c" +export LIT_XFAIL="$LIT_XFAIL;offloading/bug49334.cpp" +export LIT_XFAIL="$LIT_XFAIL;offloading/default_thread_limit.c" +export LIT_XFAIL="$LIT_XFAIL;offloading/ompx_bare.c" +export LIT_XFAIL="$LIT_XFAIL;offloading/ompx_coords.c" +export LIT_XFAIL="$LIT_XFAIL;offloading/ompx_saxpy_mixed.c" +export LIT_XFAIL="$LIT_XFAIL;offloading/small_trip_count.c" +export LIT_XFAIL="$LIT_XFAIL;offloading/small_trip_count_thread_limit.cpp" +export LIT_XFAIL="$LIT_XFAIL;offloading/spmdization.c" +export LIT_XFAIL="$LIT_XFAIL;offloading/target_critical_region.cpp" +export LIT_XFAIL="$LIT_XFAIL;offloading/thread_limit.c" +export LIT_XFAIL="$LIT_XFAIL;mapping/auto_zero_copy.cpp" +export LIT_XFAIL="$LIT_XFAIL;mapping/auto_zero_copy_globals.cpp" +export LIT_XFAIL="$LIT_XFAIL;offloading/workshare_chunk.c" +export LIT_XFAIL="$LIT_XFAIL;ompt/target_memcpy.c" +export LIT_XFAIL="$LIT_XFAIL;ompt/target_memcpy_emi.c" +%endif + +%ifarch s390x ppc64le +export LIT_XFAIL="$LIT_XFAIL;offloading/thread_state_1.c" +export LIT_XFAIL="$LIT_XFAIL;offloading/thread_state_2.c" +%endif + +export LIT_FILTER_OUT=$(test_list_to_regex test_list_filter_out) + +%cmake_build --target check-openmp +#endregion Test OPENMP + +%if %{with lldb} +# Don't run LLDB tests on s390x because more than 150 tests are failing there +%ifnarch s390x +## TODO(kkleine): Come back and re-enable testing for LLDB +## #region LLDB unit tests +## reset_test_opts +## %%cmake_build --target check-lldb-unit +## #endregion LLDB unit tests +## +## #region LLDB SB API tests +## reset_test_opts +## %%cmake_build --target check-lldb-api +## #endregion LLDB SB API tests +## +## #region LLDB shell tests +## reset_test_opts +## %%cmake_build --target check-lldb-shell +## #endregion LLDB shell tests +%endif +%endif + + +#region Test LLD +reset_test_opts +%cmake_build --target check-lld +#endregion Test LLD + +%endif + +%if %{with snapshot_build} +# Do this here instead of in install so the check targets are also included. +cp %{_vpath_builddir}/.ninja_log %{buildroot}%{pkg_datadir} +%endif + +#endregion check + +#region misc +%ldconfig_scriptlets -n %{pkg_name-llvm}-libs + +%if %{without compat_build} +%ldconfig_scriptlets -n %{pkg_name_lld}-libs +%endif + +%post -n %{pkg_name_llvm}-devel +%{_sbindir}/update-alternatives --install %{_bindir}/llvm-config%{exec_suffix} llvm-config%{exec_suffix} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} %{__isa_bits} +%if %{without compat_build} +%{_sbindir}/update-alternatives --install %{_bindir}/llvm-config-%{maj_ver} llvm-config-%{maj_ver} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} %{__isa_bits} + +# During the upgrade from LLVM 16 (F38) to LLVM 17 (F39), we found out the +# main llvm-devel package was leaving entries in the alternatives system. +# Try to remove them now. +for v in 14 15 16; do + if [[ -e %{_bindir}/llvm-config-$v + && "x$(%{_bindir}/llvm-config-$v --version | awk -F . '{ print $1 }')" != "x$v" ]]; then + %{_sbindir}/update-alternatives --remove llvm-config-$v %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} + fi +done +%endif + +%postun -n %{pkg_name_llvm}-devel +if [ $1 -eq 0 ]; then + %{_sbindir}/update-alternatives --remove llvm-config%{exec_suffix} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} +fi +%if %{without compat_build} +# When upgrading between minor versions (i.e. from x.y.1 to x.y.2), we must +# not remove the alternative. +# However, during a major version upgrade (i.e. from 16.x.y to 17.z.w), the +# alternative must be removed in order to give priority to a newly installed +# compat package. +if [[ $1 -eq 0 + || "x$(%{_bindir}/llvm-config-%{maj_ver} --version | awk -F . '{ print $1 }')" != "x%{maj_ver}" ]]; then + %{_sbindir}/update-alternatives --remove llvm-config-%{maj_ver} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} +fi +%endif + +%if %{without compat_build} +%post -n %{pkg_name_lld} +%{_sbindir}/update-alternatives --install %{_bindir}/ld ld %{_bindir}/ld.lld 1 + +%postun -n %{pkg_name_lld} +if [ $1 -eq 0 ] ; then + %{_sbindir}/update-alternatives --remove ld %{_bindir}/ld.lld +fi +%endif +#endregion misc + +#region files +#region LLVM lit files +%if %{with python_lit} +%files -n python%{python3_pkgversion}-lit +%license llvm/utils/lit/LICENSE.TXT +%doc llvm/utils/lit/README.rst +%{python3_sitelib}/lit/ +%{python3_sitelib}/lit-*-info/ +%{_bindir}/lit +%endif +#endregion LLVM lit files + +#region LLVM files + +%files -n %{pkg_name_llvm} +%license llvm/LICENSE.TXT +%exclude %{_mandir}/man1/llvm-config* + +%{_mandir}/man1/bugpoint%{exec_suffix}.1.gz +%{_mandir}/man1/clang-tblgen%{exec_suffix}.1.gz +%{_mandir}/man1/dsymutil%{exec_suffix}.1.gz +%{_mandir}/man1/FileCheck%{exec_suffix}.1.gz +%{_mandir}/man1/lit%{exec_suffix}.1.gz +%{_mandir}/man1/llc%{exec_suffix}.1.gz +%{_mandir}/man1/lldb-tblgen%{exec_suffix}.1.gz +%{_mandir}/man1/lli%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-addr2line%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-ar%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-as%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-bcanalyzer%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-cov%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-cxxfilt%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-cxxmap%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-debuginfo-analyzer%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-diff%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-dis%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-dwarfdump%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-dwarfutil%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-exegesis%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-extract%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-ifs%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-install-name-tool%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-lib%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-libtool-darwin%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-link%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-lipo%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-locstats%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-mc%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-mca%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-nm%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-objcopy%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-objdump%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-opt-report%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-otool%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-pdbutil%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-profdata%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-profgen%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-ranlib%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-readelf%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-readobj%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-reduce%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-remarkutil%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-size%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-stress%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-strings%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-strip%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-symbolizer%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-tblgen%{exec_suffix}.1.gz +%{_mandir}/man1/llvm-tli-checker%{exec_suffix}.1.gz +%{_mandir}/man1/mlir-tblgen%{exec_suffix}.1.gz +%{_mandir}/man1/opt%{exec_suffix}.1.gz +%{_mandir}/man1/tblgen%{exec_suffix}.1.gz +%if %{maj_ver} >= 20 +%{_mandir}/man1/llvm-cgdata%{exec_suffix}.1.gz +%endif + +%{install_bindir}/bugpoint +%{install_bindir}/dsymutil +%{install_bindir}/FileCheck +%{install_bindir}/llc +%{install_bindir}/lli +%{install_bindir}/llvm-addr2line +%{install_bindir}/llvm-ar +%{install_bindir}/llvm-as +%{install_bindir}/llvm-bcanalyzer +%{install_bindir}/llvm-bitcode-strip +%{install_bindir}/llvm-c-test +%{install_bindir}/llvm-cat +%{install_bindir}/llvm-cfi-verify +%{install_bindir}/llvm-cov +%{install_bindir}/llvm-cvtres +%{install_bindir}/llvm-cxxdump +%{install_bindir}/llvm-cxxfilt +%{install_bindir}/llvm-cxxmap +%{install_bindir}/llvm-debuginfo-analyzer +%{install_bindir}/llvm-debuginfod +%{install_bindir}/llvm-debuginfod-find +%{install_bindir}/llvm-diff +%{install_bindir}/llvm-dis +%{install_bindir}/llvm-dlltool +%{install_bindir}/llvm-dwarfdump +%{install_bindir}/llvm-dwarfutil +%{install_bindir}/llvm-dwp +%{install_bindir}/llvm-exegesis +%{install_bindir}/llvm-extract +%{install_bindir}/llvm-gsymutil +%{install_bindir}/llvm-ifs +%{install_bindir}/llvm-install-name-tool +%{install_bindir}/llvm-jitlink +%{install_bindir}/llvm-jitlink-executor +%{install_bindir}/llvm-lib +%{install_bindir}/llvm-libtool-darwin +%{install_bindir}/llvm-link +%{install_bindir}/llvm-lipo +%{install_bindir}/llvm-lto +%{install_bindir}/llvm-lto2 +%{install_bindir}/llvm-mc +%{install_bindir}/llvm-mca +%{install_bindir}/llvm-ml +%{install_bindir}/llvm-modextract +%{install_bindir}/llvm-mt +%{install_bindir}/llvm-nm +%{install_bindir}/llvm-objcopy +%{install_bindir}/llvm-objdump +%{install_bindir}/llvm-opt-report +%{install_bindir}/llvm-otool +%{install_bindir}/llvm-pdbutil +%{install_bindir}/llvm-PerfectShuffle +%{install_bindir}/llvm-profdata +%{install_bindir}/llvm-profgen +%{install_bindir}/llvm-ranlib +%{install_bindir}/llvm-rc +%{install_bindir}/llvm-readelf +%{install_bindir}/llvm-readobj +%{install_bindir}/llvm-readtapi +%{install_bindir}/llvm-reduce +%{install_bindir}/llvm-remarkutil +%{install_bindir}/llvm-rtdyld +%{install_bindir}/llvm-sim +%{install_bindir}/llvm-size +%{install_bindir}/llvm-split +%{install_bindir}/llvm-stress +%{install_bindir}/llvm-strings +%{install_bindir}/llvm-strip +%{install_bindir}/llvm-symbolizer +%{install_bindir}/llvm-tblgen +%{install_bindir}/llvm-tli-checker +%{install_bindir}/llvm-undname +%{install_bindir}/llvm-windres +%{install_bindir}/llvm-xray +%{install_bindir}/reduce-chunk-list +%{install_bindir}/obj2yaml +%{install_bindir}/opt +%{install_bindir}/sancov +%{install_bindir}/sanstats +%{install_bindir}/split-file +%{install_bindir}/UnicodeNameMappingGenerator +%{install_bindir}/verify-uselistorder +%{install_bindir}/yaml2obj +%if %{maj_ver} >= 20 +%{install_bindir}/llvm-cgdata +%{install_bindir}/llvm-ctxprof-util +%endif + + +%if %{with compat_build} +# This is for all the binaries with the version suffix. +%{_bindir}/bugpoint%{exec_suffix} +%{_bindir}/dsymutil%{exec_suffix} +%{_bindir}/FileCheck%{exec_suffix} +%{_bindir}/llc%{exec_suffix} +%{_bindir}/lli%{exec_suffix} +%{_bindir}/llvm-addr2line%{exec_suffix} +%{_bindir}/llvm-ar%{exec_suffix} +%{_bindir}/llvm-as%{exec_suffix} +%{_bindir}/llvm-bcanalyzer%{exec_suffix} +%{_bindir}/llvm-bitcode-strip%{exec_suffix} +%{_bindir}/llvm-c-test%{exec_suffix} +%{_bindir}/llvm-cat%{exec_suffix} +%{_bindir}/llvm-cfi-verify%{exec_suffix} +%{_bindir}/llvm-cov%{exec_suffix} +%{_bindir}/llvm-cvtres%{exec_suffix} +%{_bindir}/llvm-cxxdump%{exec_suffix} +%{_bindir}/llvm-cxxfilt%{exec_suffix} +%{_bindir}/llvm-cxxmap%{exec_suffix} +%{_bindir}/llvm-debuginfo-analyzer%{exec_suffix} +%{_bindir}/llvm-debuginfod%{exec_suffix} +%{_bindir}/llvm-debuginfod-find%{exec_suffix} +%{_bindir}/llvm-diff%{exec_suffix} +%{_bindir}/llvm-dis%{exec_suffix} +%{_bindir}/llvm-dlltool%{exec_suffix} +%{_bindir}/llvm-dwarfdump%{exec_suffix} +%{_bindir}/llvm-dwarfutil%{exec_suffix} +%{_bindir}/llvm-dwp%{exec_suffix} +%{_bindir}/llvm-exegesis%{exec_suffix} +%{_bindir}/llvm-extract%{exec_suffix} +%{_bindir}/llvm-gsymutil%{exec_suffix} +%{_bindir}/llvm-ifs%{exec_suffix} +%{_bindir}/llvm-install-name-tool%{exec_suffix} +%{_bindir}/llvm-jitlink%{exec_suffix} +%{_bindir}/llvm-jitlink-executor%{exec_suffix} +%{_bindir}/llvm-lib%{exec_suffix} +%{_bindir}/llvm-libtool-darwin%{exec_suffix} +%{_bindir}/llvm-link%{exec_suffix} +%{_bindir}/llvm-lipo%{exec_suffix} +%{_bindir}/llvm-lto%{exec_suffix} +%{_bindir}/llvm-lto2%{exec_suffix} +%{_bindir}/llvm-mc%{exec_suffix} +%{_bindir}/llvm-mca%{exec_suffix} +%{_bindir}/llvm-ml%{exec_suffix} +%{_bindir}/llvm-modextract%{exec_suffix} +%{_bindir}/llvm-mt%{exec_suffix} +%{_bindir}/llvm-nm%{exec_suffix} +%{_bindir}/llvm-objcopy%{exec_suffix} +%{_bindir}/llvm-objdump%{exec_suffix} +%{_bindir}/llvm-opt-report%{exec_suffix} +%{_bindir}/llvm-otool%{exec_suffix} +%{_bindir}/llvm-pdbutil%{exec_suffix} +%{_bindir}/llvm-PerfectShuffle%{exec_suffix} +%{_bindir}/llvm-profdata%{exec_suffix} +%{_bindir}/llvm-profgen%{exec_suffix} +%{_bindir}/llvm-ranlib%{exec_suffix} +%{_bindir}/llvm-rc%{exec_suffix} +%{_bindir}/llvm-readelf%{exec_suffix} +%{_bindir}/llvm-readobj%{exec_suffix} +%{_bindir}/llvm-readtapi%{exec_suffix} +%{_bindir}/llvm-reduce%{exec_suffix} +%{_bindir}/llvm-remarkutil%{exec_suffix} +%{_bindir}/llvm-rtdyld%{exec_suffix} +%{_bindir}/llvm-sim%{exec_suffix} +%{_bindir}/llvm-size%{exec_suffix} +%{_bindir}/llvm-split%{exec_suffix} +%{_bindir}/llvm-stress%{exec_suffix} +%{_bindir}/llvm-strings%{exec_suffix} +%{_bindir}/llvm-strip%{exec_suffix} +%{_bindir}/llvm-symbolizer%{exec_suffix} +%{_bindir}/llvm-tblgen%{exec_suffix} +%{_bindir}/llvm-tli-checker%{exec_suffix} +%{_bindir}/llvm-undname%{exec_suffix} +%{_bindir}/llvm-windres%{exec_suffix} +%{_bindir}/llvm-xray%{exec_suffix} +%{_bindir}/reduce-chunk-list%{exec_suffix} +%{_bindir}/obj2yaml%{exec_suffix} +%{_bindir}/opt%{exec_suffix} +%{_bindir}/sancov%{exec_suffix} +%{_bindir}/sanstats%{exec_suffix} +%{_bindir}/split-file%{exec_suffix} +%{_bindir}/UnicodeNameMappingGenerator%{exec_suffix} +%{_bindir}/verify-uselistorder%{exec_suffix} +%{_bindir}/yaml2obj%{exec_suffix} +%if %{maj_ver} >= 20 +%{_bindir}/llvm-cgdata%{exec_suffix} +%{_bindir}/llvm-ctxprof-util%{exec_suffix} +%endif + +%endif + +%exclude %{_bindir}/llvm-config%{exec_suffix} +%exclude %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} + +%exclude %{_bindir}/llvm-config-%{maj_ver} +%exclude %{install_bindir}/llvm-config-%{maj_ver}-%{__isa_bits} +%exclude %{install_bindir}/not +%exclude %{install_bindir}/count +%exclude %{install_bindir}/yaml-bench +%exclude %{install_bindir}/lli-child-target +%exclude %{install_bindir}/llvm-isel-fuzzer +%exclude %{install_bindir}/llvm-opt-fuzzer +%{pkg_datadir}/opt-viewer + +%files -n %{pkg_name_llvm}-libs +%license llvm/LICENSE.TXT +%{install_libdir}/libLLVM-%{maj_ver}%{?llvm_snapshot_version_suffix:%{llvm_snapshot_version_suffix}}.so +%if %{with gold} +%{install_libdir}/LLVMgold.so +%if %{without compat_build} +%{_libdir}/bfd-plugins/LLVMgold.so +%endif +%endif +%{install_libdir}/libLLVM.so.%{maj_ver}.%{min_ver}%{?llvm_snapshot_version_suffix:%{llvm_snapshot_version_suffix}} +%{install_libdir}/libLTO.so* +%{install_libdir}/libRemarks.so* +%if %{with compat_build} +%config(noreplace) /etc/ld.so.conf.d/%{name}-%{_arch}.conf +%endif +%if %{with bundle_compat_lib} +%{_libdir}/libLLVM.so.%{compat_maj_ver}* +%endif + +%files -n %{pkg_name_llvm}-devel +%license llvm/LICENSE.TXT + +%if %{without compat_build} +%ghost %{_bindir}/llvm-config +%{install_bindir}/llvm-config-%{__isa_bits} +%else +%{install_bindir}/llvm-config +%endif +%ghost %{_bindir}/llvm-config-%{maj_ver} +%{install_bindir}/llvm-config-%{maj_ver}-%{__isa_bits} + +%{_mandir}/man1/llvm-config* +%{install_includedir}/llvm +%{install_includedir}/llvm-c +%{install_libdir}/libLLVM.so +%{install_libdir}/cmake/llvm + +%files -n %{pkg_name_llvm}-doc +%license llvm/LICENSE.TXT +%doc %{_pkgdocdir}/html + +%files -n %{pkg_name_llvm}-static +%license llvm/LICENSE.TXT +%{install_libdir}/libLLVM*.a +%exclude %{install_libdir}/libLLVMTestingSupport.a +%exclude %{install_libdir}/libLLVMTestingAnnotations.a + +%files -n %{pkg_name_llvm}-cmake-utils +%license llvm/LICENSE.TXT +%{pkg_datadir}/llvm/cmake + +%files -n %{pkg_name_llvm}-test +%license llvm/LICENSE.TXT +%{install_bindir}/not +%{install_bindir}/count +%{install_bindir}/yaml-bench +%{install_bindir}/lli-child-target +%{install_bindir}/llvm-isel-fuzzer +%{install_bindir}/llvm-opt-fuzzer +%if %{with compat_build} +%{_bindir}/not%{exec_suffix} +%{_bindir}/count%{exec_suffix} +%{_bindir}/yaml-bench%{exec_suffix} +%{_bindir}/lli-child-target%{exec_suffix} +%{_bindir}/llvm-isel-fuzzer%{exec_suffix} +%{_bindir}/llvm-opt-fuzzer%{exec_suffix} +%endif + +%files -n %{pkg_name_llvm}-googletest +%license llvm/LICENSE.TXT +%{install_libdir}/libLLVMTestingSupport.a +%{install_libdir}/libLLVMTestingAnnotations.a +%{install_libdir}/libllvm_gtest.a +%{install_libdir}/libllvm_gtest_main.a +%{install_includedir}/llvm-gtest +%{install_includedir}/llvm-gmock + +%if %{with snapshot_build} +%files -n %{pkg_name_llvm}-build-stats +%{pkg_datadir}/.ninja_log +%endif + +#endregion LLVM files + +#region CLANG files + +%files -n %{pkg_name_clang} +%license clang/LICENSE.TXT +%{install_bindir}/clang +%{install_bindir}/clang++ +%{install_bindir}/clang-%{maj_ver} +%{install_bindir}/clang++-%{maj_ver} +%{install_bindir}/clang-cl +%{install_bindir}/clang-cpp +%{_sysconfdir}/%{pkg_name_clang}/%{_target_platform}-clang.cfg +%{_sysconfdir}/%{pkg_name_clang}/%{_target_platform}-clang++.cfg +%{_mandir}/man1/clang-%{maj_ver}.1.gz +%{_mandir}/man1/clang++-%{maj_ver}.1.gz +%if %{without compat_build} +%{_mandir}/man1/clang.1.gz +%{_mandir}/man1/clang++.1.gz +%else +%{_bindir}/clang-%{maj_ver} +%{_bindir}/clang++-%{maj_ver} +%{_bindir}/clang-cl-%{maj_ver} +%{_bindir}/clang-cpp-%{maj_ver} +%endif + +%files -n %{pkg_name_clang}-libs +%license clang/LICENSE.TXT +%{_prefix}/lib/clang/%{maj_ver}/include/* +%{install_libdir}/libclang.so.%{maj_ver}* +%{install_libdir}/libclang-cpp.so.%{maj_ver}* +%if %{with bundle_compat_lib} +%{_libdir}/libclang.so.%{compat_maj_ver}* +%{_libdir}/libclang-cpp.so.%{compat_maj_ver}* +%endif + +%files -n %{pkg_name_clang}-devel +%license clang/LICENSE.TXT +%{install_libdir}/libclang-cpp.so +%{install_libdir}/libclang.so +%{install_includedir}/clang/ +%{install_includedir}/clang-c/ +%{install_libdir}/cmake/clang +%{install_bindir}/clang-tblgen +%if %{with compat_build} +%{_bindir}/clang-tblgen-%{maj_ver} +%endif +%dir %{install_datadir}/clang/ + +%files -n %{pkg_name_clang}-resource-filesystem +%license clang/LICENSE.TXT +%dir %{_prefix}/lib/clang/ +%dir %{_prefix}/lib/clang/%{maj_ver}/ +%dir %{_prefix}/lib/clang/%{maj_ver}/bin/ +%dir %{_prefix}/lib/clang/%{maj_ver}/include/ +%dir %{_prefix}/lib/clang/%{maj_ver}/lib/ +%dir %{_prefix}/lib/clang/%{maj_ver}/share/ +%{_rpmmacrodir}/macros.%{pkg_name_clang} + +%files -n %{pkg_name_clang}-analyzer +%license clang/LICENSE.TXT +%{install_bindir}/scan-view +%{install_bindir}/scan-build +%{install_bindir}/analyze-build +%{install_bindir}/intercept-build +%{install_bindir}/scan-build-py +%if %{with compat_build} +%{_bindir}/scan-view-%{maj_ver} +%{_bindir}/scan-build-%{maj_ver} +%{_bindir}/analyze-build-%{maj_ver} +%{_bindir}/intercept-build-%{maj_ver} +%{_bindir}/scan-build-py-%{maj_ver} +%endif +%{install_libexecdir}/ccc-analyzer +%{install_libexecdir}/c++-analyzer +%{install_libexecdir}/analyze-c++ +%{install_libexecdir}/analyze-cc +%{install_libexecdir}/intercept-c++ +%{install_libexecdir}/intercept-cc +%{install_datadir}/scan-view/ +%{install_datadir}/scan-build/ +%{_mandir}/man1/scan-build%{exec_suffix}.1.* +%if %{without compat_build} +%{python3_sitelib}/libear +%{python3_sitelib}/libscanbuild +%endif + + +%files -n %{pkg_name_clang}-tools-extra +%license clang-tools-extra/LICENSE.TXT +%{install_bindir}/amdgpu-arch +%{install_bindir}/clang-apply-replacements +%{install_bindir}/clang-change-namespace +%{install_bindir}/clang-check +%{install_bindir}/clang-doc +%{install_bindir}/clang-extdef-mapping +%{install_bindir}/clang-format +%{install_bindir}/clang-include-cleaner +%{install_bindir}/clang-include-fixer +%{install_bindir}/clang-installapi +%{install_bindir}/clang-move +%{install_bindir}/clang-offload-bundler +%{install_bindir}/clang-offload-packager +%{install_bindir}/clang-linker-wrapper +%{install_bindir}/clang-nvlink-wrapper +%{install_bindir}/clang-query +%{install_bindir}/clang-refactor +%{install_bindir}/clang-reorder-fields +%{install_bindir}/clang-repl +%{install_bindir}/clang-scan-deps +%{install_bindir}/clang-tidy +%{install_bindir}/clangd +%{install_bindir}/diagtool +%{install_bindir}/hmaptool +%{install_bindir}/nvptx-arch +%{install_bindir}/pp-trace +%{install_bindir}/c-index-test +%{install_bindir}/find-all-symbols +%{install_bindir}/modularize +%{install_bindir}/clang-format-diff +%{install_bindir}/run-clang-tidy +%if %{maj_ver} < 20 +%{install_bindir}/clang-pseudo +%{install_bindir}/clang-rename +%endif +%if %{with compat_build} +%{_bindir}/amdgpu-arch-%{maj_ver} +%{_bindir}/clang-apply-replacements-%{maj_ver} +%{_bindir}/clang-change-namespace-%{maj_ver} +%{_bindir}/clang-check-%{maj_ver} +%{_bindir}/clang-doc-%{maj_ver} +%{_bindir}/clang-extdef-mapping-%{maj_ver} +%{_bindir}/clang-format-%{maj_ver} +%{_bindir}/clang-include-cleaner-%{maj_ver} +%{_bindir}/clang-include-fixer-%{maj_ver} +%{_bindir}/clang-installapi-%{maj_ver} +%{_bindir}/clang-move-%{maj_ver} +%{_bindir}/clang-offload-bundler-%{maj_ver} +%{_bindir}/clang-offload-packager-%{maj_ver} +%{_bindir}/clang-linker-wrapper-%{maj_ver} +%{_bindir}/clang-nvlink-wrapper-%{maj_ver} +%{_bindir}/clang-query-%{maj_ver} +%{_bindir}/clang-refactor-%{maj_ver} +%{_bindir}/clang-reorder-fields-%{maj_ver} +%{_bindir}/clang-repl-%{maj_ver} +%{_bindir}/clang-scan-deps-%{maj_ver} +%{_bindir}/clang-tidy-%{maj_ver} +%{_bindir}/clangd-%{maj_ver} +%{_bindir}/diagtool-%{maj_ver} +%{_bindir}/hmaptool-%{maj_ver} +%{_bindir}/nvptx-arch-%{maj_ver} +%{_bindir}/pp-trace-%{maj_ver} +%{_bindir}/c-index-test-%{maj_ver} +%{_bindir}/find-all-symbols-%{maj_ver} +%{_bindir}/modularize-%{maj_ver} +%{_bindir}/clang-format-diff-%{maj_ver} +%{_bindir}/run-clang-tidy-%{maj_ver} +%if %{maj_ver} < 20 +%{_bindir}/clang-pseudo-%{maj_ver} +%{_bindir}/clang-rename-%{maj_ver} +%endif +%else +%{_emacs_sitestartdir}/clang-format.el +%if %{maj_ver} < 20 +%{_emacs_sitestartdir}/clang-rename.el +%endif +%{_emacs_sitestartdir}/clang-include-fixer.el +%endif +%{_mandir}/man1/diagtool%{exec_suffix}.1.gz +%{_mandir}/man1/extraclangtools%{exec_suffix}.1.gz +%{install_datadir}/clang/clang-format.py* +%{install_datadir}/clang/clang-format-diff.py* +%{install_datadir}/clang/clang-include-fixer.py* +%{install_datadir}/clang/clang-tidy-diff.py* +%{install_datadir}/clang/run-find-all-symbols.py* +%if %{maj_ver} < 20 +%{install_datadir}/clang/clang-rename.py* +%endif + + +%files -n %{pkg_name_clang}-tools-extra-devel +%license clang-tools-extra/LICENSE.TXT +%{install_includedir}/clang-tidy/ + +%files -n git-clang-format%{pkg_suffix} +%license clang/LICENSE.TXT +%{install_bindir}/git-clang-format +%if %{with compat_build} +%{_bindir}/git-clang-format-%{maj_ver} +%endif + +%if %{without compat_build} +%files -n python%{python3_pkgversion}-clang +%license clang/LICENSE.TXT +%{python3_sitelib}/clang/ +%endif + +#endregion CLANG files + +#region COMPILER-RT files + +%files -n %{pkg_name_compiler_rt} +%license compiler-rt/LICENSE.TXT +%ifarch x86_64 aarch64 riscv64 +%{_prefix}/lib/clang/%{maj_ver}/bin/hwasan_symbolize +%endif +%{_prefix}/lib/clang/%{maj_ver}/include/fuzzer +%{_prefix}/lib/clang/%{maj_ver}/include/orc +%{_prefix}/lib/clang/%{maj_ver}/include/profile +%{_prefix}/lib/clang/%{maj_ver}/include/sanitizer +%{_prefix}/lib/clang/%{maj_ver}/include/xray + +%{_prefix}/lib/clang/%{maj_ver}/share/*.txt + +# Files that appear on all targets +%{_prefix}/lib/clang/%{maj_ver}/lib/%{compiler_rt_triple}/libclang_rt.* + +%ifnarch s390x +%{_prefix}/lib/clang/%{maj_ver}/lib/%{compiler_rt_triple}/clang_rt.crtbegin.o +%{_prefix}/lib/clang/%{maj_ver}/lib/%{compiler_rt_triple}/clang_rt.crtend.o +%endif + +%ifnarch %{ix86} s390x +%{_prefix}/lib/clang/%{maj_ver}/lib/%{compiler_rt_triple}/liborc_rt.a +%endif + +# Additional symlink if two triples are in use. +%if "%{llvm_triple}" != "%{compiler_rt_triple}" +%{_prefix}/lib/clang/%{maj_ver}/lib/%{llvm_triple} +%endif + +#endregion COMPILER-RT files + +#region OPENMP files + +%files -n %{pkg_name_libomp} +%license openmp/LICENSE.TXT +%{install_libdir}/libomp.so +%{install_libdir}/libompd.so +%{install_libdir}/libarcher.so +%ifnarch %{ix86} +# libomptarget is not supported on 32-bit systems. +# s390x does not support the offloading plugins. +%{install_libdir}/libomptarget.so.%{so_suffix} +%endif + +%files -n %{pkg_name_libomp}-devel +%license openmp/LICENSE.TXT +%{_prefix}/lib/clang/%{maj_ver}/include/omp.h +%{_prefix}/lib/clang/%{maj_ver}/include/ompx.h +%{_prefix}/lib/clang/%{maj_ver}/include/omp-tools.h +%{_prefix}/lib/clang/%{maj_ver}/include/ompt.h +%{_prefix}/lib/clang/%{maj_ver}/include/ompt-multiplex.h +%{install_libdir}/cmake/openmp/ +%ifnarch %{ix86} +# libomptarget is not supported on 32-bit systems. +# s390x does not support the offloading plugins. +%{install_libdir}/libomptarget.devicertl.a +%{install_libdir}/libomptarget-amdgpu-*.bc +%{install_libdir}/libomptarget-nvptx-*.bc +%{install_libdir}/libomptarget.so +%endif + +#endregion OPENMP files + +#region LLD files + +%files -n %{pkg_name_lld} +%license lld/LICENSE.TXT +%ghost %{_bindir}/ld +%{install_bindir}/lld +%{install_bindir}/lld-link +%{install_bindir}/ld.lld +%{install_bindir}/ld64.lld +%{install_bindir}/wasm-ld +%if %{without compat_build} +%{_mandir}/man1/ld.lld.1* +%else +%{_bindir}/lld%{exec_suffix} +%{_bindir}/lld-link%{exec_suffix} +%{_bindir}/ld.lld%{exec_suffix} +%{_bindir}/ld64.lld%{exec_suffix} +%{_bindir}/wasm-ld%{exec_suffix} +%endif + +%files -n %{pkg_name_lld}-devel +%license lld/LICENSE.TXT +%{install_includedir}/lld +%{install_libdir}/liblldCOFF.so +%{install_libdir}/liblldCommon.so +%{install_libdir}/liblldELF.so +%{install_libdir}/liblldMachO.so +%{install_libdir}/liblldMinGW.so +%{install_libdir}/liblldWasm.so +%{install_libdir}/cmake/lld/ + +%files -n %{pkg_name_lld}-libs +%license lld/LICENSE.TXT +%{install_libdir}/liblldCOFF.so.* +%{install_libdir}/liblldCommon.so.* +%{install_libdir}/liblldELF.so.* +%{install_libdir}/liblldMachO.so.* +%{install_libdir}/liblldMinGW.so.* +%{install_libdir}/liblldWasm.so.* + +#endregion LLD files + +#region Toolset files +%if 0%{?rhel} +%files -n %{pkg_name_llvm}-toolset +%license LICENSE.TXT +%endif +#endregion Toolset files + +#region LLDB files +%if %{with lldb} +%files -n %{pkg_name_lldb} +%license lldb/LICENSE.TXT +%{install_bindir}/lldb* +# Usually, *.so symlinks are kept in devel subpackages. However, the python +# bindings depend on this symlink at runtime. +%{install_libdir}/liblldb*.so +%{install_libdir}/liblldb.so.* +%{install_libdir}/liblldbIntelFeatures.so.* + +%files -n %{pkg_name_lldb}-devel +%{install_includedir}/lldb + +%files -n python%{python3_pkgversion}-lldb +%{python3_sitearch}/lldb +%endif +#endregion LLDB files +#endregion files + +#region changelog +%changelog +* Wed Oct 02 2024 Nikita Popov - 19.1.1-1 +- Update to LLVM 19.1.1 + +* Mon Jul 22 2024 Tulio Magno Quites Machado Filho - 18.1.8-1 +- Update to LLVM 18.1.2 (RHEL-28056) +- Remove llvm17 compat package (RHEL-30890) +- Workaround for GFX11.5 export priority (RHEL-49746) + +* Mon Jul 01 2024 Tulio Magno Quites Machado Filho - 18.1.2-5 +- Add subpackage llvm-toolset (RHEL-45729) + +* Mon Jun 24 2024 Troy Dawson - 18.1.2-4 +- Bump release for June 2024 mass rebuild + +* Fri Jun 07 2024 Zhengyu He - 18.1.2-3 +- Add support for riscv64 + +* Mon Apr 08 2024 Tulio Magno Quites Machado Filho - 18.1.2-2 +- Rebuild LLVM 18.1.2 (RHEL-27724) + +* Wed Mar 27 2024 Tulio Magno Quites Machado Filho - 18.1.2-1 +- Update to LLVM 18.1.2 (RHEL-27724) + +* Thu Feb 01 2024 Nikita Popov - 17.0.6-6 +- Fix crash with -fzero-call-used-regs (rhbz#2262260) + +* Mon Jan 29 2024 Nikita Popov - 17.0.6-5 +- Only use cet-report=error on x86_64 + +* Thu Jan 25 2024 Fedora Release Engineering - 17.0.6-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 17.0.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Nov 30 2023 Tulio Magno Quites Machado Filho - 17.0.6-2 +- Fix rhbz #2248872 + +* Tue Nov 28 2023 Tulio Magno Quites Machado Filho - 17.0.6-1 +- Update to LLVM 17.0.6 + +* Tue Nov 14 2023 Tulio Magno Quites Machado Filho - 17.0.5-1 +- Update to LLVM 17.0.5 + +* Tue Oct 31 2023 Tulio Magno Quites Machado Filho - 17.0.4-1 +- Update to LLVM 17.0.4 + +* Tue Oct 17 2023 Tulio Magno Quites Machado Filho - 17.0.3-1 +- Update to LLVM 17.0.3 + +* Tue Oct 03 2023 Tulio Magno Quites Machado Filho - 17.0.2-1 +- Update to LLVM 17.0.2 + +* Fri Sep 22 2023 Tulio Magno Quites Machado Filho - 17.0.1~rc4-1 +- Update to LLVM 17.0.1 + +* Tue Sep 05 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc4-1 +- Update to LLVM 17.0.0 RC4 + +* Thu Aug 24 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc3-1 +- Update to LLVM 17.0.0 RC3 + +* Thu Aug 24 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc2-2 +- Temporarily disable a failing test on ppc64le + +* Thu Aug 17 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc2-1 +- Update to LLVM 17.0.0 RC2 + +* Wed Aug 16 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc1-4 +- Disable LTO on i686 + +* Mon Aug 14 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc1-3 +- Re-add patch removed by mistake + +* Tue Aug 01 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc1-2 +- Enable LLVM_UNREACHABLE_OPTIMIZE temporarily + +* Mon Jul 31 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc1-1 +- Update to LLVM 17.0.0 RC1 + +* Mon Jul 31 2023 Tulio Magno Quites Machado Filho - 16.0.6-6 +- Fix rhbz #2224885 + +* Thu Jul 20 2023 Fedora Release Engineering - 16.0.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Mon Jul 10 2023 Tulio Magno Quites Machado Filho - 16.0.6-4 +- Use LLVM_UNITTEST_LINK_FLAGS to reduce link times for unit tests + +* Mon Jul 03 2023 Tulio Magno Quites Machado Filho - 16.0.6-3 +- Improve error messages for unsupported relocs on s390x (rhbz#2216906) +- Disable LLVM_UNREACHABLE_OPTIMIZE + +* Wed Jun 14 2023 Tulio Magno Quites Machado Filho - 16.0.6-1 +- Update to LLVM 16.0.6 + +* Fri Jun 09 2023 Nikita Popov - 16.0.5-2 +- Split off llvm-cmake-utils package + +* Mon Jun 05 2023 Tulio Magno Quites Machado Filho - 16.0.5-1 +- Update to LLVM 16.0.5 + +* Fri May 19 2023 Yaakov Selkowitz - 16.0.4-2 +- Avoid recommonmark dependency in RHEL builds + +* Thu May 18 2023 Tulio Magno Quites Machado Filho - 16.0.4-1 +- Update to LLVM 16.0.4 + +* Tue May 09 2023 Tulio Magno Quites Machado Filho - 16.0.3-1 +- Update to LLVM 16.0.3 + +* Tue Apr 25 2023 Tulio Magno Quites Machado Filho - 16.0.2-1 +- Update to LLVM 16.0.2 + +* Tue Apr 11 2023 Tulio Magno Quites Machado Filho - 16.0.1-1 +- Update to LLVM 16.0.1 + +* Thu Mar 23 2023 Tulio Magno Quites Machado Filho - 16.0.0-2 +- Distribute libllvm_gtest.a and libllvm_gtest_main.a with llvm-googletest +- Stop distributing /usr/share/llvm/src/utils + +* Mon Mar 20 2023 Tulio Magno Quites Machado Filho - 16.0.0-1 +- Update to LLVM 16.0.0 + +* Thu Mar 16 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc4-2 +- Fix the ppc64le triple + +* Tue Mar 14 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc4-1 +- Update to LLVM 16.0.0 RC4 + +* Fri Mar 10 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc3-2 +- Fix llvm-exegesis failures on s390x + +* Wed Feb 22 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc3-1 +- Update to LLVM 16.0.0 RC3 + +* Wed Feb 01 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc1-1 +- Update to LLVM 16.0.0 RC1 + +* Thu Jan 19 2023 Tulio Magno Quites Machado Filho - 15.0.7-3 +- Update license to SPDX identifiers. +- Include the Apache license adopted in 2019. + +* Thu Jan 19 2023 Fedora Release Engineering - 15.0.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jan 12 2023 Nikita Popov - 15.0.7-1 +- Update to LLVM 15.0.7 + +* Mon Jan 09 2023 Tom Stellard - 15.0.6-3 +- Omit frame pointers when building + +* Mon Dec 19 2022 Nikita Popov - 15.0.6-2 +- Remove workaround for rbhz#2048440 + +* Mon Dec 05 2022 Nikita Popov - 15.0.6-1 +- Update to LLVM 15.0.6 + +* Fri Nov 11 2022 Nikita Popov - 15.0.4-2 +- Copy CFLAGS to ASMFLAGs to enable CET in asm files + +* Wed Nov 02 2022 Nikita Popov - 15.0.4-1 +- Update to LLVM 15.0.4 + +* Tue Sep 27 2022 Nikita Popov - 15.0.0-2 +- Export GetHostTriple.cmake + +* Tue Sep 06 2022 Nikita Popov - 15.0.0-1 +- Update to LLVM 15.0.0 + +* Thu Jul 21 2022 Fedora Release Engineering - 14.0.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri Jun 17 2022 Timm Bäder - 14.0.5-2 +- Release bump for new redhat-rpm-config + +* Mon Jun 13 2022 Timm Bäder - 14.0.5-1 +- 14.0.5 Release + +* Wed May 18 2022 Tom Stellard - 14.0.3-1 +- 14.0.3 Release + +* Fri Apr 29 2022 Timm Bäder - 14.0.0-2 +- Remove llvm-cmake-devel package + +* Wed Mar 23 2022 Timm Bäder - 14.0.0-1 +- Update to LLVM 14.0.0 + +* Wed Feb 02 2022 Nikita Popov - 13.0.1-1 +- Update to LLVM 13.0.1 final + +* Tue Jan 25 2022 Nikita Popov - 13.0.1~rc3-1 +- Update to LLVM 13.0.1rc3 + +* Thu Jan 20 2022 Fedora Release Engineering - 13.0.1~rc2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Jan 13 2022 Nikita Popov - 13.0.1~rc2-1 +- Update to LLVM 13.0.1rc2 + +* Mon Jan 10 2022 Nikita Popov - 13.0.1~rc1-1 +- Upstream 13.0.1 rc1 release + +* Sat Jan 08 2022 Miro Hrončok - 13.0.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Changes/LIBFFI34 + +* Thu Nov 11 2021 Tom Stellard - 13.0.0-7 +- Enable lto on s390x and arm + +* Mon Oct 25 2021 Tom Stellard - 13.0.0-6 +- Build with Thin LTO + +* Mon Oct 18 2021 Tom Stellard - 13.0.0-5 +- Build with clang + +* Fri Oct 08 2021 Tom Stellard - 13.0.0-4 +- Fix default triple on arm + +* Wed Oct 06 2021 Tom Stellard - 13.0.0-3 +- Set default triple + +* Mon Oct 04 2021 Tom Stellard - 13.0.0-2 +- Drop abi_revision from soname + +* Thu Sep 30 2021 Tom Stellard - 13.0.0-1 +- 13.0.0 Release + +* Thu Sep 30 2021 Tom Stellard - 13.0.0~rc4-2 +- Restore config.guess for host triple detection + +* Fri Sep 24 2021 Tom Stellard - 13.0.0~rc4-1 +- 13.0.0-rc4 Release + +* Fri Sep 17 2021 Tom Stellard - 13.0.0~rc3-1 +- 13.0.0-rc3 Release + +* Mon Sep 13 2021 Tom Stellard - 13.0.0~rc1-3 +- Pass LLVM_DEFAULT_TARGET_TRIPLE to cmake + +* Mon Sep 13 2021 Konrad Kleine - 13.0.0~rc1-2 +- Add --without=check option + +* Wed Aug 04 2021 Tom Stellard - 13.0.0~rc1-1 +- 13.0.0-rc1 Release + +* Thu Jul 22 2021 sguelton@redhat.com - 12.0.1-3 +- Maintain versionned link to llvm-config + +* Thu Jul 22 2021 Fedora Release Engineering - 12.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon Jul 12 2021 Tom Stellard - 12.0.1-1 +- 12.0.1 Release + +* Wed Jun 30 2021 Tom Stellard - llvm-12.0.1~rc3-1 +- 12.0.1-rc3 Release + +* Fri May 28 2021 Tom Stellard - 12.0.1~rc1-2 +- Stop installing lit tests + +* Wed May 26 2021 Tom Stellard - llvm-12.0.1~rc1-1 +- 12.0.1-rc1 Release + +* Mon May 17 2021 sguelton@redhat.com - 12.0.0-7 +- Fix handling of llvm-config + +* Mon May 03 2021 kkleine@redhat.com - 12.0.0-6 +- More verbose builds thanks to python3-psutil + +* Sat May 01 2021 sguelton@redhat.com - 12.0.0-5 +- Fix llvm-config install + +* Tue Apr 27 2021 sguelton@redhat.com - 12.0.0-4 +- Provide default empty value for exec_suffix when not in compat mode + +* Tue Apr 27 2021 sguelton@redhat.com - 12.0.0-3 +- Fix llvm-config install + +* Tue Apr 20 2021 sguelton@redhat.com - 12.0.0-2 +- Backport compat package fix + +* Thu Apr 15 2021 Tom Stellard - 12.0.0-1 +- 12.0.0 Release + +* Thu Apr 08 2021 sguelton@redhat.com - 12.0.0-0.11.rc5 +- New upstream release candidate + +* Tue Apr 06 2021 sguelton@redhat.com - 12.0.0-0.10.rc4 +- Patch test case for compatibility with llvm-test latout + +* Fri Apr 02 2021 sguelton@redhat.com - 12.0.0-0.9.rc4 +- New upstream release candidate + +* Wed Mar 31 2021 Jonathan Wakely - 12.0.0-0.8.rc3 +- Rebuilt for removed libstdc++ symbols (#1937698) + +* Thu Mar 11 2021 sguelton@redhat.com - 12.0.0-0.7.rc3 +- LLVM 12.0.0 rc3 + +* Wed Mar 10 2021 Kalev Lember - 12.0.0-0.6.rc2 +- Add llvm-static(major) provides to the -static subpackage + +* Tue Mar 09 2021 sguelton@redhat.com - 12.0.0-0.5.rc2 +- rebuilt + +* Tue Mar 02 2021 sguelton@redhat.com - 12.0.0-0.4.rc2 +- Change CI working dir + +* Wed Feb 24 2021 sguelton@redhat.com - 12.0.0-0.3.rc2 +- 12.0.0-rc2 release + +* Tue Feb 16 2021 Dave Airlie - 12.0.0-0.2.rc1 +- Enable LLVM_USE_PERF to allow perf integration + +* Tue Feb 2 2021 Serge Guelton - 12.0.0-0.1.rc1 +- 12.0.0-rc1 release + +* Tue Jan 26 2021 Fedora Release Engineering - 11.1.0-0.3.rc2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Jan 22 2021 Serge Guelton - 11.1.0-0.2.rc2 +- 11.1.0-rc2 release + +* Thu Jan 14 2021 Serge Guelton - 11.1.0-0.1.rc1 +- 11.1.0-rc1 release + +* Tue Jan 05 2021 Serge Guelton - 11.0.1-3.rc2 +- Waive extra test case + +* Sun Dec 20 2020 sguelton@redhat.com - 11.0.1-2.rc2 +- 11.0.1-rc2 release + +* Tue Dec 01 2020 sguelton@redhat.com - 11.0.1-1.rc1 +- 11.0.1-rc1 release + +* Sat Oct 31 2020 Jeff Law - 11.0.0-2 +- Fix missing #include for gcc-11 + +* Wed Oct 14 2020 Josh Stone - 11.0.0-1 +- Fix coreos-installer test crash on s390x (rhbz#1883457) + +* Mon Oct 12 2020 sguelton@redhat.com - 11.0.0-0.11 +- llvm 11.0.0 - final release + +* Thu Oct 08 2020 sguelton@redhat.com - 11.0.0-0.10.rc6 +- 11.0.0-rc6 + +* Fri Oct 02 2020 sguelton@redhat.com - 11.0.0-0.9.rc5 +- 11.0.0-rc5 Release + +* Sun Sep 27 2020 sguelton@redhat.com - 11.0.0-0.8.rc3 +- Fix NVR + +* Thu Sep 24 2020 sguelton@redhat.com - 11.0.0-0.2.rc3 +- Obsolete patch for rhbz#1862012 + +* Thu Sep 24 2020 sguelton@redhat.com - 11.0.0-0.1.rc3 +- 11.0.0-rc3 Release + +* Wed Sep 02 2020 sguelton@redhat.com - 11.0.0-0.7.rc2 +- Apply upstream patch for rhbz#1862012 + +* Tue Sep 01 2020 sguelton@redhat.com - 11.0.0-0.6.rc2 +- Fix source location + +* Fri Aug 21 2020 Tom Stellard - 11.0.0-0.5.rc2 +- 11.0.0-rc2 Release + +* Wed Aug 19 2020 Tom Stellard - 11.0.0-0.4.rc1 +- Fix regression-tests CI tests + +* Tue Aug 18 2020 Tom Stellard - 11.0.0-0.3.rc1 +- Fix rust crash on ppc64le compiling firefox +- rhbz#1862012 + +* Tue Aug 11 2020 Tom Stellard - 11.0.0-0.2.rc1 +- Install update_cc_test_checks.py script + +* Thu Aug 06 2020 Tom Stellard - 11.0.0-0.1-rc1 +- LLVM 11.0.0-rc1 Release +- Make llvm-devel require llvm-static and llvm-test + +* Tue Aug 04 2020 Tom Stellard - 10.0.0-10 +- Backport upstream patch to fix build with -flto. +- Disable LTO on s390x to work-around unit test failures. + +* Sat Aug 01 2020 sguelton@redhat.com - 10.0.0-9 +- Fix update-alternative uninstall script + +* Sat Aug 01 2020 sguelton@redhat.com - 10.0.0-8 +- Fix gpg verification and update macro usage. + +* Sat Aug 01 2020 Fedora Release Engineering - 10.0.0-7 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 10.0.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild +* Thu Jun 11 2020 sguelton@redhat.com - 10.0.0-5 +- Make llvm-test.tar.gz creation reproducible. + +* Tue Jun 02 2020 sguelton@redhat.com - 10.0.0-4 +- Instruct cmake not to generate RPATH + +* Thu Apr 30 2020 Tom Stellard - 10.0.0-3 +- Install LLVMgold.so symlink in bfd-plugins directory + +* Tue Apr 07 2020 sguelton@redhat.com - 10.0.0-2 +- Do not package UpdateTestChecks tests in llvm-tests +- Apply upstream patch bab5908df to pass gating tests + +* Wed Mar 25 2020 sguelton@redhat.com - 10.0.0-1 +- 10.0.0 final + +* Mon Mar 23 2020 sguelton@redhat.com - 10.0.0-0.6.rc6 +- 10.0.0 rc6 + +* Thu Mar 19 2020 sguelton@redhat.com - 10.0.0-0.5.rc5 +- 10.0.0 rc5 + +* Sat Mar 14 2020 sguelton@redhat.com - 10.0.0-0.4.rc4 +- 10.0.0 rc4 + +* Thu Mar 05 2020 sguelton@redhat.com - 10.0.0-0.3.rc3 +- 10.0.0 rc3 + +* Fri Feb 28 2020 sguelton@redhat.com - 10.0.0-0.2.rc2 +- Remove *_finite support, see rhbz#1803203 + +* Fri Feb 14 2020 sguelton@redhat.com - 10.0.0-0.1.rc2 +- 10.0.0 rc2 + +* Fri Jan 31 2020 sguelton@redhat.com - 10.0.0-0.1.rc1 +- 10.0.0 rc1 + +* Wed Jan 29 2020 Fedora Release Engineering - 9.0.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Jan 21 2020 Tom Stellard - 9.0.1-4 +- Rebuild after previous build failed to strip binaries + +* Fri Jan 17 2020 Tom Stellard - 9.0.1-3 +- Add explicit Requires from sub-packages to llvm-libs + +* Fri Jan 10 2020 Tom Stellard - 9.0.1-2 +- Fix crash with kernel bpf self-tests + +* Thu Dec 19 2019 tstellar@redhat.com - 9.0.1-1 +- 9.0.1 Release + +* Mon Nov 25 2019 sguelton@redhat.com - 9.0.0-4 +- Activate AVR on all architectures + +* Mon Sep 30 2019 Tom Stellard - 9.0.0-3 +- Build libLLVM.so first to avoid OOM errors + +* Fri Sep 27 2019 Tom Stellard - 9.0.0-2 +- Remove unneeded BuildRequires: libstdc++-static + +* Thu Sep 19 2019 sguelton@redhat.com - 9.0.0-1 +- 9.0.0 Release + +* Wed Sep 18 2019 sguelton@redhat.com - 9.0.0-0.5.rc3 +- Support avr target, see rhbz#1718492 + +* Tue Sep 10 2019 Tom Stellard - 9.0.0-0.4.rc3 +- Split out test executables into their own export file + +* Fri Sep 06 2019 Tom Stellard - 9.0.0-0.3.rc3 +- Fix patch for splitting out static library exports + +* Fri Aug 30 2019 Tom Stellard - 9.0.0-0.2.rc3 +- 9.0.0-rc3 Release + +* Thu Aug 01 2019 Tom Stellard - 9.0.0-0.1.rc2 +- 9.0.0-rc2 Release + +* Tue Jul 30 2019 Tom Stellard - 8.0.0-9 +- Sync with llvm8.0 spec file + +* Thu Jul 25 2019 Fedora Release Engineering - 8.0.0-8.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Jul 17 2019 Tom Stellard - 8.0.0-8 +- Add provides for the major version of sub-packages + +* Fri May 17 2019 sguelton@redhat.com - 8.0.0-7 +- Fix conflicts between llvm-static = 8 and llvm-dev < 8 around LLVMStaticExports.cmake + +* Wed Apr 24 2019 Tom Stellard - 8.0.0-6 +- Make sure we aren't passing -g on s390x + +* Sat Mar 30 2019 Tom Stellard - 8.0.0-5 +- Enable build rpath while keeping install rpath disabled + +* Wed Mar 27 2019 Tom Stellard - 8.0.0-4 +- Backport r351577 from trunk to fix ninja check failures + +* Tue Mar 26 2019 Tom Stellard - 8.0.0-3 +- Fix ninja check + +* Fri Mar 22 2019 Tom Stellard - 8.0.0-2 +- llvm-test fixes + +* Wed Mar 20 2019 sguelton@redhat.com - 8.0.0-1 +- 8.0.0 final + +* Fri Mar 15 2019 sguelton@redhat.com - 8.0.0-0.6.rc4 +- Activate all backends (rhbz#1689031) + +* Tue Mar 12 2019 sguelton@redhat.com - 8.0.0-0.5.rc4 +- 8.0.0 Release candidate 4 + +* Mon Mar 4 2019 sguelton@redhat.com - 8.0.0-0.4.rc3 +- Move some binaries to -test package, cleanup specfile + +* Mon Mar 4 2019 sguelton@redhat.com - 8.0.0-0.3.rc3 +- 8.0.0 Release candidate 3 + +* Fri Feb 22 2019 sguelton@redhat.com - 8.0.0-0.2.rc2 +- 8.0.0 Release candidate 2 + +* Sat Feb 9 2019 sguelton@redhat.com - 8.0.0-0.1.rc1 +- 8.0.0 Release candidate 1 + +* Fri Feb 01 2019 Fedora Release Engineering - 7.0.1-2.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Jan 21 2019 Josh Stone - 7.0.1-2 +- Fix discriminators in metadata, rhbz#1668033 + +* Mon Dec 17 2018 sguelton@redhat.com - 7.0.1-1 +- 7.0.1 release + +* Tue Dec 04 2018 sguelton@redhat.com - 7.0.0-5 +- Ensure rpmlint passes on specfile + +* Sat Nov 17 2018 Tom Stellard - 7.0.0-4 +- Install testing libraries for unittests + +* Sat Oct 27 2018 Tom Stellard - 7.0.0-3 +- Fix running unittests as not-root user + +* Thu Sep 27 2018 Tom Stellard - 7.0.0-2 +- Fixes for llvm-test package: +- Add some missing Requires +- Add --threads option to run-lit-tests script +- Set PATH so lit can find tools like count, not, etc. +- Don't hardcode tools directory to /usr/lib64/llvm +- Fix typo in yaml-bench define +- Only print information about failing tests + +* Fri Sep 21 2018 Tom Stellard - 7.0.0-1 +- 7.0.0 Release + +* Thu Sep 13 2018 Tom Stellard - 7.0.0-0.15.rc3 +- Disable rpath on install LLVM and related sub-projects + +* Wed Sep 12 2018 Tom Stellard - 7.0.0-0.14.rc3 +- Remove rpath from executables and libraries + +* Tue Sep 11 2018 Tom Stellard - 7.0.0-0.13.rc3 +- Re-enable arm and aarch64 targets on x86_64 + +* Mon Sep 10 2018 Tom Stellard - 7.0.0-0.12.rc3 +- 7.0.0-rc3 Release + +* Fri Sep 07 2018 Tom Stellard - 7.0.0-0.11.rc2 +- Use python3 shebang for opt-viewewr scripts + +* Thu Aug 30 2018 Tom Stellard - 7.0.0-0.10.rc2 +- Drop all uses of python2 from lit tests + +* Thu Aug 30 2018 Tom Stellard - 7.0.0-0.9.rc2 +- Build the gold plugin on all supported architectures + +* Wed Aug 29 2018 Kevin Fenzi - 7.0.0-0.8.rc2 +- Re-enable debuginfo to avoid 25x size increase. + +* Tue Aug 28 2018 Tom Stellard - 7.0.0-0.7.rc2 +- 7.0.0-rc2 Release + +* Tue Aug 28 2018 Tom Stellard - 7.0.0-0.6.rc1 +- Guard valgrind usage with valgrind_arches macro + +* Thu Aug 23 2018 Tom Stellard - 7.0.0-0.5.rc1 +- Package lit tests and googletest sources. + +* Mon Aug 20 2018 Tom Stellard - 7.0.0-0.4.rc1 +- Re-enable AMDGPU target on ARM rhbz#1618922 + +* Mon Aug 13 2018 Tom Stellard - 7.0.0-0.3.rc1 +- Drop references to TestPlugin.so from cmake files + +* Fri Aug 10 2018 Tom Stellard - 7.0.0-0.2.rc1 +- Fixes for lit tests + +* Fri Aug 10 2018 Tom Stellard - 7.0.0-0.1.rc1 +- 7.0.0-rc1 Release +- Reduce number of enabled targets on all arches. +- Drop s390 detection patch, LLVM does not support s390 codegen. + +* Mon Aug 06 2018 Tom Stellard - 6.0.1-6 +- Backport some fixes needed by mesa and rust + +* Thu Jul 26 2018 Tom Stellard - 6.0.1-5 +- Move libLLVM-6.0.so to llvm6.0-libs. + +* Mon Jul 23 2018 Tom Stellard - 6.0.1-4 +- Rebuild because debuginfo stripping failed with the previous build + +* Fri Jul 13 2018 Tom Stellard - 6.0.1-3 +- Sync specfile with llvm6.0 package + +* Fri Jul 13 2018 Fedora Release Engineering - 6.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Jun 25 2018 Tom Stellard - 6.0.1-1 +- 6.0.1 Release + +* Thu Jun 07 2018 Tom Stellard - 6.0.1-0.4.rc2 +- 6.0.1-rc2 + +* Wed Jun 06 2018 Tom Stellard - 6.0.1-0.3.rc1 +- Re-enable all targets to avoid breaking the ABI. + +* Mon Jun 04 2018 Tom Stellard - 6.0.1-0.2.rc1 +- Reduce the number of enabled targets based on the architecture + +* Thu May 10 2018 Tom Stellard - 6.0.1-0.1.rc1 +- 6.0.1 rc1 + +* Tue Mar 27 2018 Tom Stellard - 6.0.0-11 +- Re-enable arm tests that used to hang + +* Thu Mar 22 2018 Tom Stellard - 6.0.0-10 +- Fix testcase in backported patch + +* Tue Mar 20 2018 Tom Stellard - 6.0.0-9 +- Prevent external projects from linking against both static and shared + libraries. rhbz#1558657 + +* Mon Mar 19 2018 Tom Stellard - 6.0.0-8 +- Backport r327651 from trunk rhbz#1554349 + +* Fri Mar 16 2018 Tom Stellard - 6.0.0-7 +- Filter out cxxflags and cflags from llvm-config that aren't supported by clang +- rhbz#1556980 + +* Wed Mar 14 2018 Tom Stellard - 6.0.0-6 +- Enable symbol versioning in libLLVM.so + +* Wed Mar 14 2018 Tom Stellard - 6.0.0-5 +- Stop statically linking libstdc++. This is no longer required by Steam + client, but the steam installer still needs a work-around which should + be handled in the steam package. +* Wed Mar 14 2018 Tom Stellard - 6.0.0-4 +- s/make check/ninja check/ + +* Fri Mar 09 2018 Tom Stellard - 6.0.0-3 +- Backport fix for compile time regression on rust rhbz#1552915 + +* Thu Mar 08 2018 Tom Stellard - 6.0.0-2 +- Build with Ninja: This reduces RPM build time on a 6-core x86_64 builder + from 82 min to 52 min. + +* Thu Mar 08 2018 Tom Stellard - 6.0.0-1 +- 6.0.0 Release + +* Thu Mar 08 2018 Tom Stellard - 6.0.0-0.5.rc2 +- Reduce debuginfo size on i686 to avoid OOM errors during linking + +* Fri Feb 09 2018 Tom Stellard - 6.0.0-0.4.rc2 +- 6.0.1 rc2 + +* Fri Feb 09 2018 Igor Gnatenko - 6.0.0-0.3.rc1 +- Escape macros in %%changelog + +* Thu Feb 08 2018 Fedora Release Engineering - 6.0.0-0.2.rc1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Fri Jan 19 2018 Tom Stellard - 6.0.0-0.1.rc1 +- 6.0.1 rc1 + +* Tue Dec 19 2017 Tom Stellard - 5.0.1-1 +- 5.0.1 Release + +* Mon Nov 20 2017 Tom Stellard - 5.0.0-5 +- Backport debuginfo fix for rust + +* Fri Nov 03 2017 Tom Stellard - 5.0.0-4 +- Reduce debuginfo size for ARM + +* Tue Oct 10 2017 Tom Stellard - 5.0.0-2 +- Reduce memory usage on ARM by disabling debuginfo and some non-ARM targets. + +* Mon Sep 25 2017 Tom Stellard - 5.0.0-1 +- 5.0.0 Release + +* Mon Sep 18 2017 Tom Stellard - 4.0.1-6 +- Add Requires: libedit-devel for llvm-devel + +* Fri Sep 08 2017 Tom Stellard - 4.0.1-5 +- Enable libedit backend for LineEditor API + +* Fri Aug 25 2017 Tom Stellard - 4.0.1-4 +- Enable extra functionality when run the LLVM JIT under valgrind. + +* Thu Aug 03 2017 Fedora Release Engineering - 4.0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 4.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed Jun 21 2017 Tom Stellard - 4.0.1-1 +- 4.0.1 Release + +* Thu Jun 15 2017 Tom Stellard - 4.0.0-6 +- Install llvm utils + +* Thu Jun 08 2017 Tom Stellard - 4.0.0-5 +- Fix docs-llvm-man target + +* Mon May 01 2017 Tom Stellard - 4.0.0-4 +- Make cmake files no longer depend on static libs (rhbz 1388200) + +* Tue Apr 18 2017 Josh Stone - 4.0.0-3 +- Fix computeKnownBits for ARMISD::CMOV (rust-lang/llvm#67) + +* Mon Apr 03 2017 Tom Stellard - 4.0.0-2 +- Simplify spec with rpm macros. + +* Thu Mar 23 2017 Tom Stellard - 4.0.0-1 +- LLVM 4.0.0 Final Release + +* Wed Mar 22 2017 tstellar@redhat.com - 3.9.1-6 +- Fix %%postun sep for -devel package. + +* Mon Mar 13 2017 Tom Stellard - 3.9.1-5 +- Disable failing tests on ARM. + +* Sun Mar 12 2017 Peter Robinson 3.9.1-4 +- Fix missing mask on relocation for aarch64 (rhbz 1429050) + +* Wed Mar 01 2017 Dave Airlie - 3.9.1-3 +- revert upstream radeonsi breaking change. + +* Thu Feb 23 2017 Josh Stone - 3.9.1-2 +- disable sphinx warnings-as-errors + +* Fri Feb 10 2017 Orion Poplawski - 3.9.1-1 +- llvm 3.9.1 + +* Fri Feb 10 2017 Fedora Release Engineering - 3.9.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Nov 29 2016 Josh Stone - 3.9.0-7 +- Apply backports from rust-lang/llvm#55, #57 + +* Tue Nov 01 2016 Dave Airlie - 3.9.0-5 +- apply the patch from -4 + +* Wed Oct 26 2016 Dave Airlie - 3.9.0-4 +- add fix for lldb out-of-tree build + +* Mon Oct 17 2016 Josh Stone - 3.9.0-3 +- Apply backports from rust-lang/llvm#47, #48, #53, #54 + +* Sat Oct 15 2016 Josh Stone - 3.9.0-2 +- Apply an InstCombine backport via rust-lang/llvm#51 + +* Wed Sep 07 2016 Dave Airlie - 3.9.0-1 +- llvm 3.9.0 +- upstream moved where cmake files are packaged. +- upstream dropped CppBackend + +* Wed Jul 13 2016 Adam Jackson - 3.8.1-1 +- llvm 3.8.1 +- Add mips target +- Fix some shared library mispackaging + +* Tue Jun 07 2016 Jan Vcelak - 3.8.0-2 +- fix color support detection on terminal + +* Thu Mar 10 2016 Dave Airlie 3.8.0-1 +- llvm 3.8.0 release + +* Wed Mar 09 2016 Dan Horák 3.8.0-0.3 +- install back memory consumption workaround for s390 + +* Thu Mar 03 2016 Dave Airlie 3.8.0-0.2 +- llvm 3.8.0 rc3 release + +* Fri Feb 19 2016 Dave Airlie 3.8.0-0.1 +- llvm 3.8.0 rc2 release + +* Tue Feb 16 2016 Dan Horák 3.7.1-7 +- recognize s390 as SystemZ when configuring build + +* Sat Feb 13 2016 Dave Airlie 3.7.1-6 +- export C++ API for mesa. + +* Sat Feb 13 2016 Dave Airlie 3.7.1-5 +- reintroduce llvm-static, clang needs it currently. + +* Fri Feb 12 2016 Dave Airlie 3.7.1-4 +- jump back to single llvm library, the split libs aren't working very well. + +* Fri Feb 05 2016 Dave Airlie 3.7.1-3 +- add missing obsoletes (#1303497) + +* Thu Feb 04 2016 Fedora Release Engineering - 3.7.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Jan 07 2016 Jan Vcelak 3.7.1-1 +- new upstream release +- enable gold linker + +* Wed Nov 04 2015 Jan Vcelak 3.7.0-100 +- fix Requires for subpackages on the main package + +* Tue Oct 06 2015 Jan Vcelak 3.7.0-100 +- initial version using cmake build system + +#endregion changelog diff --git a/modular/llvm/llvm/0101-Deactivate-markdown-doc.patch b/modular/llvm/llvm/0101-Deactivate-markdown-doc.patch deleted file mode 100644 index a8409aa..0000000 --- a/modular/llvm/llvm/0101-Deactivate-markdown-doc.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/llvm/docs/conf.py b/llvm/docs/conf.py -index cf8a75980b53..b208ad138e89 100644 ---- a/llvm/docs/conf.py -+++ b/llvm/docs/conf.py -@@ -26,7 +26,7 @@ from datetime import date - - # Add any Sphinx extension module names here, as strings. They can be extensions - # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. --extensions = ["myst_parser", "sphinx.ext.intersphinx", "sphinx.ext.todo"] -+extensions = ["sphinx.ext.intersphinx", "sphinx.ext.todo"] - - # Automatic anchors for markdown titles - from llvm_slug import make_slug diff --git a/modular/llvm/llvm/llvm.spec b/modular/llvm/llvm/llvm.spec deleted file mode 100644 index cd0482b..0000000 --- a/modular/llvm/llvm/llvm.spec +++ /dev/null @@ -1,1415 +0,0 @@ -%bcond_with snapshot_build - -%if %{with snapshot_build} -# Unlock LLVM Snapshot LUA functions -%{llvm_sb} -%endif - -# We are building with clang for faster/lower memory LTO builds. -# See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_compiler_macros -%global toolchain clang - -# Opt out of https://fedoraproject.org/wiki/Changes/fno-omit-frame-pointer -# https://bugzilla.redhat.com/show_bug.cgi?id=2158587 -%undefine _include_frame_pointers - -%undefine __cmake_in_source_build - -# Components enabled if supported by target architecture: -%define gold_arches %{ix86} x86_64 aarch64 %{power64} s390x -%ifarch %{gold_arches} - %bcond_without gold -%else - %bcond_with gold -%endif - -%bcond_with compat_build -%bcond_without check - -%ifarch %ix86 riscv64 -# Disable LTO on x86 in order to reduce memory consumption -%bcond_with lto_build -%else -%if %{with snapshot_build} -# Disable LTO to speed up builds -%bcond_with lto_build -%endif -%bcond_without lto_build -%endif - -%global maj_ver 18 -%global min_ver 1 -%global patch_ver 8 -#global rc_ver 4 - -%if %{with snapshot_build} -%undefine rc_ver -%global maj_ver %{llvm_snapshot_version_major} -%global min_ver %{llvm_snapshot_version_minor} -%global patch_ver %{llvm_snapshot_version_patch} -%endif - -%global llvm_srcdir llvm-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:rc%{rc_ver}}.src -%global cmake_srcdir cmake-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:rc%{rc_ver}}.src -%global third_party_srcdir third-party-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:rc%{rc_ver}}.src - -%if %{with compat_build} -%global pkg_name llvm%{maj_ver} -%global exec_suffix -%{maj_ver} -%global install_prefix %{_libdir}/%{name} -%global install_bindir %{install_prefix}/bin -%global install_includedir %{install_prefix}/include -%global install_libdir %{install_prefix}/lib - -%global pkg_includedir %{_includedir}/%{name} -%global pkg_datadir %{install_prefix}/share -%else -%global pkg_name llvm -%global install_prefix /usr -%global install_bindir %{_bindir} -%global install_libdir %{_libdir} -%global install_includedir %{_includedir} -%global pkg_datadir %{_datadir} -%global exec_suffix %{nil} -%endif - -%if 0%{?rhel} -%global targets_to_build "X86;AMDGPU;PowerPC;NVPTX;SystemZ;AArch64;ARM;Mips;BPF;WebAssembly" -%global experimental_targets_to_build "" -%else -%global targets_to_build "all" -%global experimental_targets_to_build "AVR" -%endif - -%global build_install_prefix %{buildroot}%{install_prefix} - -# Lower memory usage of dwz on s390x -%global _dwz_low_mem_die_limit_s390x 1 -%global _dwz_max_die_limit_s390x 1000000 - -%global llvm_triple %{_target_platform} - -# https://fedoraproject.org/wiki/Changes/PythonSafePath#Opting_out -# Don't add -P to Python shebangs -# The executable Python scripts in /usr/share/opt-viewer/ import each other -%undefine _py3_shebang_P - -Name: %{pkg_name} -Version: %{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:~rc%{rc_ver}}%{?llvm_snapshot_version_suffix:~%{llvm_snapshot_version_suffix}} -Release: 2%{?dist} -Summary: The Low Level Virtual Machine - -License: Apache-2.0 WITH LLVM-exception OR NCSA -URL: http://llvm.org -%if %{with snapshot_build} -Source0: %{llvm_snapshot_source_prefix}llvm-%{llvm_snapshot_yyyymmdd}.src.tar.xz -Source2: %{llvm_snapshot_source_prefix}cmake-%{llvm_snapshot_yyyymmdd}.src.tar.xz -Source4: %{llvm_snapshot_source_prefix}third-party-%{llvm_snapshot_yyyymmdd}.src.tar.xz -%{llvm_snapshot_extra_source_tags} -%else -Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:-rc%{rc_ver}}/%{llvm_srcdir}.tar.xz -Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:-rc%{rc_ver}}/%{llvm_srcdir}.tar.xz.sig -Source2: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:-rc%{rc_ver}}/%{cmake_srcdir}.tar.xz -Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:-rc%{rc_ver}}/%{cmake_srcdir}.tar.xz.sig -Source4: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:-rc%{rc_ver}}/%{third_party_srcdir}.tar.xz -Source5: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:-rc%{rc_ver}}/%{third_party_srcdir}.tar.xz.sig -Source6: release-keys.asc -%endif - -# RHEL-specific patch to avoid unwanted python3-myst-parser dep -Patch101: 0101-Deactivate-markdown-doc.patch - -BuildRequires: gcc -BuildRequires: gcc-c++ -BuildRequires: clang -BuildRequires: cmake -BuildRequires: ninja-build -BuildRequires: zlib-devel -BuildRequires: libffi-devel -BuildRequires: ncurses-devel -BuildRequires: python3-psutil -BuildRequires: python3-sphinx -%if %{undefined rhel} -BuildRequires: python3-myst-parser -%endif -BuildRequires: multilib-rpm-config -%if %{with gold} -BuildRequires: binutils-devel -%endif -%ifarch %{valgrind_arches} -# Enable extra functionality when run the LLVM JIT under valgrind. -BuildRequires: valgrind-devel -%endif -# LLVM's LineEditor library will use libedit if it is available. -BuildRequires: libedit-devel -# We need python3-devel for %%py3_shebang_fix -BuildRequires: python3-devel -BuildRequires: python3-setuptools - -# For origin certification -BuildRequires: gnupg2 - - -Requires: %{name}-libs%{?_isa} = %{version}-%{release} - -Provides: llvm(major) = %{maj_ver} - -%description -LLVM is a compiler infrastructure designed for compile-time, link-time, -runtime, and idle-time optimization of programs from arbitrary programming -languages. The compiler infrastructure includes mirror sets of programming -tools as well as libraries with equivalent functionality. - -%package devel -Summary: Libraries and header files for LLVM -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: %{name}-libs%{?_isa} = %{version}-%{release} -# The installed LLVM cmake files will add -ledit to the linker flags for any -# app that requires the libLLVMLineEditor, so we need to make sure -# libedit-devel is available. -Requires: libedit-devel -# The installed cmake files reference binaries from llvm-test, llvm-static, and -# llvm-gtest. We tried in the past to split the cmake exports for these binaries -# out into separate files, so that llvm-devel would not need to Require these packages, -# but this caused bugs (rhbz#1773678) and forced us to carry two non-upstream -# patches. -Requires: %{name}-static%{?_isa} = %{version}-%{release} -Requires: %{name}-test%{?_isa} = %{version}-%{release} -Requires: %{name}-googletest%{?_isa} = %{version}-%{release} - - -Requires(post): /usr/sbin/alternatives -Requires(postun): /usr/sbin/alternatives - -Provides: llvm-devel(major) = %{maj_ver} - -%description devel -This package contains library and header files needed to develop new native -programs that use the LLVM infrastructure. - -%package doc -Summary: Documentation for LLVM -BuildArch: noarch -Requires: %{name} = %{version}-%{release} - -%description doc -Documentation for the LLVM compiler infrastructure. - -%package libs -Summary: LLVM shared libraries -Requires(post): /sbin/ldconfig -Requires(postun): /sbin/ldconfig - -%description libs -Shared libraries for the LLVM compiler infrastructure. - -%package static -Summary: LLVM static libraries -Conflicts: %{name}-devel < 8 - -Provides: llvm-static(major) = %{maj_ver} - -%description static -Static libraries for the LLVM compiler infrastructure. - -%package cmake-utils -Summary: CMake utilities shared across LLVM subprojects - -%description cmake-utils -CMake utilities shared across LLVM subprojects. -This is for internal use by LLVM packages only. - -%package test -Summary: LLVM regression tests -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: %{name}-libs%{?_isa} = %{version}-%{release} - -Provides: llvm-test(major) = %{maj_ver} - -%description test -LLVM regression tests. - -%package googletest -Summary: LLVM's modified googletest sources - -%description googletest -LLVM's modified googletest sources. - -%prep -%{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE1}' --data='%{SOURCE0}' -%{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE3}' --data='%{SOURCE2}' -%{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE5}' --data='%{SOURCE4}' -%setup -T -q -b 2 -n %{cmake_srcdir} -# TODO: It would be more elegant to set -DLLVM_COMMON_CMAKE_UTILS=%{_builddir}/%{cmake_srcdir}, -# but this is not a CACHED variable, so we can't actually set it externally :( -cd .. -mv %{cmake_srcdir} cmake -%setup -T -q -b 4 -n %{third_party_srcdir} -cd .. -mv %{third_party_srcdir} third-party - -%setup -T -q -b 0 -n %{llvm_srcdir} -%autopatch -M%{?!rhel:100}%{?rhel:200} -p2 - -%py3_shebang_fix \ - test/BugPoint/compile-custom.ll.py \ - tools/opt-viewer/*.py \ - utils/update_cc_test_checks.py - -%build - -%if %{without lto_build} -%global _lto_cflags %nil -%endif - -%ifarch s390 s390x %ix86 riscv64 -# Decrease debuginfo verbosity to reduce memory consumption during final library linking -%global optflags %(echo %{optflags} | sed 's/-g /-g1 /') -%endif - -# Copy CFLAGS into ASMFLAGS, so -fcf-protection is used when compiling assembly files. -export ASMFLAGS="%{build_cflags}" - -# force off shared libs as cmake macros turns it on. -# TODO: Disable LLVM_UNREACHABLE_OPTIMIZE. -%cmake -G Ninja \ - -DBUILD_SHARED_LIBS:BOOL=OFF \ - -DLLVM_PARALLEL_LINK_JOBS=1 \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_SKIP_RPATH:BOOL=ON \ -%ifarch s390 %ix86 riscv64 - -DCMAKE_C_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \ - -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \ -%endif -%if %{without compat_build} -%if 0%{?__isa_bits} == 64 - -DLLVM_LIBDIR_SUFFIX=64 \ -%else - -DLLVM_LIBDIR_SUFFIX= \ -%endif -%endif - \ - -DLLVM_TARGETS_TO_BUILD=%{targets_to_build} \ - -DLLVM_ENABLE_LIBCXX:BOOL=OFF \ - -DLLVM_ENABLE_ZLIB:BOOL=ON \ - -DLLVM_ENABLE_FFI:BOOL=ON \ - -DLLVM_ENABLE_RTTI:BOOL=ON \ - -DLLVM_USE_PERF:BOOL=ON \ -%if %{with gold} - -DLLVM_BINUTILS_INCDIR=%{_includedir} \ -%endif - -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=%{experimental_targets_to_build} \ - \ - -DLLVM_BUILD_RUNTIME:BOOL=ON \ - \ - -DLLVM_INCLUDE_TOOLS:BOOL=ON \ - -DLLVM_BUILD_TOOLS:BOOL=ON \ - \ - -DLLVM_INCLUDE_TESTS:BOOL=ON \ - -DLLVM_BUILD_TESTS:BOOL=ON \ - -DLLVM_INSTALL_GTEST:BOOL=ON \ - -DLLVM_LIT_ARGS=-v \ - \ - -DLLVM_INCLUDE_EXAMPLES:BOOL=ON \ - -DLLVM_BUILD_EXAMPLES:BOOL=OFF \ - \ - -DLLVM_INCLUDE_UTILS:BOOL=ON \ - -DLLVM_INSTALL_UTILS:BOOL=ON \ - -DLLVM_UTILS_INSTALL_DIR:PATH=bin \ - -DLLVM_TOOLS_INSTALL_DIR:PATH=bin \ - \ - -DLLVM_INCLUDE_DOCS:BOOL=ON \ - -DLLVM_BUILD_DOCS:BOOL=ON \ - -DLLVM_ENABLE_SPHINX:BOOL=ON \ - -DLLVM_ENABLE_DOXYGEN:BOOL=OFF \ - \ -%if %{with snapshot_build} - -DLLVM_VERSION_SUFFIX="%{llvm_snapshot_version_suffix}" \ -%else - -DLLVM_VERSION_SUFFIX='' \ -%endif - -DLLVM_UNREACHABLE_OPTIMIZE:BOOL=ON \ - -DLLVM_BUILD_LLVM_DYLIB:BOOL=ON \ - -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ - -DLLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL=ON \ - -DLLVM_INSTALL_TOOLCHAIN_ONLY:BOOL=OFF \ - -DLLVM_DEFAULT_TARGET_TRIPLE=%{llvm_triple} \ - -DSPHINX_WARNINGS_AS_ERRORS=OFF \ - -DCMAKE_INSTALL_PREFIX=%{install_prefix} \ - -DLLVM_INSTALL_SPHINX_HTML_DIR=%{_pkgdocdir}/html \ - -DSPHINX_EXECUTABLE=/usr/bin/sphinx-build-3 \ - -DLLVM_INCLUDE_BENCHMARKS=OFF \ -%if %{with lto_build} - -DLLVM_UNITTEST_LINK_FLAGS="-Wl,-plugin-opt=O0" \ -%endif -%ifarch x86_64 - -DCMAKE_SHARED_LINKER_FLAGS="$LDFLAGS -Wl,-z,cet-report=error" -%endif - -# Build libLLVM.so first. This ensures that when libLLVM.so is linking, there -# are no other compile jobs running. This will help reduce OOM errors on the -# builders without having to artificially limit the number of concurrent jobs. -%cmake_build --target LLVM -%cmake_build - -%install -%cmake_install - -mkdir -p %{buildroot}/%{_bindir} - -# Install binaries needed for lit tests -%global test_binaries llvm-isel-fuzzer llvm-opt-fuzzer - -for f in %{test_binaries} -do - install -m 0755 %{_vpath_builddir}/bin/$f %{buildroot}%{install_bindir} -done - -# Remove testing of update utility tools -rm -rf test/tools/UpdateTestChecks - -# Install libraries needed for unittests -%if %{without compat_build} -%global build_libdir %{_vpath_builddir}/%{_lib} -%else -%global build_libdir %{_vpath_builddir}/lib -%endif - -install %{build_libdir}/libLLVMTestingSupport.a %{buildroot}%{install_libdir} -install %{build_libdir}/libLLVMTestingAnnotations.a %{buildroot}%{install_libdir} - -# Fix multi-lib -%multilib_fix_c_header --file %{install_includedir}/llvm/Config/llvm-config.h - -%if %{without compat_build} - -# Fix some man pages -ln -s llvm-config.1 %{buildroot}%{_mandir}/man1/llvm-config%{exec_suffix}-%{__isa_bits}.1 - -%if %{with gold} -# Add symlink to lto plugin in the binutils plugin directory. -%{__mkdir_p} %{buildroot}%{_libdir}/bfd-plugins/ -ln -s -t %{buildroot}%{_libdir}/bfd-plugins/ ../LLVMgold.so -%endif - -%else - -# Add version suffix to binaries -for f in %{buildroot}/%{install_bindir}/*; do - filename=`basename $f` - ln -s ../../%{install_bindir}/$filename %{buildroot}/%{_bindir}/$filename%{exec_suffix} -done - -# Create ld.so.conf.d entry -mkdir -p %{buildroot}/etc/ld.so.conf.d -cat >> %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf << EOF -%{install_libdir} -EOF - -# Add version suffix to man pages and move them to mandir. -mkdir -p %{buildroot}/%{_mandir}/man1 -for f in %{build_install_prefix}/share/man/man1/*; do - filename=`basename $f | cut -f 1 -d '.'` - mv $f %{buildroot}%{_mandir}/man1/$filename%{exec_suffix}.1 -done - -%endif - -# llvm-config special casing. llvm-config is managed by update-alternatives. -# the original file must remain available for compatibility with the CMake -# infrastructure. Without compat, cmake points to the symlink, with compat it -# points to the original file. - -%if %{without compat_build} - -mv %{buildroot}/%{install_bindir}/llvm-config %{buildroot}/%{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} -# We still maintain a versionned symlink for consistency across llvm versions. -# This is specific to the non-compat build and matches the exec prefix for -# compat builds. An isa-agnostic versionned symlink is also maintained in the (un)install -# steps. -(cd %{buildroot}/%{install_bindir} ; ln -s llvm-config%{exec_suffix}-%{__isa_bits} llvm-config-%{maj_ver}-%{__isa_bits} ) -# ghost presence -touch %{buildroot}%{_bindir}/llvm-config-%{maj_ver} - -%else - -rm %{buildroot}%{_bindir}/llvm-config%{exec_suffix} -(cd %{buildroot}/%{install_bindir} ; ln -s llvm-config llvm-config%{exec_suffix}-%{__isa_bits} ) - -%endif - -# ghost presence -touch %{buildroot}%{_bindir}/llvm-config%{exec_suffix} - -mkdir -p %{buildroot}%{pkg_datadir}/llvm/cmake -cp -Rv ../cmake/* %{buildroot}%{pkg_datadir}/llvm/cmake - -%check -# non reproducible errors -rm test/tools/dsymutil/X86/swift-interface.test - -%if %{with check} -# FIXME: use %%cmake_build instead of %%__ninja -LD_LIBRARY_PATH=%{buildroot}/%{install_libdir} %{__ninja} check-all -C %{_vpath_builddir} -%endif - -%if %{with compat_build} -# Packages that install files in /etc/ld.so.conf have to manually run -# ldconfig. -# See https://bugzilla.redhat.com/show_bug.cgi?id=2001328 and -# https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_linker_configuration_files -%post -p /sbin/ldconfig libs -%postun -p /sbin/ldconfig libs -%endif - -%post devel -/usr/sbin/update-alternatives --install %{_bindir}/llvm-config%{exec_suffix} llvm-config%{exec_suffix} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} %{__isa_bits} -%if %{without compat_build} -/usr/sbin/update-alternatives --install %{_bindir}/llvm-config-%{maj_ver} llvm-config-%{maj_ver} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} %{__isa_bits} - -# During the upgrade from LLVM 16 (F38) to LLVM 17 (F39), we found out the -# main llvm-devel package was leaving entries in the alternatives system. -# Try to remove them now. -for v in 14 15 16; do - if [[ -e %{_bindir}/llvm-config-$v - && "x$(%{_bindir}/llvm-config-$v --version | awk -F . '{ print $1 }')" != "x$v" ]]; then - /usr/sbin/update-alternatives --remove llvm-config-$v %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} - fi -done -%endif - - -%postun devel -if [ $1 -eq 0 ]; then - /usr/sbin/update-alternatives --remove llvm-config%{exec_suffix} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} -fi -%if %{without compat_build} -# When upgrading between minor versions (i.e. from x.y.1 to x.y.2), we must -# not remove the alternative. -# However, during a major version upgrade (i.e. from 16.x.y to 17.z.w), the -# alternative must be removed in order to give priority to a newly installed -# compat package. -if [[ $1 -eq 0 - || "x$(%{_bindir}/llvm-config-%{maj_ver} --version | awk -F . '{ print $1 }')" != "x%{maj_ver}" ]]; then - /usr/sbin/update-alternatives --remove llvm-config-%{maj_ver} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} -fi -%endif - -%files -%license LICENSE.TXT -%exclude %{_mandir}/man1/llvm-config* -%{_mandir}/man1/* -%{install_bindir}/* -%if %{with compat_build} -# This is for all the binaries with the version suffix. -%{_bindir}/*%{exec_suffix} -%endif - -%exclude %{_bindir}/llvm-config%{exec_suffix} -%exclude %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} - -%exclude %{_bindir}/llvm-config-%{maj_ver} -%exclude %{install_bindir}/llvm-config-%{maj_ver}-%{__isa_bits} -%exclude %{install_bindir}/not -%exclude %{install_bindir}/count -%exclude %{install_bindir}/yaml-bench -%exclude %{install_bindir}/lli-child-target -%exclude %{install_bindir}/llvm-isel-fuzzer -%exclude %{install_bindir}/llvm-opt-fuzzer -%{pkg_datadir}/opt-viewer - -%files libs -%license LICENSE.TXT -%{install_libdir}/libLLVM-%{maj_ver}%{?llvm_snapshot_version_suffix:%{llvm_snapshot_version_suffix}}.so -%if %{with gold} -%{install_libdir}/LLVMgold.so -%if %{without compat_build} -%{_libdir}/bfd-plugins/LLVMgold.so -%endif -%endif -%{install_libdir}/libLLVM-%{maj_ver}.so -%{install_libdir}/libLLVM.so.%{maj_ver}.%{min_ver} -%{install_libdir}/libLTO.so* -%{install_libdir}/libRemarks.so* -%if %{with compat_build} -%config(noreplace) /etc/ld.so.conf.d/%{name}-%{_arch}.conf -%endif - -%files devel -%license LICENSE.TXT - -%ghost %{_bindir}/llvm-config%{exec_suffix} -%{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} -%{_mandir}/man1/llvm-config* - -%{install_includedir}/llvm -%{install_includedir}/llvm-c -%{install_libdir}/libLLVM.so -%{install_libdir}/cmake/llvm -%{install_bindir}/llvm-config-%{maj_ver}-%{__isa_bits} -%ghost %{_bindir}/llvm-config-%{maj_ver} - -%files doc -%license LICENSE.TXT -%doc %{_pkgdocdir}/html - -%files static -%license LICENSE.TXT -%{install_libdir}/*.a -%exclude %{install_libdir}/libLLVMTestingSupport.a -%exclude %{install_libdir}/libLLVMTestingAnnotations.a -%exclude %{install_libdir}/libllvm_gtest.a -%exclude %{install_libdir}/libllvm_gtest_main.a - -%files cmake-utils -%license LICENSE.TXT -%{pkg_datadir}/llvm/cmake - -%files test -%license LICENSE.TXT -%{install_bindir}/not -%{install_bindir}/count -%{install_bindir}/yaml-bench -%{install_bindir}/lli-child-target -%{install_bindir}/llvm-isel-fuzzer -%{install_bindir}/llvm-opt-fuzzer - -%files googletest -%license LICENSE.TXT -%{install_libdir}/libLLVMTestingSupport.a -%{install_libdir}/libLLVMTestingAnnotations.a -%{install_libdir}/libllvm_gtest.a -%{install_libdir}/libllvm_gtest_main.a -%{install_includedir}/llvm-gtest -%{install_includedir}/llvm-gmock - - -%changelog -* Mon Jul 29 2024 Raven - 18.1.8-1 -- 18.1.8 Release - -* Tue May 14 2024 Tom Stellard - 18.1.3-2 -- Backport fix for rhbz#2275090 - -%{?llvm_snapshot_changelog_entry} -* Thu Apr 25 2024 Tom Stellard - 18.1.4-1 -- 18.1.4 Release - -* Fri Apr 12 2024 Tom Stellard - 18.1.3-1 -- 18.1.3 Release - -* Thu Mar 21 2024 Tom Stellard - 18.1.2-1 -- 18.1.2 Release - -* Mon Mar 11 2024 Tom Stellard - 18.1.1-1 -- 18.1.1 Release - -* Tue Feb 27 2024 Tom Stellard - 18.1.0~rc4-1 -- 18.1.0-rc4 Release - -* Tue Feb 20 2024 Tom Stellard - 18.1.0~rc3-1 -- 18.1.0-rc3 Release - -* Thu Feb 01 2024 Nikita Popov - 17.0.6-6 -- Fix crash with -fzero-call-used-regs (rhbz#2262260) - -* Mon Jan 29 2024 Nikita Popov - 17.0.6-5 -- Only use cet-report=error on x86_64 - -* Thu Jan 25 2024 Fedora Release Engineering - 17.0.6-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sun Jan 21 2024 Fedora Release Engineering - 17.0.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Thu Nov 30 2023 Tulio Magno Quites Machado Filho - 17.0.6-2 -- Fix rhbz #2248872 - -* Tue Nov 28 2023 Tulio Magno Quites Machado Filho - 17.0.6-1 -- Update to LLVM 17.0.6 - -* Tue Nov 14 2023 Tulio Magno Quites Machado Filho - 17.0.5-1 -- Update to LLVM 17.0.5 - -* Tue Oct 31 2023 Tulio Magno Quites Machado Filho - 17.0.4-1 -- Update to LLVM 17.0.4 - -* Tue Oct 17 2023 Tulio Magno Quites Machado Filho - 17.0.3-1 -- Update to LLVM 17.0.3 - -* Tue Oct 03 2023 Tulio Magno Quites Machado Filho - 17.0.2-1 -- Update to LLVM 17.0.2 - -* Fri Sep 22 2023 Tulio Magno Quites Machado Filho - 17.0.1~rc4-1 -- Update to LLVM 17.0.1 - -* Tue Sep 05 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc4-1 -- Update to LLVM 17.0.0 RC4 - -* Thu Aug 24 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc3-1 -- Update to LLVM 17.0.0 RC3 - -* Thu Aug 24 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc2-2 -- Temporarily disable a failing test on ppc64le - -* Thu Aug 17 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc2-1 -- Update to LLVM 17.0.0 RC2 - -* Wed Aug 16 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc1-4 -- Disable LTO on i686 - -* Mon Aug 14 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc1-3 -- Re-add patch removed by mistake - -* Tue Aug 01 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc1-2 -- Enable LLVM_UNREACHABLE_OPTIMIZE temporarily - -* Mon Jul 31 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc1-1 -- Update to LLVM 17.0.0 RC1 - -* Mon Jul 31 2023 Tulio Magno Quites Machado Filho - 16.0.6-6 -- Fix rhbz #2224885 - -* Thu Jul 20 2023 Fedora Release Engineering - 16.0.6-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Mon Jul 10 2023 Tulio Magno Quites Machado Filho - 16.0.6-4 -- Use LLVM_UNITTEST_LINK_FLAGS to reduce link times for unit tests - -* Mon Jul 03 2023 Tulio Magno Quites Machado Filho - 16.0.6-3 -- Improve error messages for unsupported relocs on s390x (rhbz#2216906) -- Disable LLVM_UNREACHABLE_OPTIMIZE - -* Wed Jun 14 2023 Tulio Magno Quites Machado Filho - 16.0.6-1 -- Update to LLVM 16.0.6 - -* Fri Jun 09 2023 Nikita Popov - 16.0.5-2 -- Split off llvm-cmake-utils package - -* Mon Jun 05 2023 Tulio Magno Quites Machado Filho - 16.0.5-1 -- Update to LLVM 16.0.5 - -* Fri May 19 2023 Yaakov Selkowitz - 16.0.4-2 -- Avoid recommonmark dependency in RHEL builds - -* Thu May 18 2023 Tulio Magno Quites Machado Filho - 16.0.4-1 -- Update to LLVM 16.0.4 - -* Tue May 09 2023 Tulio Magno Quites Machado Filho - 16.0.3-1 -- Update to LLVM 16.0.3 - -* Tue Apr 25 2023 Tulio Magno Quites Machado Filho - 16.0.2-1 -- Update to LLVM 16.0.2 - -* Tue Apr 11 2023 Tulio Magno Quites Machado Filho - 16.0.1-1 -- Update to LLVM 16.0.1 - -* Thu Mar 23 2023 Tulio Magno Quites Machado Filho - 16.0.0-2 -- Distribute libllvm_gtest.a and libllvm_gtest_main.a with llvm-googletest -- Stop distributing /usr/share/llvm/src/utils - -* Mon Mar 20 2023 Tulio Magno Quites Machado Filho - 16.0.0-1 -- Update to LLVM 16.0.0 - -* Thu Mar 16 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc4-2 -- Fix the ppc64le triple - -* Tue Mar 14 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc4-1 -- Update to LLVM 16.0.0 RC4 - -* Fri Mar 10 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc3-2 -- Fix llvm-exegesis failures on s390x - -* Wed Feb 22 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc3-1 -- Update to LLVM 16.0.0 RC3 - -* Wed Feb 01 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc1-1 -- Update to LLVM 16.0.0 RC1 - -* Thu Jan 19 2023 Tulio Magno Quites Machado Filho - 15.0.7-3 -- Update license to SPDX identifiers. -- Include the Apache license adopted in 2019. - -* Thu Jan 19 2023 Fedora Release Engineering - 15.0.7-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Thu Jan 12 2023 Nikita Popov - 15.0.7-1 -- Update to LLVM 15.0.7 - -* Mon Jan 09 2023 Tom Stellard - 15.0.6-3 -- Omit frame pointers when building - -* Mon Dec 19 2022 Nikita Popov - 15.0.6-2 -- Remove workaround for rbhz#2048440 - -* Mon Dec 05 2022 Nikita Popov - 15.0.6-1 -- Update to LLVM 15.0.6 - -* Fri Nov 11 2022 Nikita Popov - 15.0.4-2 -- Copy CFLAGS to ASMFLAGs to enable CET in asm files - -* Wed Nov 02 2022 Nikita Popov - 15.0.4-1 -- Update to LLVM 15.0.4 - -* Tue Sep 27 2022 Nikita Popov - 15.0.0-2 -- Export GetHostTriple.cmake - -* Tue Sep 06 2022 Nikita Popov - 15.0.0-1 -- Update to LLVM 15.0.0 - -* Thu Jul 21 2022 Fedora Release Engineering - 14.0.5-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Fri Jun 17 2022 Timm Bäder - 14.0.5-2 -- Release bump for new redhat-rpm-config - -* Mon Jun 13 2022 Timm Bäder - 14.0.5-1 -- 14.0.5 Release - -* Wed May 18 2022 Tom Stellard - 14.0.3-1 -- 14.0.3 Release - -* Fri Apr 29 2022 Timm Bäder - 14.0.0-2 -- Remove llvm-cmake-devel package - -* Wed Mar 23 2022 Timm Bäder - 14.0.0-1 -- Update to LLVM 14.0.0 - -* Wed Feb 02 2022 Nikita Popov - 13.0.1-1 -- Update to LLVM 13.0.1 final - -* Tue Jan 25 2022 Nikita Popov - 13.0.1~rc3-1 -- Update to LLVM 13.0.1rc3 - -* Thu Jan 20 2022 Fedora Release Engineering - 13.0.1~rc2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Thu Jan 13 2022 Nikita Popov - 13.0.1~rc2-1 -- Update to LLVM 13.0.1rc2 - -* Mon Jan 10 2022 Nikita Popov - 13.0.1~rc1-1 -- Upstream 13.0.1 rc1 release - -* Sat Jan 08 2022 Miro Hrončok - 13.0.0-8 -- Rebuilt for https://fedoraproject.org/wiki/Changes/LIBFFI34 - -* Thu Nov 11 2021 Tom Stellard - 13.0.0-7 -- Enable lto on s390x and arm - -* Mon Oct 25 2021 Tom Stellard - 13.0.0-6 -- Build with Thin LTO - -* Mon Oct 18 2021 Tom Stellard - 13.0.0-5 -- Build with clang - -* Fri Oct 08 2021 Tom Stellard - 13.0.0-4 -- Fix default triple on arm - -* Wed Oct 06 2021 Tom Stellard - 13.0.0-3 -- Set default triple - -* Mon Oct 04 2021 Tom Stellard - 13.0.0-2 -- Drop abi_revision from soname - -* Thu Sep 30 2021 Tom Stellard - 13.0.0-1 -- 13.0.0 Release - -* Thu Sep 30 2021 Tom Stellard - 13.0.0~rc4-2 -- Restore config.guess for host triple detection - -* Fri Sep 24 2021 Tom Stellard - 13.0.0~rc4-1 -- 13.0.0-rc4 Release - -* Fri Sep 17 2021 Tom Stellard - 13.0.0~rc3-1 -- 13.0.0-rc3 Release - -* Mon Sep 13 2021 Tom Stellard - 13.0.0~rc1-3 -- Pass LLVM_DEFAULT_TARGET_TRIPLE to cmake - -* Mon Sep 13 2021 Konrad Kleine - 13.0.0~rc1-2 -- Add --without=check option - -* Wed Aug 04 2021 Tom Stellard - 13.0.0~rc1-1 -- 13.0.0-rc1 Release - -* Thu Jul 22 2021 sguelton@redhat.com - 12.0.1-3 -- Maintain versionned link to llvm-config - -* Thu Jul 22 2021 Fedora Release Engineering - 12.0.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Mon Jul 12 2021 Tom Stellard - 12.0.1-1 -- 12.0.1 Release - -* Wed Jun 30 2021 Tom Stellard - llvm-12.0.1~rc3-1 -- 12.0.1-rc3 Release - -* Fri May 28 2021 Tom Stellard - 12.0.1~rc1-2 -- Stop installing lit tests - -* Wed May 26 2021 Tom Stellard - llvm-12.0.1~rc1-1 -- 12.0.1-rc1 Release - -* Mon May 17 2021 sguelton@redhat.com - 12.0.0-7 -- Fix handling of llvm-config - -* Mon May 03 2021 kkleine@redhat.com - 12.0.0-6 -- More verbose builds thanks to python3-psutil - -* Sat May 01 2021 sguelton@redhat.com - 12.0.0-5 -- Fix llvm-config install - -* Tue Apr 27 2021 sguelton@redhat.com - 12.0.0-4 -- Provide default empty value for exec_suffix when not in compat mode - -* Tue Apr 27 2021 sguelton@redhat.com - 12.0.0-3 -- Fix llvm-config install - -* Tue Apr 20 2021 sguelton@redhat.com - 12.0.0-2 -- Backport compat package fix - -* Thu Apr 15 2021 Tom Stellard - 12.0.0-1 -- 12.0.0 Release - -* Thu Apr 08 2021 sguelton@redhat.com - 12.0.0-0.11.rc5 -- New upstream release candidate - -* Tue Apr 06 2021 sguelton@redhat.com - 12.0.0-0.10.rc4 -- Patch test case for compatibility with llvm-test latout - -* Fri Apr 02 2021 sguelton@redhat.com - 12.0.0-0.9.rc4 -- New upstream release candidate - -* Wed Mar 31 2021 Jonathan Wakely - 12.0.0-0.8.rc3 -- Rebuilt for removed libstdc++ symbols (#1937698) - -* Thu Mar 11 2021 sguelton@redhat.com - 12.0.0-0.7.rc3 -- LLVM 12.0.0 rc3 - -* Wed Mar 10 2021 Kalev Lember - 12.0.0-0.6.rc2 -- Add llvm-static(major) provides to the -static subpackage - -* Tue Mar 09 2021 sguelton@redhat.com - 12.0.0-0.5.rc2 -- rebuilt - -* Tue Mar 02 2021 sguelton@redhat.com - 12.0.0-0.4.rc2 -- Change CI working dir - -* Wed Feb 24 2021 sguelton@redhat.com - 12.0.0-0.3.rc2 -- 12.0.0-rc2 release - -* Tue Feb 16 2021 Dave Airlie - 12.0.0-0.2.rc1 -- Enable LLVM_USE_PERF to allow perf integration - -* Tue Feb 2 2021 Serge Guelton - 12.0.0-0.1.rc1 -- 12.0.0-rc1 release - -* Tue Jan 26 2021 Fedora Release Engineering - 11.1.0-0.3.rc2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Fri Jan 22 2021 Serge Guelton - 11.1.0-0.2.rc2 -- 11.1.0-rc2 release - -* Thu Jan 14 2021 Serge Guelton - 11.1.0-0.1.rc1 -- 11.1.0-rc1 release - -* Tue Jan 05 2021 Serge Guelton - 11.0.1-3.rc2 -- Waive extra test case - -* Sun Dec 20 2020 sguelton@redhat.com - 11.0.1-2.rc2 -- 11.0.1-rc2 release - -* Tue Dec 01 2020 sguelton@redhat.com - 11.0.1-1.rc1 -- 11.0.1-rc1 release - -* Sat Oct 31 2020 Jeff Law - 11.0.0-2 -- Fix missing #include for gcc-11 - -* Wed Oct 14 2020 Josh Stone - 11.0.0-1 -- Fix coreos-installer test crash on s390x (rhbz#1883457) - -* Mon Oct 12 2020 sguelton@redhat.com - 11.0.0-0.11 -- llvm 11.0.0 - final release - -* Thu Oct 08 2020 sguelton@redhat.com - 11.0.0-0.10.rc6 -- 11.0.0-rc6 - -* Fri Oct 02 2020 sguelton@redhat.com - 11.0.0-0.9.rc5 -- 11.0.0-rc5 Release - -* Sun Sep 27 2020 sguelton@redhat.com - 11.0.0-0.8.rc3 -- Fix NVR - -* Thu Sep 24 2020 sguelton@redhat.com - 11.0.0-0.2.rc3 -- Obsolete patch for rhbz#1862012 - -* Thu Sep 24 2020 sguelton@redhat.com - 11.0.0-0.1.rc3 -- 11.0.0-rc3 Release - -* Wed Sep 02 2020 sguelton@redhat.com - 11.0.0-0.7.rc2 -- Apply upstream patch for rhbz#1862012 - -* Tue Sep 01 2020 sguelton@redhat.com - 11.0.0-0.6.rc2 -- Fix source location - -* Fri Aug 21 2020 Tom Stellard - 11.0.0-0.5.rc2 -- 11.0.0-rc2 Release - -* Wed Aug 19 2020 Tom Stellard - 11.0.0-0.4.rc1 -- Fix regression-tests CI tests - -* Tue Aug 18 2020 Tom Stellard - 11.0.0-0.3.rc1 -- Fix rust crash on ppc64le compiling firefox -- rhbz#1862012 - -* Tue Aug 11 2020 Tom Stellard - 11.0.0-0.2.rc1 -- Install update_cc_test_checks.py script - -* Thu Aug 06 2020 Tom Stellard - 11.0.0-0.1-rc1 -- LLVM 11.0.0-rc1 Release -- Make llvm-devel require llvm-static and llvm-test - -* Tue Aug 04 2020 Tom Stellard - 10.0.0-10 -- Backport upstream patch to fix build with -flto. -- Disable LTO on s390x to work-around unit test failures. - -* Sat Aug 01 2020 sguelton@redhat.com - 10.0.0-9 -- Fix update-alternative uninstall script - -* Sat Aug 01 2020 sguelton@redhat.com - 10.0.0-8 -- Fix gpg verification and update macro usage. - -* Sat Aug 01 2020 Fedora Release Engineering - 10.0.0-7 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue Jul 28 2020 Fedora Release Engineering - 10.0.0-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild -* Thu Jun 11 2020 sguelton@redhat.com - 10.0.0-5 -- Make llvm-test.tar.gz creation reproducible. - -* Tue Jun 02 2020 sguelton@redhat.com - 10.0.0-4 -- Instruct cmake not to generate RPATH - -* Thu Apr 30 2020 Tom Stellard - 10.0.0-3 -- Install LLVMgold.so symlink in bfd-plugins directory - -* Tue Apr 07 2020 sguelton@redhat.com - 10.0.0-2 -- Do not package UpdateTestChecks tests in llvm-tests -- Apply upstream patch bab5908df to pass gating tests - -* Wed Mar 25 2020 sguelton@redhat.com - 10.0.0-1 -- 10.0.0 final - -* Mon Mar 23 2020 sguelton@redhat.com - 10.0.0-0.6.rc6 -- 10.0.0 rc6 - -* Thu Mar 19 2020 sguelton@redhat.com - 10.0.0-0.5.rc5 -- 10.0.0 rc5 - -* Sat Mar 14 2020 sguelton@redhat.com - 10.0.0-0.4.rc4 -- 10.0.0 rc4 - -* Thu Mar 05 2020 sguelton@redhat.com - 10.0.0-0.3.rc3 -- 10.0.0 rc3 - -* Fri Feb 28 2020 sguelton@redhat.com - 10.0.0-0.2.rc2 -- Remove *_finite support, see rhbz#1803203 - -* Fri Feb 14 2020 sguelton@redhat.com - 10.0.0-0.1.rc2 -- 10.0.0 rc2 - -* Fri Jan 31 2020 sguelton@redhat.com - 10.0.0-0.1.rc1 -- 10.0.0 rc1 - -* Wed Jan 29 2020 Fedora Release Engineering - 9.0.1-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Tue Jan 21 2020 Tom Stellard - 9.0.1-4 -- Rebuild after previous build failed to strip binaries - -* Fri Jan 17 2020 Tom Stellard - 9.0.1-3 -- Add explicit Requires from sub-packages to llvm-libs - -* Fri Jan 10 2020 Tom Stellard - 9.0.1-2 -- Fix crash with kernel bpf self-tests - -* Thu Dec 19 2019 tstellar@redhat.com - 9.0.1-1 -- 9.0.1 Release - -* Mon Nov 25 2019 sguelton@redhat.com - 9.0.0-4 -- Activate AVR on all architectures - -* Mon Sep 30 2019 Tom Stellard - 9.0.0-3 -- Build libLLVM.so first to avoid OOM errors - -* Fri Sep 27 2019 Tom Stellard - 9.0.0-2 -- Remove unneeded BuildRequires: libstdc++-static - -* Thu Sep 19 2019 sguelton@redhat.com - 9.0.0-1 -- 9.0.0 Release - -* Wed Sep 18 2019 sguelton@redhat.com - 9.0.0-0.5.rc3 -- Support avr target, see rhbz#1718492 - -* Tue Sep 10 2019 Tom Stellard - 9.0.0-0.4.rc3 -- Split out test executables into their own export file - -* Fri Sep 06 2019 Tom Stellard - 9.0.0-0.3.rc3 -- Fix patch for splitting out static library exports - -* Fri Aug 30 2019 Tom Stellard - 9.0.0-0.2.rc3 -- 9.0.0-rc3 Release - -* Thu Aug 01 2019 Tom Stellard - 9.0.0-0.1.rc2 -- 9.0.0-rc2 Release - -* Tue Jul 30 2019 Tom Stellard - 8.0.0-9 -- Sync with llvm8.0 spec file - -* Thu Jul 25 2019 Fedora Release Engineering - 8.0.0-8.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Wed Jul 17 2019 Tom Stellard - 8.0.0-8 -- Add provides for the major version of sub-packages - -* Fri May 17 2019 sguelton@redhat.com - 8.0.0-7 -- Fix conflicts between llvm-static = 8 and llvm-dev < 8 around LLVMStaticExports.cmake - -* Wed Apr 24 2019 Tom Stellard - 8.0.0-6 -- Make sure we aren't passing -g on s390x - -* Sat Mar 30 2019 Tom Stellard - 8.0.0-5 -- Enable build rpath while keeping install rpath disabled - -* Wed Mar 27 2019 Tom Stellard - 8.0.0-4 -- Backport r351577 from trunk to fix ninja check failures - -* Tue Mar 26 2019 Tom Stellard - 8.0.0-3 -- Fix ninja check - -* Fri Mar 22 2019 Tom Stellard - 8.0.0-2 -- llvm-test fixes - -* Wed Mar 20 2019 sguelton@redhat.com - 8.0.0-1 -- 8.0.0 final - -* Fri Mar 15 2019 sguelton@redhat.com - 8.0.0-0.6.rc4 -- Activate all backends (rhbz#1689031) - -* Tue Mar 12 2019 sguelton@redhat.com - 8.0.0-0.5.rc4 -- 8.0.0 Release candidate 4 - -* Mon Mar 4 2019 sguelton@redhat.com - 8.0.0-0.4.rc3 -- Move some binaries to -test package, cleanup specfile - -* Mon Mar 4 2019 sguelton@redhat.com - 8.0.0-0.3.rc3 -- 8.0.0 Release candidate 3 - -* Fri Feb 22 2019 sguelton@redhat.com - 8.0.0-0.2.rc2 -- 8.0.0 Release candidate 2 - -* Sat Feb 9 2019 sguelton@redhat.com - 8.0.0-0.1.rc1 -- 8.0.0 Release candidate 1 - -* Fri Feb 01 2019 Fedora Release Engineering - 7.0.1-2.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Mon Jan 21 2019 Josh Stone - 7.0.1-2 -- Fix discriminators in metadata, rhbz#1668033 - -* Mon Dec 17 2018 sguelton@redhat.com - 7.0.1-1 -- 7.0.1 release - -* Tue Dec 04 2018 sguelton@redhat.com - 7.0.0-5 -- Ensure rpmlint passes on specfile - -* Sat Nov 17 2018 Tom Stellard - 7.0.0-4 -- Install testing libraries for unittests - -* Sat Oct 27 2018 Tom Stellard - 7.0.0-3 -- Fix running unittests as not-root user - -* Thu Sep 27 2018 Tom Stellard - 7.0.0-2 -- Fixes for llvm-test package: -- Add some missing Requires -- Add --threads option to run-lit-tests script -- Set PATH so lit can find tools like count, not, etc. -- Don't hardcode tools directory to /usr/lib64/llvm -- Fix typo in yaml-bench define -- Only print information about failing tests - -* Fri Sep 21 2018 Tom Stellard - 7.0.0-1 -- 7.0.0 Release - -* Thu Sep 13 2018 Tom Stellard - 7.0.0-0.15.rc3 -- Disable rpath on install LLVM and related sub-projects - -* Wed Sep 12 2018 Tom Stellard - 7.0.0-0.14.rc3 -- Remove rpath from executables and libraries - -* Tue Sep 11 2018 Tom Stellard - 7.0.0-0.13.rc3 -- Re-enable arm and aarch64 targets on x86_64 - -* Mon Sep 10 2018 Tom Stellard - 7.0.0-0.12.rc3 -- 7.0.0-rc3 Release - -* Fri Sep 07 2018 Tom Stellard - 7.0.0-0.11.rc2 -- Use python3 shebang for opt-viewewr scripts - -* Thu Aug 30 2018 Tom Stellard - 7.0.0-0.10.rc2 -- Drop all uses of python2 from lit tests - -* Thu Aug 30 2018 Tom Stellard - 7.0.0-0.9.rc2 -- Build the gold plugin on all supported architectures - -* Wed Aug 29 2018 Kevin Fenzi - 7.0.0-0.8.rc2 -- Re-enable debuginfo to avoid 25x size increase. - -* Tue Aug 28 2018 Tom Stellard - 7.0.0-0.7.rc2 -- 7.0.0-rc2 Release - -* Tue Aug 28 2018 Tom Stellard - 7.0.0-0.6.rc1 -- Guard valgrind usage with valgrind_arches macro - -* Thu Aug 23 2018 Tom Stellard - 7.0.0-0.5.rc1 -- Package lit tests and googletest sources. - -* Mon Aug 20 2018 Tom Stellard - 7.0.0-0.4.rc1 -- Re-enable AMDGPU target on ARM rhbz#1618922 - -* Mon Aug 13 2018 Tom Stellard - 7.0.0-0.3.rc1 -- Drop references to TestPlugin.so from cmake files - -* Fri Aug 10 2018 Tom Stellard - 7.0.0-0.2.rc1 -- Fixes for lit tests - -* Fri Aug 10 2018 Tom Stellard - 7.0.0-0.1.rc1 -- 7.0.0-rc1 Release -- Reduce number of enabled targets on all arches. -- Drop s390 detection patch, LLVM does not support s390 codegen. - -* Mon Aug 06 2018 Tom Stellard - 6.0.1-6 -- Backport some fixes needed by mesa and rust - -* Thu Jul 26 2018 Tom Stellard - 6.0.1-5 -- Move libLLVM-6.0.so to llvm6.0-libs. - -* Mon Jul 23 2018 Tom Stellard - 6.0.1-4 -- Rebuild because debuginfo stripping failed with the previous build - -* Fri Jul 13 2018 Tom Stellard - 6.0.1-3 -- Sync specfile with llvm6.0 package - -* Fri Jul 13 2018 Fedora Release Engineering - 6.0.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Mon Jun 25 2018 Tom Stellard - 6.0.1-1 -- 6.0.1 Release - -* Thu Jun 07 2018 Tom Stellard - 6.0.1-0.4.rc2 -- 6.0.1-rc2 - -* Wed Jun 06 2018 Tom Stellard - 6.0.1-0.3.rc1 -- Re-enable all targets to avoid breaking the ABI. - -* Mon Jun 04 2018 Tom Stellard - 6.0.1-0.2.rc1 -- Reduce the number of enabled targets based on the architecture - -* Thu May 10 2018 Tom Stellard - 6.0.1-0.1.rc1 -- 6.0.1 rc1 - -* Tue Mar 27 2018 Tom Stellard - 6.0.0-11 -- Re-enable arm tests that used to hang - -* Thu Mar 22 2018 Tom Stellard - 6.0.0-10 -- Fix testcase in backported patch - -* Tue Mar 20 2018 Tom Stellard - 6.0.0-9 -- Prevent external projects from linking against both static and shared - libraries. rhbz#1558657 - -* Mon Mar 19 2018 Tom Stellard - 6.0.0-8 -- Backport r327651 from trunk rhbz#1554349 - -* Fri Mar 16 2018 Tom Stellard - 6.0.0-7 -- Filter out cxxflags and cflags from llvm-config that aren't supported by clang -- rhbz#1556980 - -* Wed Mar 14 2018 Tom Stellard - 6.0.0-6 -- Enable symbol versioning in libLLVM.so - -* Wed Mar 14 2018 Tom Stellard - 6.0.0-5 -- Stop statically linking libstdc++. This is no longer required by Steam - client, but the steam installer still needs a work-around which should - be handled in the steam package. -* Wed Mar 14 2018 Tom Stellard - 6.0.0-4 -- s/make check/ninja check/ - -* Fri Mar 09 2018 Tom Stellard - 6.0.0-3 -- Backport fix for compile time regression on rust rhbz#1552915 - -* Thu Mar 08 2018 Tom Stellard - 6.0.0-2 -- Build with Ninja: This reduces RPM build time on a 6-core x86_64 builder - from 82 min to 52 min. - -* Thu Mar 08 2018 Tom Stellard - 6.0.0-1 -- 6.0.0 Release - -* Thu Mar 08 2018 Tom Stellard - 6.0.0-0.5.rc2 -- Reduce debuginfo size on i686 to avoid OOM errors during linking - -* Fri Feb 09 2018 Tom Stellard - 6.0.0-0.4.rc2 -- 6.0.1 rc2 - -* Fri Feb 09 2018 Igor Gnatenko - 6.0.0-0.3.rc1 -- Escape macros in %%changelog - -* Thu Feb 08 2018 Fedora Release Engineering - 6.0.0-0.2.rc1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Fri Jan 19 2018 Tom Stellard - 6.0.0-0.1.rc1 -- 6.0.1 rc1 - -* Tue Dec 19 2017 Tom Stellard - 5.0.1-1 -- 5.0.1 Release - -* Mon Nov 20 2017 Tom Stellard - 5.0.0-5 -- Backport debuginfo fix for rust - -* Fri Nov 03 2017 Tom Stellard - 5.0.0-4 -- Reduce debuginfo size for ARM - -* Tue Oct 10 2017 Tom Stellard - 5.0.0-2 -- Reduce memory usage on ARM by disabling debuginfo and some non-ARM targets. - -* Mon Sep 25 2017 Tom Stellard - 5.0.0-1 -- 5.0.0 Release - -* Mon Sep 18 2017 Tom Stellard - 4.0.1-6 -- Add Requires: libedit-devel for llvm-devel - -* Fri Sep 08 2017 Tom Stellard - 4.0.1-5 -- Enable libedit backend for LineEditor API - -* Fri Aug 25 2017 Tom Stellard - 4.0.1-4 -- Enable extra functionality when run the LLVM JIT under valgrind. - -* Thu Aug 03 2017 Fedora Release Engineering - 4.0.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 4.0.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Wed Jun 21 2017 Tom Stellard - 4.0.1-1 -- 4.0.1 Release - -* Thu Jun 15 2017 Tom Stellard - 4.0.0-6 -- Install llvm utils - -* Thu Jun 08 2017 Tom Stellard - 4.0.0-5 -- Fix docs-llvm-man target - -* Mon May 01 2017 Tom Stellard - 4.0.0-4 -- Make cmake files no longer depend on static libs (rhbz 1388200) - -* Tue Apr 18 2017 Josh Stone - 4.0.0-3 -- Fix computeKnownBits for ARMISD::CMOV (rust-lang/llvm#67) - -* Mon Apr 03 2017 Tom Stellard - 4.0.0-2 -- Simplify spec with rpm macros. - -* Thu Mar 23 2017 Tom Stellard - 4.0.0-1 -- LLVM 4.0.0 Final Release - -* Wed Mar 22 2017 tstellar@redhat.com - 3.9.1-6 -- Fix %%postun sep for -devel package. - -* Mon Mar 13 2017 Tom Stellard - 3.9.1-5 -- Disable failing tests on ARM. - -* Sun Mar 12 2017 Peter Robinson 3.9.1-4 -- Fix missing mask on relocation for aarch64 (rhbz 1429050) - -* Wed Mar 01 2017 Dave Airlie - 3.9.1-3 -- revert upstream radeonsi breaking change. - -* Thu Feb 23 2017 Josh Stone - 3.9.1-2 -- disable sphinx warnings-as-errors - -* Fri Feb 10 2017 Orion Poplawski - 3.9.1-1 -- llvm 3.9.1 - -* Fri Feb 10 2017 Fedora Release Engineering - 3.9.0-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Tue Nov 29 2016 Josh Stone - 3.9.0-7 -- Apply backports from rust-lang/llvm#55, #57 - -* Tue Nov 01 2016 Dave Airlie - 3.9.0-5 -- apply the patch from -4 - -* Wed Oct 26 2016 Dave Airlie - 3.9.0-4 -- add fix for lldb out-of-tree build - -* Mon Oct 17 2016 Josh Stone - 3.9.0-3 -- Apply backports from rust-lang/llvm#47, #48, #53, #54 - -* Sat Oct 15 2016 Josh Stone - 3.9.0-2 -- Apply an InstCombine backport via rust-lang/llvm#51 - -* Wed Sep 07 2016 Dave Airlie - 3.9.0-1 -- llvm 3.9.0 -- upstream moved where cmake files are packaged. -- upstream dropped CppBackend - -* Wed Jul 13 2016 Adam Jackson - 3.8.1-1 -- llvm 3.8.1 -- Add mips target -- Fix some shared library mispackaging - -* Tue Jun 07 2016 Jan Vcelak - 3.8.0-2 -- fix color support detection on terminal - -* Thu Mar 10 2016 Dave Airlie 3.8.0-1 -- llvm 3.8.0 release - -* Wed Mar 09 2016 Dan Horák 3.8.0-0.3 -- install back memory consumption workaround for s390 - -* Thu Mar 03 2016 Dave Airlie 3.8.0-0.2 -- llvm 3.8.0 rc3 release - -* Fri Feb 19 2016 Dave Airlie 3.8.0-0.1 -- llvm 3.8.0 rc2 release - -* Tue Feb 16 2016 Dan Horák 3.7.1-7 -- recognize s390 as SystemZ when configuring build - -* Sat Feb 13 2016 Dave Airlie 3.7.1-6 -- export C++ API for mesa. - -* Sat Feb 13 2016 Dave Airlie 3.7.1-5 -- reintroduce llvm-static, clang needs it currently. - -* Fri Feb 12 2016 Dave Airlie 3.7.1-4 -- jump back to single llvm library, the split libs aren't working very well. - -* Fri Feb 05 2016 Dave Airlie 3.7.1-3 -- add missing obsoletes (#1303497) - -* Thu Feb 04 2016 Fedora Release Engineering - 3.7.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Thu Jan 07 2016 Jan Vcelak 3.7.1-1 -- new upstream release -- enable gold linker - -* Wed Nov 04 2015 Jan Vcelak 3.7.0-100 -- fix Requires for subpackages on the main package - -* Tue Oct 06 2015 Jan Vcelak 3.7.0-100 -- initial version using cmake build system diff --git a/modular/llvm/clang/macros.clang b/modular/llvm/macros.clang similarity index 100% rename from modular/llvm/clang/macros.clang rename to modular/llvm/macros.clang diff --git a/modular/llvm/python-lit/python-lit.spec b/modular/llvm/python-lit/python-lit.spec deleted file mode 100644 index 84fc7b0..0000000 --- a/modular/llvm/python-lit/python-lit.spec +++ /dev/null @@ -1,381 +0,0 @@ -%bcond_with snapshot_build - -%if %{with snapshot_build} -# Unlock LLVM Snapshot LUA functions -%{llvm_sb_verbose} -%{llvm_sb} -%endif - -%global lit_version 18.1.8 -#global rc_ver 4 -#global post_ver 0 - -%global python_lit_srcdir %{srcname}-%{version}%{?rc_ver:rc%{rc_ver}}%{?post_ver:.post%{post_ver}} - -%if %{with snapshot_build} -%undefine rc_ver -%global lit_version %{llvm_snapshot_version} -%global python_lit_srcdir llvm-%{lit_version}.src/utils/lit -%endif - -%bcond_without check - -%global __python3 /usr/bin/python3 - -Name: python-lit -Version: %{lit_version}%{?rc_ver:~rc%{rc_ver}}%{?llvm_snapshot_version_suffix:~%{llvm_snapshot_version_suffix}} -Release: 1%{?dist} -BuildArch: noarch - -License: Apache-2.0 WITH LLVM-exception OR NCSA -Summary: Tool for executing llvm test suites -URL: https://pypi.python.org/pypi/lit -%if %{without snapshot_build} -Source0: %{pypi_source lit %{lit_version}%{?rc_ver:rc%{rc_ver}}%{?post_ver:.post%{post_ver}}} -%else -Source0: %{llvm_snapshot_source_prefix}llvm-%{llvm_snapshot_yyyymmdd}.src.tar.xz -%{llvm_snapshot_extra_source_tags} -%endif - -# for file check -%if %{with check} -BuildRequires: llvm-test -%endif -BuildRequires: python3-devel -BuildRequires: python3-setuptools - -%description -lit is a tool used by the LLVM project for executing its test suites. - -%package -n python3-lit -Summary: LLVM lit test runner for Python 3 - -Requires: python3-setuptools -Recommends: python3-psutil - -%description -n python3-lit -lit is a tool used by the LLVM project for executing its test suites. - -%prep -%if %{with snapshot_build} -%autosetup -n %{python_lit_srcdir} -p4 -%else -%autosetup -n lit-%{lit_version}%{?rc_ver:rc%{rc_ver}}%{?post_ver:.post%{post_ver}} -p4 -%endif - -%build -%py3_build - -%install -%py3_install - -# Strip out #!/usr/bin/env python -sed -i -e '1{\@^#!/usr/bin/env python@d}' %{buildroot}%{python3_sitelib}/lit/*.py - -%if %{with check} && %{without snapshot_build} -%check -%{__python3} lit.py -v tests -%endif - -%files -n python3-lit -%license LICENSE.TXT -%doc README.rst -%{python3_sitelib}/* -%{_bindir}/lit - -%changelog -* Mon Jul 29 2024 Raven - 18.1.8-1 -- 18.1.8 Release - -* Thu Apr 25 2024 Tom Stellard - 18.1.4-1 -- 18.1.4 Release - -* Fri Apr 12 2024 Tom Stellard - 18.1.3-1 -- 18.1.3 Release - -* Thu Mar 21 2024 Tom Stellard - 18.1.2-1 -- 18.1.2 Release - -* Tue Mar 12 2024 Tom Stellard - 18.1.1-1 -- 18.1.1 Release - -* Wed Feb 28 2024 Tom Stellard - 18.1.0~rc4-1 -- 18.1.0-rc4 Release - -* Wed Feb 21 2024 Tom Stellard - 18.1.0~rc3-1 -- 18.1.0-rc3 Release - -* Fri Jan 26 2024 Fedora Release Engineering - 17.0.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Mon Jan 22 2024 Fedora Release Engineering - 17.0.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -%{?llvm_snapshot_changelog_entry} - -* Tue Nov 28 2023 Tulio Magno Quites Machado Filho - 17.0.6-1 -- Update to LLVM 17.0.6 - -* Tue Nov 14 2023 Tulio Magno Quites Machado Filho - 17.0.5-1 -- Update to LLVM 17.0.5 - -* Tue Oct 31 2023 Tulio Magno Quites Machado Filho - 17.0.4-1 -- Update to LLVM 17.0.4 - -* Tue Oct 17 2023 Tulio Magno Quites Machado Filho - 17.0.3-1 -- Update to LLVM 17.0.3 - -* Mon Oct 09 2023 Tom Stellard - 17.0.2-2 -- Update license - -* Tue Oct 03 2023 Tulio Magno Quites Machado Filho - 17.0.2-1 -- Update to LLVM 17.0.2 - -* Mon Sep 25 2023 Tulio Magno Quites Machado Filho - 17.0.1-1 -- Update to LLVM 17.0.1 - -* Tue Sep 05 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc4-1 -- Update to LLVM 17.0.0 RC4 - -* Tue Aug 22 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc3-1 -- Update to LLVM 17.0.0 RC3 - -* Thu Aug 10 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc2-1 -- Update to LLVM 17.0.0 RC2 - -* Mon Jul 31 2023 Tulio Magno Quites Machado Filho - 17.0.0~rc1-1 -- Update to LLVM 17.0.0 RC1 - -* Fri Jul 21 2023 Fedora Release Engineering - 16.0.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Jul 06 2023 Tulio Magno Quites Machado Filho - 16.0.6-2 -- Rebuilt for Python 3.12 again - -* Wed Jun 14 2023 Tulio Magno Quites Machado Filho - 16.0.6-1 -- Update to LLVM 16.0.6 - -* Tue Jun 13 2023 Python Maint - 16.0.5.post0-2 -- Rebuilt for Python 3.12 - -* Fri Jun 02 2023 Tulio Magno Quites Machado Filho - 16.0.5.post0-1 -- Update to LLVM 16.0.5.post0 - -* Thu May 18 2023 Tulio Magno Quites Machado Filho - 16.0.4-1 -- Update to LLVM 16.0.4 - -* Mon May 15 2023 Tulio Magno Quites Machado Filho - 16.0.3-2 -- Add a patch that accepts ppc64le as a valid triple - -* Tue May 09 2023 Tulio Magno Quites Machado Filho - 16.0.3-1 -- Update to LLVM 16.0.3 - -* Tue Apr 25 2023 Tulio Magno Quites Machado Filho - 16.0.2-1 -- Update to LLVM 16.0.2 - -* Mon Apr 10 2023 Tulio Magno Quites Machado Filho - 16.0.1-1 -- Update to LLVM 16.0.1 - -* Mon Mar 20 2023 Tulio Magno Quites Machado Filho - 16.0.0-1 -- Update to LLVM 16.0.0 - -* Tue Mar 14 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc4-1 -- Update to LLVM 16.0.0 RC4 - -* Wed Feb 22 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc3-1 -- Update to LLVM 16.0.0 RC3 - -* Wed Feb 01 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc1-1 -- Update to LLVM 16.0.0 RC1 - -* Fri Jan 20 2023 Fedora Release Engineering - 15.0.7-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Tue Jan 17 2023 Nikita Popov - 15.0.7-2 -- Update to LLVM 15.0.7 - -* Tue Dec 06 2022 Nikita Popov - 15.0.6-1 -- Update to LLVM 15.0.6 - -* Thu Nov 03 2022 Nikita Popov - 15.0.1-1 -- Update to lit 15.0.1 - -* Fri Oct 21 2022 Serge Guelton - 15.0.0-2 -- Add python3-psutil recommends to avoid runtime warning - -* Tue Sep 06 2022 Nikita Popov - 15.0.0-1 -- Update to lit 15.0.0 - -* Fri Jul 22 2022 Fedora Release Engineering - 14.0.3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Mon Jun 13 2022 Python Maint - 14.0.3-2 -- Rebuilt for Python 3.11 - -* Wed May 18 2022 Tom Stellard - 14.0.3-1 -- 14.0.3 Release - -* Wed Mar 02 2022 Timm Bäder - 14.0.0-1 -- Update to 14.0.0 - -* Fri Feb 04 2022 Nikita Popov - 13.0.1-1 -- Update to LLVM 13.0.1 - -* Fri Jan 21 2022 Fedora Release Engineering - 13.0.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Tue Jan 11 2022 Nikita Popov - 13.0.0-3 -- Backport patch 46c947af7 for build reproducibility - -* Thu Oct 21 2021 Konrad Kleine - 13.0.0-2 -- Remove python 2 support - -* Tue Oct 05 2021 Tom Stellard - 13.0.0-1 -- 13.0.0 Release - -* Mon Aug 09 2021 Tom Stellard - 13.0.0~rc1-2 -- Add missing dist tag to release - -* Fri Aug 06 2021 Tom Stellard - 13.0.0~rc1-1 -- 13.0.0-rc1 Release - -* Fri Jul 23 2021 Fedora Release Engineering - 12.0.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Wed Jul 14 2021 Tom Stellard - 12.0.1-1 -- 12.0.1 Release - -* Fri Jun 04 2021 Python Maint - 12.0.0-3 -- Rebuilt for Python 3.10 - -* Fri Jun 04 2021 Python Maint - 12.0.0-2 -- Bootstrap for Python 3.10 - -* Thu May 06 2021 sguelton@redhat.com - 12.0.0-1 -- 12.0.0 final release - -* Tue Feb 23 2021 Pete Walter - 12.0.0-0.2.rc1 -- rebuilt - -* Wed Feb 03 2021 sguelton@redhat.com - 12.0.0-0.1.rc1 -- 12.0.0 rc1 Release - -* Wed Jan 27 2021 Fedora Release Engineering - 0.11.1-3.rc2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Tue Jan 05 2021 sguelton@redhat.com - 0.11.1-2.rc2 -- 0.11.1 rc2 Release - -* Wed Dec 02 2020 sguelton@redhat.com - 0.11.1-1.rc1 -- 0.11.1 rc1 Release - -* Sun Oct 25 2020 sguelton@redhat.com - 0.11.0-1 -- llvm 11.0.0 - final release - -* Fri Oct 09 2020 sguelton@redhat.com - 0.11.0-0.2.rc1 -- Correctly ship license - -* Fri Aug 07 2020 Tom Stellard - 0.11.0-0.1.rc1 -- 0.11.0 rc1 Release - -* Wed Jul 29 2020 Fedora Release Engineering - 0.10.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon May 25 2020 Miro Hrončok - 0.10.0-3 -- Rebuilt for Python 3.9 - -* Mon May 25 2020 Miro Hrončok - 0.10.0-2 -- Bootstrap for Python 3.9 - -* Thu Apr 9 2020 sguelton@redhat.com - 0.10.0-1 -- 0.10.0 final release - -* Tue Feb 11 2020 sguelton@redhat.com - 0.10.0-0.1.rc1 -- 0.10.0 rc1 Release - -* Thu Jan 30 2020 Fedora Release Engineering - 0.9.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Fri Sep 20 2019 Tom Stellard - 0.9.0-3 -- Re-enable tests - -* Fri Sep 20 2019 Tom Stellard - 0.9.0-2 -- Disable check to avoid circular dependency with llvm-test - -* Fri Sep 20 2019 Tom Stellard - 0.9.0-1 -- 0.9.0 Release - -* Thu Aug 22 2019 Tom Stellard - 0.9.0-0.1.rc4 -- 0.9.0 rc4 Release - -* Tue Aug 20 2019 sguelton@redhat.com - 8.0.0-7 -- Rebuild for Python 3.8 with test, preparatory work for rhbz#1715016 - -* Tue Aug 20 2019 sguelton@redhat.com - 8.0.0-6 -- Rebuild for Python 3.8 without test, preparatory work for rhbz#1715016 - -* Mon Aug 19 2019 Miro Hrončok - 0.8.0-5 -- Rebuilt for Python 3.8 - -* Fri Jul 26 2019 Fedora Release Engineering - 0.8.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Tue Jul 16 2019 sguelton@redhat.com - 8.0.0-3 -- Fix rhbz#1728067 - -* Fri Jun 28 2019 sguelton@redhat.com - 8.0.0-2 -- Fix rhbz#1725155 - -* Thu Mar 21 2019 sguelton@redhat.com - 8.0.0-1 -- 0.8.0 Release - -* Sat Feb 02 2019 Fedora Release Engineering - 0.7.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Mon Dec 17 2018 sguelton@redhat.com - 0.7.1-1 -- 7.0.1 Release - -* Tue Sep 25 2018 Tom Stellard - 0.7.0-2 -- Add missing dist to release tag - -* Fri Sep 21 2018 Tom Stellard - 0.7.0-1 -- 0.7.0 Release - -* Fri Aug 31 2018 Tom Stellard - 0.7.0-0.2.rc1 -- Add Requires: python[23]-setuptools - -* Mon Aug 13 2018 Tom Stellard - 0.7.0-0.1.rc1 -- 0.7.0 rc1 - -* Sat Jul 14 2018 Fedora Release Engineering - 0.6.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Tue Jun 19 2018 Miro Hrončok - 0.6.0-2 -- Rebuilt for Python 3.7 - -* Fri Feb 09 2018 Fedora Release Engineering - 0.6.0-1 -- 0.6.0 Release - -* Fri Feb 09 2018 Fedora Release Engineering - 0.6.0-0.2.rc1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Tue Jan 23 2018 Tom Stellard - 0.6.0-0.1.rc1 -- 0.6.0 rc1 - -* Tue Jan 23 2018 John Dulaney - 0.5.1-4 -- Add a missed python3 conditional around a sed operation - -* Mon Jan 15 2018 Merlin Mathesius - 0.5.1-3 -- Cleanup spec file conditionals - -* Wed Dec 06 2017 Tom Stellard - 0.5.1-2 -- Fix python prefix in BuildRequires - -* Tue Oct 03 2017 Tom Stellard - 0.5.1-1 -- Rebase to 0.5.1 - -* Thu Jul 27 2017 Fedora Release Engineering - 0.5.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Thu Mar 09 2017 Tom Stellard - 0.5.0-1 -- Initial version diff --git a/modular/llvm/rpminspect.yaml b/modular/llvm/rpminspect.yaml new file mode 100644 index 0000000..2f600c2 --- /dev/null +++ b/modular/llvm/rpminspect.yaml @@ -0,0 +1,20 @@ +--- +badfuncs: + # For compiler-rt, we allow the following forbidden functions: + # - gethostbyname + # - gethostbyname2 + # - gethostbyaddr + # - inet_aton + # These are never actually used, and are installed just as interceptors. + allowed: + /usr/lib*/clang/*/lib/*/libclang_rt.?san.so: + - gethostbyaddr + - gethostbyname + - gethostbyname2 + - inet_aton + /usr/lib*/clang/*/lib/*/libclang_rt.memprof.so: + - gethostbyaddr + - gethostbyname + - gethostbyname2 + - inet_aton +