From d1b896cbe49a909a2ea08d5ca410f048107d833b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 13 Apr 2022 08:46:59 +0200 Subject: [PATCH] Update to 14.0.0 Resolves: rhbz#2061041 --- .gitignore | 2 + ...overyTest.DumpStackCleanup-test-on-a.patch | 35 ++++++++++ ...abstract-variable.ll-test-on-ppc64le.patch | 4 +- llvm.spec | 69 ++++++++++++++----- sources | 3 +- tests/build-gating.fmf | 10 ++- 6 files changed, 99 insertions(+), 24 deletions(-) create mode 100644 0001-Disable-CrashRecoveryTest.DumpStackCleanup-test-on-a.patch diff --git a/.gitignore b/.gitignore index 3f98691..4b2dab7 100644 --- a/.gitignore +++ b/.gitignore @@ -108,3 +108,5 @@ /llvm-13.0.0.src.tar.xz.sig /llvm-13.0.1.src.tar.xz /llvm-13.0.1.src.tar.xz.sig +/llvm-14.0.0.src.tar.xz +/llvm-14.0.0.src.tar.xz.sig diff --git a/0001-Disable-CrashRecoveryTest.DumpStackCleanup-test-on-a.patch b/0001-Disable-CrashRecoveryTest.DumpStackCleanup-test-on-a.patch new file mode 100644 index 0000000..1ddfb0c --- /dev/null +++ b/0001-Disable-CrashRecoveryTest.DumpStackCleanup-test-on-a.patch @@ -0,0 +1,35 @@ +From 3df079ae29426b4bee3ca11681a41958d72b983a Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Mon, 31 Jan 2022 10:33:27 +0100 +Subject: [PATCH] Disable CrashRecoveryTest.DumpStackCleanup test on aarch64 + +Produces a non-reproducible failure on aarch64: +https://bugzilla.redhat.com/show_bug.cgi?id=2048440 +--- + llvm/unittests/Support/CrashRecoveryTest.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/llvm/unittests/Support/CrashRecoveryTest.cpp b/llvm/unittests/Support/CrashRecoveryTest.cpp +index e95513eb2841..afb1d3a1f6a2 100644 +--- a/llvm/unittests/Support/CrashRecoveryTest.cpp ++++ b/llvm/unittests/Support/CrashRecoveryTest.cpp +@@ -76,6 +76,7 @@ TEST(CrashRecoveryTest, Cleanup) { + llvm::CrashRecoveryContext::Disable(); + } + ++#ifndef __aarch64__ + TEST(CrashRecoveryTest, DumpStackCleanup) { + SmallString<128> Filename; + std::error_code EC = sys::fs::createTemporaryFile("crash", "test", Filename); +@@ -101,6 +102,7 @@ TEST(CrashRecoveryTest, DumpStackCleanup) { + EXPECT_EQ(GlobalInt, 1); + llvm::CrashRecoveryContext::Disable(); + } ++#endif + + TEST(CrashRecoveryTest, LimitedStackTrace) { + std::string Res; +-- +2.34.1 + + diff --git a/0001-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch b/0001-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch index 1866a66..4c4a9cf 100644 --- a/0001-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch +++ b/0001-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch @@ -23,8 +23,8 @@ index bd0de60268b6..cc5d56b0c512 100644 ; powerpc64 (and on x86_64 at at least -O2). Presumably this is a SelectionDAG ; issue. ; FIXME: arm64 is an alias for aarch64 on macs, apparently? --; XFAIL: powerpc64, aarch64, arm64, hexagon -+; XFAIL: powerpc64, aarch64, arm64, hexagon, ppc64le +-; XFAIL: powerpc64, aarch64, arm64, hexagon, riscv ++; XFAIL: powerpc64, aarch64, arm64, hexagon, riscv, ppc64le ; Build from the following source with clang -O2. diff --git a/llvm.spec b/llvm.spec index 0c4eb32..6a92f6e 100644 --- a/llvm.spec +++ b/llvm.spec @@ -1,3 +1,7 @@ +# 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 + # Components enabled if supported by target architecture: %define gold_arches %{ix86} x86_64 %{arm} aarch64 %{power64} s390x %ifarch %{gold_arches} @@ -7,20 +11,20 @@ %endif %bcond_with compat_build -%bcond_with bundle_compat_lib +%bcond_without bundle_compat_lib %bcond_without check %if %{with bundle_compat_lib} -%global compat_maj_ver 12 +%global compat_maj_ver 13 %global compat_ver %{compat_maj_ver}.0.1 %endif %global llvm_libdir %{_libdir}/%{name} %global build_llvm_libdir %{buildroot}%{llvm_libdir} -#%%global rc_ver 5 -%global maj_ver 13 +#global rc_ver 4 +%global maj_ver 14 %global min_ver 0 -%global patch_ver 1 +%global patch_ver 0 %if !%{maj_ver} && 0%{?rc_ver} %global abi_revision 2 %endif @@ -60,6 +64,14 @@ %global _dwz_low_mem_die_limit_s390x 1 %global _dwz_max_die_limit_s390x 1000000 +%ifarch %{arm} +# koji overrides the _gnu variable to be gnu, which is not correct for clang, so +# we need to hard-code the correct triple here. +%global llvm_triple armv7l-redhat-linux-gnueabihf +%else +%global llvm_triple %{_host} +%endif + Name: %{pkg_name} Version: %{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:~rc%{rc_ver}} Release: 1%{?dist} @@ -82,13 +94,16 @@ Source5: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{compat %if 0%{?abi_revision} Patch0: 0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch %endif -Patch2: 0001-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch +Patch1: 0001-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch +Patch2: 0001-Disable-CrashRecoveryTest.DumpStackCleanup-test-on-a.patch # RHEL-specific patches Patch101: 0001-Deactivate-markdown-doc.patch +#Patch102: 1.patch BuildRequires: gcc BuildRequires: gcc-c++ +BuildRequires: clang BuildRequires: cmake BuildRequires: ninja-build BuildRequires: zlib-devel @@ -169,6 +184,14 @@ Summary: LLVM shared libraries %description libs Shared libraries for the LLVM compiler infrastructure. +%if %{without compat_build} +%package cmake-devel +Summary: LLVM shared development CMake files + +%description cmake-devel +Some CMake files that are shared by LLVM sub-projects when building. +%endif + %package static Summary: LLVM static libraries Conflicts: %{name}-devel < 8 @@ -214,15 +237,12 @@ LLVM's modified googletest sources. %build -# Disable LTO on s390x, this causes some test failures: -# LLVM-Unit :: Target/AArch64/./AArch64Tests/InstSizes.Authenticated -# LLVM-Unit :: Target/AArch64/./AArch64Tests/InstSizes.PATCHPOINT -# LLVM-Unit :: Target/AArch64/./AArch64Tests/InstSizes.STACKMAP -# LLVM-Unit :: Target/AArch64/./AArch64Tests/InstSizes.TLSDESC_CALLSEQ -# On X86_64, LTO builds of TableGen crash. This can be reproduced by: -# %%cmake_build --target include/llvm/IR/IntrinsicsAArch64.h -# Because of these failures, lto is disabled for now. -%global _lto_cflags %{nil} +#ifarch s390 s390x +# Fails with "exceeded PCRE's backtracking limit" +%global _lto_cflags %nil +#else +#global _lto_cflags -flto=thin +#endif %ifarch s390 s390x %{arm} %ix86 # Decrease debuginfo verbosity to reduce memory consumption during final library linking @@ -230,7 +250,7 @@ LLVM's modified googletest sources. %endif # force off shared libs as cmake macros turns it on. -%cmake -G Ninja \ +%cmake -G Ninja \ -DBUILD_SHARED_LIBS:BOOL=OFF \ -DLLVM_PARALLEL_LINK_JOBS=1 \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ @@ -265,7 +285,7 @@ LLVM's modified googletest sources. \ -DLLVM_INCLUDE_TESTS:BOOL=ON \ -DLLVM_BUILD_TESTS:BOOL=ON \ - -DLLVM_LIT_EXTRA_ARGS=-v \ + -DLLVM_LIT_ARGS=-v \ \ -DLLVM_INCLUDE_EXAMPLES:BOOL=ON \ -DLLVM_BUILD_EXAMPLES:BOOL=OFF \ @@ -293,10 +313,12 @@ LLVM's modified googletest sources. -DLLVM_INSTALL_TOOLCHAIN_ONLY:BOOL=OFF \ %{?abi_revision:-DLLVM_ABI_REVISION=%{abi_revision}} \ \ + -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 + -DSPHINX_EXECUTABLE=%{_bindir}/sphinx-build-3 \ + -DLLVM_INCLUDE_BENCHMARKS=OFF # 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 @@ -375,7 +397,7 @@ cp -R utils/UpdateTestChecks %{install_srcdir}/utils/ %if %{with gold} # Add symlink to lto plugin in the binutils plugin directory. %{__mkdir_p} %{buildroot}%{_libdir}/bfd-plugins/ -ln -s %{_libdir}/LLVMgold.so %{buildroot}%{_libdir}/bfd-plugins/ +ln -s -t %{buildroot}%{_libdir}/bfd-plugins/ ../LLVMgold.so %endif %else @@ -438,6 +460,9 @@ rm %{buildroot}%{_bindir}/llvm-config%{exec_suffix} # ghost presence touch %{buildroot}%{_bindir}/llvm-config%{exec_suffix} +%if %{without compat_build} +cp -Rv ../cmake/Modules/* %{buildroot}%{_libdir}/cmake/llvm +%endif %check @@ -580,9 +605,15 @@ fi %{_datadir}/llvm/src/utils %{_libdir}/libLLVMTestingSupport.a +%files cmake-devel +%{_libdir}/cmake/llvm + %endif %changelog +* Wed Apr 13 2022 Timm Bäder - 14.0.0-1 +- Update to 14.0.0 + * Wed Feb 02 2022 Tom Stellard - 13.0.1-1 - 13.0.1 Release diff --git a/sources b/sources index 59bc758..ac9b725 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ +SHA512 (llvm-14.0.0.src.tar.xz) = 3e2e9d7ccc44abeff189b76c3a8b1fcfed1f6846e8933cd002d9476a017f28ef4bd8d0e290be1838d50054038a3e0bcfad29d28733a01b811ddaaf11e0c4445f SHA512 (llvm-13.0.1.src.tar.xz) = 05fbe8708ac3d0dfef3a9135ee88185a95ed492095429a97d33b8aadb0187e59ad42d1a7184f02b5c84fdd31f3d7227c65bd292ed0aa039b29522e59cf90a965 -SHA512 (llvm-13.0.1.src.tar.xz.sig) = 0db0076fee269faa477ff7ff42c3ef5bd24cb3816219bbc093080fd4f7516e5414dc0f686325761ff57255d91307cd3f4dbba9066ea7cd69fb819a856f05bde8 +SHA512 (llvm-14.0.0.src.tar.xz.sig) = ac9c5508644a2bad10a7c7bc46f3f9a127b8e83c136bc553252048b14a2b72f924034490c0cdcf32c91b30b03e26768c925e3155fce5748bc2b53ed581056555 diff --git a/tests/build-gating.fmf b/tests/build-gating.fmf index 687ebd5..fd3bad7 100644 --- a/tests/build-gating.fmf +++ b/tests/build-gating.fmf @@ -22,13 +22,19 @@ adjust: # Unfortunatelly, TMT does not support more declarative approach, we need to run commands on our own. - because: "On RHEL, CRB must be enabled to provide rarer packages" when: >- - distro == centos - or distro == rhel-9 + distro == rhel-9 or distro == rhel-8 prepare+: - name: Enable CRB how: shell script: dnf config-manager --set-enabled rhel-CRB + - because: "On RHEL, CRB must be enabled to provide rarer packages" + when: >- + distro == centos + prepare+: + - name: Enable CRB + how: shell + script: dnf config-manager --set-enabled crb discover: - name: "Upstream LLVM tests for build/PR gating"