diff --git a/.gitignore b/.gitignore index 52fbb9e..6470980 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/llvm-12.0.1.src.tar.xz +SOURCES/llvm-13.0.0.src.tar.xz diff --git a/.llvm.metadata b/.llvm.metadata index 99ec298..391af81 100644 --- a/.llvm.metadata +++ b/.llvm.metadata @@ -1 +1 @@ -619fe668e0972d11d0fa2db670a57a42d02fb8ca SOURCES/llvm-12.0.1.src.tar.xz +0be63c8b3b44f3af49d9e57130f7b76a6040427c SOURCES/llvm-13.0.0.src.tar.xz diff --git a/SOURCES/0001-PATCH-llvm-Make-source-interleave-prefix-test-case-c.patch b/SOURCES/0001-PATCH-llvm-Make-source-interleave-prefix-test-case-c.patch deleted file mode 100644 index 526b25f..0000000 --- a/SOURCES/0001-PATCH-llvm-Make-source-interleave-prefix-test-case-c.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 60760d66030695105bcf4364f22b7f6053a25253 Mon Sep 17 00:00:00 2001 -From: serge-sans-paille -Date: Thu, 8 Apr 2021 09:33:37 +0200 -Subject: [PATCH] [PATCH][llvm] Make source-interleave-prefix test case - compatible with llvm-test - -llvm-test runs test from a directory that's not the upstream one, and that leads -to some false positive. Workaround this by forcing the current working -directory. ---- - llvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/llvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test b/llvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test -index 23ce55a..d260ee2 100644 ---- a/llvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test -+++ b/llvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test -@@ -5,7 +5,7 @@ - - ; RUN: sed -e "s,SRC_COMPDIR,./Inputs,g" %p/Inputs/source-interleave.ll > %t-relative-path.ll - ; RUN: llc -o %t-relative-path.o -filetype=obj -mtriple=x86_64-pc-linux %t-relative-path.ll --; RUN: llvm-objdump --prefix myprefix --source %t-relative-path.o 2>&1 | \ -+; RUN: mkdir -p %t0 && cd %t0 && llvm-objdump --prefix myprefix --source %t-relative-path.o 2>&1 | \ - ; RUN: FileCheck %s --check-prefix=CHECK-BROKEN-PREFIX -DFILE=%t-relative-path.o -DPREFIX=. - ; CHECK-BROKEN-PREFIX: warning: '[[FILE]]': failed to find source [[PREFIX]]/Inputs/source-interleave-x86_64.c - --- -1.8.3.1 - diff --git a/SOURCES/0001-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch b/SOURCES/0001-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch new file mode 100644 index 0000000..1866a66 --- /dev/null +++ b/SOURCES/0001-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch @@ -0,0 +1,33 @@ +From 9320ffeda3915c8f7be744c983a3470a89107bd7 Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Tue, 14 Sep 2021 20:21:20 -0700 +Subject: [PATCH] XFAIL missing-abstract-variable.ll test on ppc64le + +It's seems the strategy with this test is to XFAIL it on all +architectures that it fails on. I wonder if we should be passing +it a specific triple? Also, from what I can tell, this tests only +runs when llvm is configured with LLVM_DEFAULT_TARGET_TRIPLE set +to a non-empty value, which is why it may not fail in every build +configuration. + +Differential Revision: https://reviews.llvm.org/D109806 +--- + llvm/test/DebugInfo/Generic/missing-abstract-variable.ll | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/llvm/test/DebugInfo/Generic/missing-abstract-variable.ll b/llvm/test/DebugInfo/Generic/missing-abstract-variable.ll +index bd0de60268b6..cc5d56b0c512 100644 +--- a/llvm/test/DebugInfo/Generic/missing-abstract-variable.ll ++++ b/llvm/test/DebugInfo/Generic/missing-abstract-variable.ll +@@ -4,7 +4,7 @@ + ; 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 + + ; Build from the following source with clang -O2. + +-- +2.31.1 + diff --git a/SOURCES/error-opening-permission.patch b/SOURCES/error-opening-permission.patch deleted file mode 100644 index b83a128..0000000 --- a/SOURCES/error-opening-permission.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur a/llvm/test/tools/llvm-ar/error-opening-permission.test b/llvm/test/tools/llvm-ar/error-opening-permission.test ---- a/llvm/test/tools/llvm-ar/error-opening-permission.test 2020-09-15 09:11:33.056986167 +0000 -+++ b/llvm/test/tools/llvm-ar/error-opening-permission.test 2020-09-25 21:01:17.572130708 +0000 -@@ -8,7 +8,7 @@ - ## No Permission: - # RUN: llvm-ar rc %t/permission.b %t/1.txt - # RUN: chmod 100 %t/permission.b --# RUN: not llvm-ar p %t/permission.b 2>&1 | \ -+# RUN: echo > %t/permission.b || not llvm-ar p %t/permission.b 2>&1 | \ - # RUN: FileCheck %s --check-prefix=NO-PERMISSION -DARCHIVE=%t/permission.b - - # NO-PERMISSION: error: unable to open '[[ARCHIVE]]': {{.*}}{{[pP]}}ermission denied diff --git a/SOURCES/llvm-12.0.1.src.tar.xz.sig b/SOURCES/llvm-12.0.1.src.tar.xz.sig deleted file mode 100644 index efeaeb8..0000000 Binary files a/SOURCES/llvm-12.0.1.src.tar.xz.sig and /dev/null differ diff --git a/SOURCES/llvm-13.0.0.src.tar.xz.sig b/SOURCES/llvm-13.0.0.src.tar.xz.sig new file mode 100644 index 0000000..3fa23be Binary files /dev/null and b/SOURCES/llvm-13.0.0.src.tar.xz.sig differ diff --git a/SPECS/llvm.spec b/SPECS/llvm.spec index 86ddfc7..71ad660 100644 --- a/SPECS/llvm.spec +++ b/SPECS/llvm.spec @@ -1,5 +1,10 @@ # Components enabled if supported by target architecture: %define gold_arches %{ix86} x86_64 %{arm} aarch64 %{power64} +%if 0%{?rhel} > 8 || 0%{?fedora} +# FIXME: Why is this disabled on RHEL <= 8 +%global gold_arches %{gold_arches} s390x +%endif + %ifarch %{gold_arches} %bcond_without gold %else @@ -7,14 +12,18 @@ %endif %bcond_with compat_build +%bcond_without check %global llvm_libdir %{_libdir}/%{name} %global build_llvm_libdir %{buildroot}%{llvm_libdir} -#%%global rc_ver 5 -%global llvm_srcdir llvm-%{version}%{?rc_ver:rc%{rc_ver}}.src -%global maj_ver 12 +#global rc_ver 4 +%global maj_ver 13 %global min_ver 0 -%global patch_ver 1 +%global patch_ver 0 +%if !%{maj_ver} && 0%{?rc_ver} +%global abi_revision 2 +%endif +%global llvm_srcdir llvm-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:rc%{rc_ver}}.src %if %{with compat_build} %global pkg_name llvm%{maj_ver} @@ -45,6 +54,19 @@ %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 + +%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 %if !0%{?rhel} # libedit-devel is a buildroot-only package in RHEL8, so we can't have a @@ -52,28 +74,28 @@ %global use_libedit 1 %endif -%global build_install_prefix %{buildroot}%{install_prefix} - Name: %{pkg_name} Version: %{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:~rc%{rc_ver}} -Release: 2%{?dist} +Release: 3%{?dist} Summary: The Low Level Virtual Machine License: NCSA URL: http://llvm.org -Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}%{?rc_ver:-rc%{rc_ver}}/%{llvm_srcdir}.tar.xz -Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}%{?rc_ver:-rc%{rc_ver}}/%{llvm_srcdir}.tar.xz.sig +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 %if %{without compat_build} Source3: run-lit-tests Source4: lit.fedora.cfg.py %endif -Patch0: 0001-PATCH-llvm-Make-source-interleave-prefix-test-case-c.patch +%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 # RHEL-specific patches. Patch101: 0001-Deactivate-markdown-doc.patch -Patch102: error-opening-permission.patch BuildRequires: gcc BuildRequires: gcc-c++ @@ -201,6 +223,13 @@ pathfix.py -i %{__python3} -pn \ # 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 +%ifarch s390x +# FIXME: This test fails on s390x. This still needs to be investigated and +# we should aim to resolve this as part of the update to 13.0.1 +# See https://bugzilla.redhat.com/show_bug.cgi?id=2001133 +rm test/Transforms/SLPVectorizer/slp-max-phi-size.ll +%endif + %build mkdir -p %{_vpath_builddir} @@ -298,7 +327,6 @@ mkdir -p %{buildroot}/%{_bindir} # Fix some man pages ln -s llvm-config.1 %{buildroot}%{_mandir}/man1/llvm-config%{exec_suffix}-%{__isa_bits}.1 -mv %{buildroot}%{_mandir}/man1/*tblgen.1 %{buildroot}%{_mandir}/man1/llvm-tblgen.1 # Install binaries needed for lit tests %global test_binaries llvm-isel-fuzzer llvm-opt-fuzzer @@ -384,6 +412,13 @@ rm -Rf %{build_install_prefix}/share/opt-viewer %if %{without compat_build} mv %{buildroot}/%{pkg_bindir}/llvm-config %{buildroot}/%{pkg_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}/%{pkg_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 @@ -406,17 +441,25 @@ rm test/tools/llvm-readobj/ELF/dependent-libraries.test # 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}/%{pkg_libdir} %{__ninja} check-all -C %{_vpath_builddir} +%endif %ldconfig_scriptlets libs %post devel %{_sbindir}/update-alternatives --install %{_bindir}/llvm-config%{exec_suffix} llvm-config%{exec_suffix} %{pkg_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} %{pkg_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} %{__isa_bits} +%endif %postun devel if [ $1 -eq 0 ]; then %{_sbindir}/update-alternatives --remove llvm-config%{exec_suffix} %{pkg_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} +%if %{without compat_build} + %{_sbindir}/update-alternatives --remove llvm-config-%{maj_ver} %{pkg_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} +%endif fi %files @@ -429,6 +472,8 @@ fi %exclude %{pkg_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} %if %{without compat_build} +%exclude %{_bindir}/llvm-config-%{maj_ver} +%exclude %{pkg_bindir}/llvm-config-%{maj_ver}-%{__isa_bits} %exclude %{_bindir}/not %exclude %{_bindir}/count %exclude %{_bindir}/yaml-bench @@ -449,6 +494,7 @@ fi %{_libdir}/bfd-plugins/LLVMgold.so %endif %{_libdir}/libLLVM-%{maj_ver}.%{min_ver}*.so +%{_libdir}/libLLVM-%{maj_ver}.so%{?abi_revision:.%{abi_revision}} %{_libdir}/libLTO.so* %else %config(noreplace) %{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf @@ -473,6 +519,8 @@ fi %{_includedir}/llvm-c %{_libdir}/libLLVM.so %{_libdir}/cmake/llvm +%{pkg_bindir}/llvm-config-%{maj_ver}-%{__isa_bits} +%ghost %{_bindir}/llvm-config-%{maj_ver} %else %{install_includedir}/llvm %{install_includedir}/llvm-c @@ -515,9 +563,15 @@ fi %endif %changelog -* Thu Sep 02 2021 sguelton@redhat.com - 12.0.1-2 +* Thu Oct 21 2021 sguelton@redhat.com - 13.0.0-3 - Correctly set ldflags +* Wed Oct 20 2021 Tom Stellard - 13.0.0-2 +- Disable failing test on s390x + +* Thu Oct 14 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