diff --git a/.gitignore b/.gitignore index d01d408..3cc2136 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ -SOURCES/cmake-15.0.7.src.tar.xz -SOURCES/llvm-15.0.7.src.tar.xz -SOURCES/release-keys.asc +SOURCES/cmake-16.0.6.src.tar.xz +SOURCES/cmake-16.0.6.src.tar.xz.sig +SOURCES/llvm-16.0.6.src.tar.xz +SOURCES/llvm-16.0.6.src.tar.xz.sig +SOURCES/third-party-16.0.6.src.tar.xz +SOURCES/third-party-16.0.6.src.tar.xz.sig diff --git a/.llvm.metadata b/.llvm.metadata index f22ad14..db34f0d 100644 --- a/.llvm.metadata +++ b/.llvm.metadata @@ -1,3 +1,6 @@ -8f06060871953422820098346da9a3b63b90120d SOURCES/cmake-15.0.7.src.tar.xz -497ca3b2010cc0e3e38bc9dc6dda19041dbd7066 SOURCES/llvm-15.0.7.src.tar.xz -347bdd5ee6d6b93c9644c268511815912c0fb2dc SOURCES/release-keys.asc +0de534cfef38697e115c3ae80634765f05e78e5b SOURCES/cmake-16.0.6.src.tar.xz +2db5c88fe9277bb0fa85f49b58e946e49ff235c2 SOURCES/cmake-16.0.6.src.tar.xz.sig +072d2fb4b10f95d06189de00eb7f7e9b35c54e9a SOURCES/llvm-16.0.6.src.tar.xz +bfc74b3868c69ce674a583c91e938b6d4cf0fded SOURCES/llvm-16.0.6.src.tar.xz.sig +5b1a58de6ed9d154a38edb6386a5749576e0b96a SOURCES/third-party-16.0.6.src.tar.xz +51ad6a8ccc5ccd40faff6f1c98a2f33a9b600f88 SOURCES/third-party-16.0.6.src.tar.xz.sig diff --git a/SOURCES/0001-Install-clang-tblgen.patch b/SOURCES/0001-Install-clang-tblgen.patch deleted file mode 100644 index 6bfc2e2..0000000 --- a/SOURCES/0001-Install-clang-tblgen.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 2e106d4cfc909e23e16104725706e4f9dda15974 Mon Sep 17 00:00:00 2001 -From: Nikita Popov -Date: Fri, 5 Aug 2022 08:57:18 +0200 -Subject: [PATCH] Install clang-tblgen - ---- - llvm/cmake/modules/TableGen.cmake | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake -index 4711456776c8..edcc9d0b607d 100644 ---- a/llvm/cmake/modules/TableGen.cmake -+++ b/llvm/cmake/modules/TableGen.cmake -@@ -186,7 +186,10 @@ macro(add_tablegen target project) - endif() - endif() - -- if ((${project} STREQUAL LLVM OR ${project} STREQUAL MLIR) AND NOT LLVM_INSTALL_TOOLCHAIN_ONLY AND LLVM_BUILD_UTILS) -+ # (llvm|mlir|clang)-tblgen may also be used outside the respective projects. -+ if ((${project} STREQUAL LLVM OR ${project} STREQUAL MLIR OR -+ ${project} STREQUAL CLANG) AND -+ NOT LLVM_INSTALL_TOOLCHAIN_ONLY AND LLVM_BUILD_UTILS) - set(export_to_llvmexports) - if(${target} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR - NOT LLVM_DISTRIBUTION_COMPONENTS) --- -2.37.1 - diff --git a/SOURCES/0001-SystemZ-Improve-error-messages-for-unsupported-reloc.patch b/SOURCES/0001-SystemZ-Improve-error-messages-for-unsupported-reloc.patch new file mode 100644 index 0000000..34128b6 --- /dev/null +++ b/SOURCES/0001-SystemZ-Improve-error-messages-for-unsupported-reloc.patch @@ -0,0 +1,184 @@ +From efbaf8bc61f4c0e29a3eaafb11ac0ddda8bd3dff Mon Sep 17 00:00:00 2001 +From: Ulrich Weigand +Date: Fri, 30 Jun 2023 16:02:56 +0200 +Subject: [PATCH] [SystemZ] Improve error messages for unsupported relocations + +In the SystemZMCObjectWriter, we currently just abort in case +some unsupported relocation in requested. However, as this +situation can be triggered by invalid (inline) assembler input, +we should really get a regular error message instead. +--- + .../MCTargetDesc/SystemZMCObjectWriter.cpp | 59 +++++++++++-------- + 1 file changed, 35 insertions(+), 24 deletions(-) + +diff --git a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCObjectWriter.cpp b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCObjectWriter.cpp +index c23463ab9bde..0b11468afc52 100644 +--- a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCObjectWriter.cpp ++++ b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCObjectWriter.cpp +@@ -9,6 +9,7 @@ + #include "MCTargetDesc/SystemZMCFixups.h" + #include "MCTargetDesc/SystemZMCTargetDesc.h" + #include "llvm/BinaryFormat/ELF.h" ++#include "llvm/MC/MCContext.h" + #include "llvm/MC/MCELFObjectWriter.h" + #include "llvm/MC/MCExpr.h" + #include "llvm/MC/MCFixup.h" +@@ -40,7 +41,7 @@ SystemZObjectWriter::SystemZObjectWriter(uint8_t OSABI) + /*HasRelocationAddend_=*/ true) {} + + // Return the relocation type for an absolute value of MCFixupKind Kind. +-static unsigned getAbsoluteReloc(unsigned Kind) { ++static unsigned getAbsoluteReloc(MCContext &Ctx, SMLoc Loc, unsigned Kind) { + switch (Kind) { + case FK_Data_1: return ELF::R_390_8; + case FK_Data_2: return ELF::R_390_16; +@@ -49,11 +50,12 @@ static unsigned getAbsoluteReloc(unsigned Kind) { + case SystemZ::FK_390_12: return ELF::R_390_12; + case SystemZ::FK_390_20: return ELF::R_390_20; + } +- llvm_unreachable("Unsupported absolute address"); ++ Ctx.reportError(Loc, "Unsupported absolute address"); ++ return 0; + } + + // Return the relocation type for a PC-relative value of MCFixupKind Kind. +-static unsigned getPCRelReloc(unsigned Kind) { ++static unsigned getPCRelReloc(MCContext &Ctx, SMLoc Loc, unsigned Kind) { + switch (Kind) { + case FK_Data_2: return ELF::R_390_PC16; + case FK_Data_4: return ELF::R_390_PC32; +@@ -63,62 +65,69 @@ static unsigned getPCRelReloc(unsigned Kind) { + case SystemZ::FK_390_PC24DBL: return ELF::R_390_PC24DBL; + case SystemZ::FK_390_PC32DBL: return ELF::R_390_PC32DBL; + } +- llvm_unreachable("Unsupported PC-relative address"); ++ Ctx.reportError(Loc, "Unsupported PC-relative address"); ++ return 0; + } + + // Return the R_390_TLS_LE* relocation type for MCFixupKind Kind. +-static unsigned getTLSLEReloc(unsigned Kind) { ++static unsigned getTLSLEReloc(MCContext &Ctx, SMLoc Loc, unsigned Kind) { + switch (Kind) { + case FK_Data_4: return ELF::R_390_TLS_LE32; + case FK_Data_8: return ELF::R_390_TLS_LE64; + } +- llvm_unreachable("Unsupported absolute address"); ++ Ctx.reportError(Loc, "Unsupported thread-local address (local-exec)"); ++ return 0; + } + + // Return the R_390_TLS_LDO* relocation type for MCFixupKind Kind. +-static unsigned getTLSLDOReloc(unsigned Kind) { ++static unsigned getTLSLDOReloc(MCContext &Ctx, SMLoc Loc, unsigned Kind) { + switch (Kind) { + case FK_Data_4: return ELF::R_390_TLS_LDO32; + case FK_Data_8: return ELF::R_390_TLS_LDO64; + } +- llvm_unreachable("Unsupported absolute address"); ++ Ctx.reportError(Loc, "Unsupported thread-local address (local-dynamic)"); ++ return 0; + } + + // Return the R_390_TLS_LDM* relocation type for MCFixupKind Kind. +-static unsigned getTLSLDMReloc(unsigned Kind) { ++static unsigned getTLSLDMReloc(MCContext &Ctx, SMLoc Loc, unsigned Kind) { + switch (Kind) { + case FK_Data_4: return ELF::R_390_TLS_LDM32; + case FK_Data_8: return ELF::R_390_TLS_LDM64; + case SystemZ::FK_390_TLS_CALL: return ELF::R_390_TLS_LDCALL; + } +- llvm_unreachable("Unsupported absolute address"); ++ Ctx.reportError(Loc, "Unsupported thread-local address (local-dynamic)"); ++ return 0; + } + + // Return the R_390_TLS_GD* relocation type for MCFixupKind Kind. +-static unsigned getTLSGDReloc(unsigned Kind) { ++static unsigned getTLSGDReloc(MCContext &Ctx, SMLoc Loc, unsigned Kind) { + switch (Kind) { + case FK_Data_4: return ELF::R_390_TLS_GD32; + case FK_Data_8: return ELF::R_390_TLS_GD64; + case SystemZ::FK_390_TLS_CALL: return ELF::R_390_TLS_GDCALL; + } +- llvm_unreachable("Unsupported absolute address"); ++ Ctx.reportError(Loc, "Unsupported thread-local address (general-dynamic)"); ++ return 0; + } + + // Return the PLT relocation counterpart of MCFixupKind Kind. +-static unsigned getPLTReloc(unsigned Kind) { ++static unsigned getPLTReloc(MCContext &Ctx, SMLoc Loc, unsigned Kind) { + switch (Kind) { + case SystemZ::FK_390_PC12DBL: return ELF::R_390_PLT12DBL; + case SystemZ::FK_390_PC16DBL: return ELF::R_390_PLT16DBL; + case SystemZ::FK_390_PC24DBL: return ELF::R_390_PLT24DBL; + case SystemZ::FK_390_PC32DBL: return ELF::R_390_PLT32DBL; + } +- llvm_unreachable("Unsupported absolute address"); ++ Ctx.reportError(Loc, "Unsupported PC-relative PLT address"); ++ return 0; + } + + unsigned SystemZObjectWriter::getRelocType(MCContext &Ctx, + const MCValue &Target, + const MCFixup &Fixup, + bool IsPCRel) const { ++ SMLoc Loc = Fixup.getLoc(); + unsigned Kind = Fixup.getKind(); + if (Kind >= FirstLiteralRelocationKind) + return Kind - FirstLiteralRelocationKind; +@@ -126,38 +135,40 @@ unsigned SystemZObjectWriter::getRelocType(MCContext &Ctx, + switch (Modifier) { + case MCSymbolRefExpr::VK_None: + if (IsPCRel) +- return getPCRelReloc(Kind); +- return getAbsoluteReloc(Kind); ++ return getPCRelReloc(Ctx, Loc, Kind); ++ return getAbsoluteReloc(Ctx, Loc, Kind); + + case MCSymbolRefExpr::VK_NTPOFF: + assert(!IsPCRel && "NTPOFF shouldn't be PC-relative"); +- return getTLSLEReloc(Kind); ++ return getTLSLEReloc(Ctx, Loc, Kind); + + case MCSymbolRefExpr::VK_INDNTPOFF: + if (IsPCRel && Kind == SystemZ::FK_390_PC32DBL) + return ELF::R_390_TLS_IEENT; +- llvm_unreachable("Only PC-relative INDNTPOFF accesses are supported for now"); ++ Ctx.reportError(Loc, "Only PC-relative INDNTPOFF accesses are supported for now"); ++ return 0; + + case MCSymbolRefExpr::VK_DTPOFF: + assert(!IsPCRel && "DTPOFF shouldn't be PC-relative"); +- return getTLSLDOReloc(Kind); ++ return getTLSLDOReloc(Ctx, Loc, Kind); + + case MCSymbolRefExpr::VK_TLSLDM: + assert(!IsPCRel && "TLSLDM shouldn't be PC-relative"); +- return getTLSLDMReloc(Kind); ++ return getTLSLDMReloc(Ctx, Loc, Kind); + + case MCSymbolRefExpr::VK_TLSGD: + assert(!IsPCRel && "TLSGD shouldn't be PC-relative"); +- return getTLSGDReloc(Kind); ++ return getTLSGDReloc(Ctx, Loc, Kind); + + case MCSymbolRefExpr::VK_GOT: + if (IsPCRel && Kind == SystemZ::FK_390_PC32DBL) + return ELF::R_390_GOTENT; +- llvm_unreachable("Only PC-relative GOT accesses are supported for now"); ++ Ctx.reportError(Loc, "Only PC-relative GOT accesses are supported for now"); ++ return 0; + + case MCSymbolRefExpr::VK_PLT: +- assert(IsPCRel && "@PLT shouldt be PC-relative"); +- return getPLTReloc(Kind); ++ assert(IsPCRel && "@PLT shouldn't be PC-relative"); ++ return getPLTReloc(Ctx, Loc, Kind); + + default: + llvm_unreachable("Modifier not supported"); +-- +2.41.0 + diff --git a/SOURCES/0001-llvm-Add-install-targets-for-gtest.patch b/SOURCES/0001-llvm-Add-install-targets-for-gtest.patch new file mode 100644 index 0000000..e84c444 --- /dev/null +++ b/SOURCES/0001-llvm-Add-install-targets-for-gtest.patch @@ -0,0 +1,32 @@ +From 8cc3870f09d728d9017c72eba9520117a4283fee Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Thu, 17 Nov 2022 09:01:10 +0000 +Subject: Add install targets for gtest + +Stand-alone builds need an installed version of gtest in order to run +the unittests. + +Differential Revision: https://reviews.llvm.org/D137890 +--- + llvm/CMakeLists.txt | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt +index 60e1f29620af..d91338532815 100644 +--- a/llvm/CMakeLists.txt ++++ b/llvm/CMakeLists.txt +@@ -693,6 +693,11 @@ option(LLVM_BUILD_TESTS + "Build LLVM unit tests. If OFF, just generate build targets." OFF) + option(LLVM_INCLUDE_TESTS "Generate build targets for the LLVM unit tests." ON) + ++option(LLVM_INSTALL_GTEST ++ "Install the llvm gtest library. This should be on if you want to do ++ stand-alone builds of the other projects and run their unit tests." OFF) ++ ++ + option(LLVM_BUILD_BENCHMARKS "Add LLVM benchmark targets to the list of default + targets. If OFF, benchmarks still could be built using Benchmarks target." OFF) + option(LLVM_INCLUDE_BENCHMARKS "Generate benchmark targets. If OFF, benchmarks can't be built." ON) +-- +2.34.3 + diff --git a/SOURCES/0003-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch b/SOURCES/0003-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch deleted file mode 100644 index 0f4acd3..0000000 --- a/SOURCES/0003-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 01529ba2c76be37e41713cf7f3eca8b61833e320 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Tue, 9 Nov 2021 15:05:07 +0100 -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 8f8d404..07a8778 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, riscv, sparc -+; XFAIL: powerpc64, aarch64, arm64, hexagon, riscv, sparc, ppc64le - - ; Build from the following source with clang -O2. - --- -1.8.3.1 - diff --git a/SOURCES/0201-third-party-Add-install-targets-for-gtest.patch b/SOURCES/0201-third-party-Add-install-targets-for-gtest.patch new file mode 100644 index 0000000..5c86130 --- /dev/null +++ b/SOURCES/0201-third-party-Add-install-targets-for-gtest.patch @@ -0,0 +1,47 @@ +From 8cc3870f09d728d9017c72eba9520117a4283fee Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Thu, 17 Nov 2022 09:01:10 +0000 +Subject: Add install targets for gtest + +Stand-alone builds need an installed version of gtest in order to run +the unittests. + +Differential Revision: https://reviews.llvm.org/D137890 +--- + third-party/unittest/CMakeLists.txt | 15 ++++++++++++++- + 1 file changed, 14 insertions(+), 1 deletion(-) + +diff --git a/third-party/unittest/CMakeLists.txt b/third-party/unittest/CMakeLists.txt +index 0e54e0e57c35..1d2a52730d7d 100644 +--- a/third-party/unittest/CMakeLists.txt ++++ b/third-party/unittest/CMakeLists.txt +@@ -65,12 +65,25 @@ if (NOT LLVM_ENABLE_THREADS) + endif () + + target_include_directories(llvm_gtest +- PUBLIC googletest/include googlemock/include ++ PUBLIC $ ++ $ ++ $ ++ $ + PRIVATE googletest googlemock + ) + + add_subdirectory(UnitTestMain) + ++if (LLVM_INSTALL_GTEST) ++export(TARGETS llvm_gtest llvm_gtest_main LLVMTestingSupport FILE LLVMGTestConfig.cmake) ++install(TARGETS llvm_gtest llvm_gtest_main LLVMTestingSupport EXPORT LLVMGTestConfig ++ ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX}" COMPONENT llvm_gtest) ++ install(EXPORT LLVMGTestConfig DESTINATION ${LLVM_INSTALL_PACKAGE_DIR} COMPONENT llvm_gtest) ++ add_llvm_install_targets(install-llvm_gtest COMPONENT llvm_gtest DEPENDS llvm_gtest LLVMGTestConfig.cmake) ++ install(DIRECTORY googletest/include/gtest/ DESTINATION include/llvm-gtest/gtest/ COMPONENT llvm_gtest) ++ install(DIRECTORY googlemock/include/gmock/ DESTINATION include/llvm-gmock/gmock/ COMPONENT llvm_gtest) ++endif() ++ + # When LLVM_LINK_LLVM_DYLIB is enabled, libLLVM.so is added to the interface + # link libraries for gtest and gtest_main. This means that any target, like + # unittests for example, that links against gtest will be forced to link +-- +2.34.3 + diff --git a/SOURCES/D156379.diff b/SOURCES/D156379.diff new file mode 100644 index 0000000..6d7aef1 --- /dev/null +++ b/SOURCES/D156379.diff @@ -0,0 +1,46 @@ +diff --git a/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp b/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp +--- a/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp ++++ b/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp +@@ -1152,6 +1152,11 @@ + } + } + ++ // Type legalization (via getNumberOfParts) can't handle structs ++ if (TLI->getValueType(DL, Src, true) == MVT::Other) ++ return BaseT::getMemoryOpCost(Opcode, Src, Alignment, AddressSpace, ++ CostKind); ++ + unsigned NumOps = + (Src->isVectorTy() ? getNumVectorRegs(Src) : getNumberOfParts(Src)); + +diff --git a/llvm/test/Analysis/CostModel/SystemZ/struct-cost-crash.ll b/llvm/test/Analysis/CostModel/SystemZ/struct-cost-crash.ll +new file mode 100644 +--- /dev/null ++++ b/llvm/test/Analysis/CostModel/SystemZ/struct-cost-crash.ll +@@ -0,0 +1,25 @@ ++; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --version 2 ++; RUN: opt -passes="print" 2>&1 -disable-output < %s | FileCheck %s ++; ++; Check that SystemZTTIImpl::getMemoryOpCost doesn't try to legalize structs, ++; which was failing llvm_unreachable in MVT::getVT. ++ ++target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-v128:64-a:8:16-n32:64" ++target triple = "s390x-unknown-linux-gnu" ++ ++declare { i64, i32 } @bar() ++ ++define i8 @foo() { ++; CHECK-LABEL: 'foo' ++; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: br label %1 ++; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %2 = call { i64, i32 } @bar() ++; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store { i64, i32 } %2, ptr inttoptr (i64 16 to ptr), align 16 ++; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: br label %1 ++; ++ br label %1 ++ ++1: ; preds = %1, %0 ++ %2 = call { i64, i32 } @bar() ++ store { i64, i32 } %2, ptr inttoptr (i64 16 to ptr), align 16 ++ br label %1 ++} + diff --git a/SOURCES/cmake-15.0.7.src.tar.xz.sig b/SOURCES/cmake-15.0.7.src.tar.xz.sig deleted file mode 100644 index 95cf13c..0000000 Binary files a/SOURCES/cmake-15.0.7.src.tar.xz.sig and /dev/null differ diff --git a/SOURCES/lit.fedora.cfg.py b/SOURCES/lit.fedora.cfg.py deleted file mode 100644 index 1c918b4..0000000 --- a/SOURCES/lit.fedora.cfg.py +++ /dev/null @@ -1,17 +0,0 @@ - -config.llvm_tools_dir = '/usr/bin' -config.llvm_shlib_dir = '%(llvm_shlib_dir)s' % lit_config.params - -if hasattr(config, 'host_triple'): - # This means we are running lit regression tests - - # Regression tests write output to this directory, so we need to be able to specify - # a temp directory when invoking lit. e.g. lit -Dllvm_obj_root=/tmp/lit - config.llvm_obj_root = "%(llvm_obj_root)s" % lit_config.params - lit_config.load_config(config, '%(llvm_test_root)s/lit.cfg.py' % lit_config.params) -else: - # This means we are running lit unit tests - - # For unit tests, llvm_obj_root is used to find the unit test binaries. - config.llvm_obj_root = '%(llvm_unittest_bindir)s' % lit_config.params - lit_config.load_config(config, '%(llvm_test_root)s/Unit/lit.cfg.py' % lit_config.params) diff --git a/SOURCES/llvm-15.0.7.src.tar.xz.sig b/SOURCES/llvm-15.0.7.src.tar.xz.sig deleted file mode 100644 index bd05718..0000000 Binary files a/SOURCES/llvm-15.0.7.src.tar.xz.sig and /dev/null differ diff --git a/SOURCES/release-keys.asc b/SOURCES/release-keys.asc new file mode 100644 index 0000000..0d3789a --- /dev/null +++ b/SOURCES/release-keys.asc @@ -0,0 +1,104 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +9RmlwZlOTFGcWBYl/cfRONn9qi9a6w== +=Lvw+ +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=tMzl +-----END PGP PUBLIC KEY BLOCK----- diff --git a/SOURCES/run-lit-tests b/SOURCES/run-lit-tests deleted file mode 100755 index 314f2be..0000000 --- a/SOURCES/run-lit-tests +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash - -usage() { - echo "usage: `basename $0` [OPTIONS]" - echo " --threads NUM The number of threads to use for running tests." - echo " --multilib-arch ARCH Use this option to test 32-bit libs/binaries on" - echo " 64-bit hosts." -} - -threads_arg='' - -while [ $# -gt 0 ]; do - case $1 in - --threads) - shift - threads_arg="--threads $1" - ;; - --multilib-arch) - shift - ARCH=$1 - ;; - * ) - echo "unknown option: $1" - echo "" - usage - exit 1 - ;; - esac - shift -done - -set -xe - -if [ -z "$ARCH" ]; then - ARCH=`rpm --eval '%_arch'` -fi - -case $ARCH in - arm) - ;& - i686) - LIB_DIR="/usr/lib/" - ;; - *) - LIB_DIR="/usr/lib64/" - ;; -esac - -cd $(mktemp -d) -ln -s /usr/include include -ln -s /usr/share/llvm/src/docs docs -tar -xzf /usr/share/llvm/src/test.tar.gz -ln -s /usr/share/llvm/src/$ARCH.site.cfg.py test/lit.site.cfg.py -ln -s /usr/share/llvm/src/$ARCH.Unit.site.cfg.py test/Unit/lit.site.cfg.py -lit -v -s $threads_arg test \ - -Dllvm_obj_root=`pwd` \ - -Dllvm_test_root=`pwd`/test \ - -Dllvm_unittest_bindir=$LIB_DIR/llvm \ - -Dllvm_shlib_dir=$LIB_DIR diff --git a/SPECS/llvm.spec b/SPECS/llvm.spec index 4108907..1457b80 100644 --- a/SPECS/llvm.spec +++ b/SPECS/llvm.spec @@ -2,6 +2,8 @@ # See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_compiler_macros %global toolchain clang +%global gts_version 13 + # Components enabled if supported by target architecture: %define gold_arches %{ix86} x86_64 %{arm} aarch64 %{power64} s390x %ifarch %{gold_arches} @@ -15,18 +17,20 @@ %bcond_without check %if %{with bundle_compat_lib} -%global compat_maj_ver 14 -%global compat_ver %{compat_maj_ver}.0.6 +%global compat_maj_ver 15 +%global compat_ver %{compat_maj_ver}.0.7 %endif %global llvm_libdir %{_libdir}/%{name} %global build_llvm_libdir %{buildroot}%{llvm_libdir} #global rc_ver 3 -%global maj_ver 15 +%global maj_ver 16 %global min_ver 0 -%global patch_ver 7 +%global patch_ver 6 %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} @@ -67,7 +71,7 @@ # we need to hard-code the correct triple here. %global llvm_triple armv7l-redhat-linux-gnueabihf %else -%global llvm_triple %{_host} +%global llvm_triple %{_target_platform} %endif # https://fedoraproject.org/wiki/Changes/PythonSafePath#Opting_out @@ -77,32 +81,33 @@ Name: %{pkg_name} Version: %{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:~rc%{rc_ver}} -Release: 1%{?dist} +Release: 4%{?dist} Summary: The Low Level Virtual Machine -License: NCSA +License: Apache-2.0 WITH LLVM-exception OR NCSA URL: http://llvm.org 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: release-keys.asc +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 -%if %{without compat_build} -Source5: run-lit-tests -Source6: lit.fedora.cfg.py -%endif %if %{with bundle_compat_lib} Source7: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{compat_ver}/llvm-%{compat_ver}.src.tar.xz Source8: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{compat_ver}/llvm-%{compat_ver}.src.tar.xz.sig -Source9: tstellar-gpg-key.asc %endif -Patch2: 0003-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch +# Backported from LLVM 17 +Patch1: 0001-SystemZ-Improve-error-messages-for-unsupported-reloc.patch +# See https://reviews.llvm.org/D137890 for the next two patches +Patch2: 0001-llvm-Add-install-targets-for-gtest.patch +# Backport of https://reviews.llvm.org/D156379 from LLVM 18. +Patch3: D156379.diff -# Needed to export clang-tblgen during the clang build, needed by the flang docs build. -# TODO: Can be dropped for LLVM 16, see https://reviews.llvm.org/D131282. -Patch3: 0001-Install-clang-tblgen.patch +# Patching third-party dir with a 200 offset in patch number +Patch201: 0201-third-party-Add-install-targets-for-gtest.patch # RHEL-specific patches Patch101: 0001-Deactivate-markdown-doc.patch @@ -137,7 +142,8 @@ BuildRequires: python3-setuptools # For origin certification BuildRequires: gnupg2 - +# To handle LTO debuginfo +BuildRequires: gcc-toolset-%{gts_version}-gdb Requires: %{name}-libs%{?_isa} = %{version}-%{release} @@ -233,10 +239,11 @@ This is the main package for llvm-toolset. %endif %prep -%{gpgverify} --keyring='%{SOURCE4}' --signature='%{SOURCE1}' --data='%{SOURCE0}' -%{gpgverify} --keyring='%{SOURCE4}' --signature='%{SOURCE3}' --data='%{SOURCE2}' +%{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +%{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE3}' --data='%{SOURCE2}' +%{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE5}' --data='%{SOURCE4}' %if %{with bundle_compat_lib} -%{gpgverify} --keyring='%{SOURCE9}' --signature='%{SOURCE8}' --data='%{SOURCE7}' +%{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE8}' --data='%{SOURCE7}' %endif %setup -T -q -b 2 -n %{cmake_srcdir} @@ -245,11 +252,17 @@ This is the main package for llvm-toolset. cd .. mv %{cmake_srcdir} cmake +%setup -T -q -b 4 -n %{third_party_srcdir} +%autopatch -m200 -p2 +cd .. +mv %{third_party_srcdir} third-party + %if %{with bundle_compat_lib} %setup -T -q -b 7 -n llvm-%{compat_ver}.src %endif -%autosetup -n %{llvm_srcdir} -p2 +%setup -T -q -b 0 -n %{llvm_srcdir} +%autopatch -M200 -p2 %py3_shebang_fix \ test/BugPoint/compile-custom.ll.py \ @@ -258,12 +271,10 @@ mv %{cmake_srcdir} cmake %build -#ifarch s390 s390x -# Fails with "exceeded PCRE's backtracking limit" +%ifarch %ix86 +# Linking libLLVM.so goes out of memory even with ThinLTO and a single link job. %global _lto_cflags %nil -#else -#global _lto_cflags -flto=thin -#endif +%endif %ifarch s390 s390x %{arm} %ix86 # Decrease debuginfo verbosity to reduce memory consumption during final library linking @@ -271,7 +282,7 @@ mv %{cmake_srcdir} cmake %endif # Copy CFLAGS into ASMFLAGS, so -fcf-protection is used when compiling assembly files. -export ASMFLAGS=$CFLAGS +export ASMFLAGS="%{build_cflags}" # force off shared libs as cmake macros turns it on. %cmake -G Ninja \ @@ -309,6 +320,11 @@ export ASMFLAGS=$CFLAGS \ -DLLVM_INCLUDE_TESTS:BOOL=ON \ -DLLVM_BUILD_TESTS:BOOL=ON \ +%if %{with compat_build} + -DLLVM_INSTALL_GTEST:BOOL=OFF \ +%else + -DLLVM_INSTALL_GTEST:BOOL=ON \ +%endif -DLLVM_LIT_ARGS=-v \ \ -DLLVM_INCLUDE_EXAMPLES:BOOL=ON \ @@ -331,6 +347,7 @@ export ASMFLAGS=$CFLAGS %if %{without compat_build} -DLLVM_VERSION_SUFFIX='' \ %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 \ @@ -341,7 +358,8 @@ export ASMFLAGS=$CFLAGS -DCMAKE_INSTALL_PREFIX=%{install_prefix} \ -DLLVM_INSTALL_SPHINX_HTML_DIR=%{_pkgdocdir}/html \ -DSPHINX_EXECUTABLE=%{_bindir}/sphinx-build-3 \ - -DLLVM_INCLUDE_BENCHMARKS=OFF + -DLLVM_INCLUDE_BENCHMARKS=OFF \ + -DCMAKE_SHARED_LINKER_FLAGS="$LDFLAGS -Wl,-z,cet-report=error" # 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 @@ -366,6 +384,11 @@ export ASMFLAGS=$CFLAGS %endif %install + +# Use newer GDB for gdb-add-index step, as system GDB can't handle the LTO debuginfo. +source scl_source enable gcc-toolset-%{gts_version} +export GDB=`which gdb` + %cmake_install %if %{with bundle_compat_lib} @@ -403,17 +426,7 @@ rm -rf test/tools/UpdateTestChecks %endif install %{build_libdir}/libLLVMTestingSupport.a %{buildroot}%{_libdir} - -%global install_srcdir %{buildroot}%{_datadir}/llvm/src - -# Install gtest sources so clang can use them for gtest -install -d %{install_srcdir} -install -d %{install_srcdir}/utils/ -cp -R utils/unittest %{install_srcdir}/utils/ - -# Clang needs these for running lit tests. -cp utils/update_cc_test_checks.py %{install_srcdir}/utils/ -cp -R utils/UpdateTestChecks %{install_srcdir}/utils/ +install %{build_libdir}/libLLVMTestingAnnotations.a %{buildroot}%{_libdir} %if %{with gold} # Add symlink to lto plugin in the binutils plugin directory. @@ -605,6 +618,9 @@ fi %if %{without compat_build} %{_libdir}/*.a %exclude %{_libdir}/libLLVMTestingSupport.a +%exclude %{_libdir}/libLLVMTestingAnnotations.a +%exclude %{_libdir}/libllvm_gtest.a +%exclude %{_libdir}/libllvm_gtest_main.a %else %{_libdir}/%{name}/lib/*.a %endif @@ -622,8 +638,12 @@ fi %files googletest %license LICENSE.TXT -%{_datadir}/llvm/src/utils %{_libdir}/libLLVMTestingSupport.a +%{_libdir}/libLLVMTestingAnnotations.a +%{_libdir}/libllvm_gtest.a +%{_libdir}/libllvm_gtest_main.a +%{_includedir}/llvm-gtest +%{_includedir}/llvm-gmock %files toolset %license LICENSE.TXT @@ -631,6 +651,31 @@ fi %endif %changelog +* Fri Aug 04 2023 Tulio Magno Quites Machado Filho - 16.0.6-4 +- Re-add LDFLAGS to shared libraries + +* Thu Aug 03 2023 Tulio Magno Quites Machado Filho - 16.0.6-3 +- Fix rhbz #2226795 + +* Tue Aug 01 2023 Nikita Popov - 16.0.6-2 +- Fix CET support + +* Tue Jul 04 2023 Nikita Popov - 16.0.6-1 +- Update to LLVM 16.0.6 + +* Mon Jul 03 2023 Tulio Magno Quites Machado Filho - 16.0.1-4 +- Improve error messages for unsupported relocs on s390x (rhbz#2216906) +- Disable LLVM_UNREACHABLE_OPTIMIZE + +* Thu Jun 29 2023 Nikita Popov - 16.0.1-3 +- Use gcc-toolset-13-gdb for gdb-add-index + +* Fri May 05 2023 Nikita Popov - 16.0.1-2 +- Build with LTO + +* Fri Apr 14 2023 Nikita Popov - 16.0.1-1 +- Update to LLVM 16.0.1 + * Fri Jan 13 2023 Konrad Kleine - 15.0.7-1 - Update to LLVM 15.0.7 - Remove workaround for rbhz#2048440