diff --git a/.gitignore b/.gitignore index 3fbe904..65eb8c7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,48 +1,15 @@ -SOURCES/cmake-15.0.7.src.tar.xz -SOURCES/llvm-15.0.7.src.tar.xz -/cmake-15.0.7.src.tar.xz -/llvm-15.0.7.src.tar.xz -/llvm-16.0.0.src.tar.xz -/llvm-16.0.0.src.tar.xz.sig -/cmake-16.0.0.src.tar.xz -/cmake-16.0.0.src.tar.xz.sig -/third-party-16.0.0.src.tar.xz -/third-party-16.0.0.src.tar.xz.sig -/llvm-16.0.6.src.tar.xz -/llvm-16.0.6.src.tar.xz.sig -/cmake-16.0.6.src.tar.xz -/cmake-16.0.6.src.tar.xz.sig -/third-party-16.0.6.src.tar.xz -/third-party-16.0.6.src.tar.xz.sig -/llvm-17.0.2.src.tar.xz -/llvm-17.0.2.src.tar.xz.sig -/cmake-17.0.2.src.tar.xz -/cmake-17.0.2.src.tar.xz.sig -/third-party-17.0.2.src.tar.xz -/third-party-17.0.2.src.tar.xz.sig -/llvm-17.0.6.src.tar.xz -/llvm-17.0.6.src.tar.xz.sig -/cmake-17.0.6.src.tar.xz -/cmake-17.0.6.src.tar.xz.sig -/third-party-17.0.6.src.tar.xz -/third-party-17.0.6.src.tar.xz.sig -/llvm-18.1.8.src.tar.xz -/llvm-18.1.8.src.tar.xz.sig -/cmake-18.1.8.src.tar.xz -/cmake-18.1.8.src.tar.xz.sig -/third-party-18.1.8.src.tar.xz -/third-party-18.1.8.src.tar.xz.sig -/llvm-project-19.1.3.src.tar.xz -/llvm-project-19.1.3.src.tar.xz.sig -/llvm-project-18.1.8.src.tar.xz -/llvm-project-18.1.8.src.tar.xz.sig -/llvm-project-19.1.7.src.tar.xz -/llvm-project-19.1.7.src.tar.xz.sig -/llvm-project-20.1.3.src.tar.xz -/llvm-project-20.1.3.src.tar.xz.sig -/llvm-project-20.1.6.src.tar.xz -/llvm-project-20.1.6.src.tar.xz.sig -/llvm-project-20.1.7.src.tar.xz -/llvm-project-20.1.7.src.tar.xz.sig -/llvm-project-20.1.8.src.tar.xz -/llvm-project-20.1.8.src.tar.xz.sig +/*.src.rpm +/*.src.tar.xz +/*.src.tar.xz.sig +/*.tar.gz +/cmake/ +/llvm-*.src/ +/results_llvm/ +/third-party/ +/llvm-git-revision-*.txt +/llvm-release-*.txt +/BUILD +/BUILDROOT +/out +/version.spec.inc +/.gdbinit diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..ae14bc7 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,30 @@ +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: check-ast + - id: check-case-conflict + - id: check-docstring-first + - id: check-executables-have-shebangs + - id: check-merge-conflict + - id: check-symlinks + - id: trailing-whitespace + - id: end-of-file-fixer + - id: mixed-line-ending + - id: fix-byte-order-marker + - id: detect-private-key + - id: check-toml + - id: check-yaml + args: + - "--allow-multiple-documents" + - "--unsafe" + + # See https://tmt.readthedocs.io/en/latest/guide.html#checking-data-validity + - repo: https://github.com/teemtee/tmt.git + rev: 1.38.0 + hooks: + - id: tmt-lint + +exclude: ".*\\.patch" diff --git a/0001-22-polly-shared-libs.patch b/0001-22-polly-shared-libs.patch new file mode 100644 index 0000000..091db35 --- /dev/null +++ b/0001-22-polly-shared-libs.patch @@ -0,0 +1,59 @@ +From daf5077c8ce848b39239879369679c9fea7041b1 Mon Sep 17 00:00:00 2001 +From: Konrad Kleine +Date: Tue, 28 Jan 2025 08:34:09 +0000 +Subject: [PATCH] shared libs + +--- + polly/cmake/polly_macros.cmake | 5 ++++- + polly/lib/CMakeLists.txt | 1 + + polly/lib/External/CMakeLists.txt | 1 + + 3 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/polly/cmake/polly_macros.cmake b/polly/cmake/polly_macros.cmake +index 9bd7b0b0ea59..fc2c3a76901f 100644 +--- a/polly/cmake/polly_macros.cmake ++++ b/polly/cmake/polly_macros.cmake +@@ -1,5 +1,5 @@ + macro(add_polly_library name) +- cmake_parse_arguments(ARG "" "" "" ${ARGN}) ++ cmake_parse_arguments(ARG "SHARED" "" "" ${ARGN}) + set(srcs ${ARG_UNPARSED_ARGUMENTS}) + if(MSVC_IDE OR XCODE) + file( GLOB_RECURSE headers *.h *.td *.def) +@@ -17,6 +17,9 @@ macro(add_polly_library name) + else() + set(libkind) + endif() ++ if (ARG_SHARED) ++ set(libkind SHARED) ++ endif() + add_library( ${name} ${libkind} ${srcs} ) + set_target_properties(${name} PROPERTIES FOLDER "Polly/Libraries") + +diff --git a/polly/lib/CMakeLists.txt b/polly/lib/CMakeLists.txt +index 0ed673815ff3..e156dcb31655 100644 +--- a/polly/lib/CMakeLists.txt ++++ b/polly/lib/CMakeLists.txt +@@ -41,6 +41,7 @@ set(POLLY_COMPONENTS + # the sources them to be recompiled for each of them. + add_llvm_pass_plugin(Polly + NO_MODULE ++ SHARED + SUBPROJECT Polly + Analysis/DependenceInfo.cpp + Analysis/ScopDetection.cpp +diff --git a/polly/lib/External/CMakeLists.txt b/polly/lib/External/CMakeLists.txt +index ab5cba93cdcf..fdfd06864bc7 100644 +--- a/polly/lib/External/CMakeLists.txt ++++ b/polly/lib/External/CMakeLists.txt +@@ -284,6 +284,7 @@ if (POLLY_BUNDLED_ISL) + ) + + add_polly_library(PollyISL ++ SHARED + ${ISL_FILES} + ) + +-- +2.50.1 + diff --git a/0001-BPF-Revert-the-behavior-when-handling-traps.patch b/0001-BPF-Revert-the-behavior-when-handling-traps.patch new file mode 100644 index 0000000..5fe5779 --- /dev/null +++ b/0001-BPF-Revert-the-behavior-when-handling-traps.patch @@ -0,0 +1,48 @@ +From 10c38a8830c2c93b490b342596a2d286f4f21ae6 Mon Sep 17 00:00:00 2001 +From: Tulio Magno Quites Machado Filho +Date: Wed, 29 Oct 2025 10:59:29 -0300 +Subject: [PATCH] [BPF] Revert the behavior when handling traps + +Commit ab391beb11f733b526b86f9df23734a34657d876 in LLVM 21 changed the +behavior of the BPF backend when handling traps in order to require +kfunc __bpf_trap. This kfunc is only available on Linux >= 6.16 via +commit f95695f2c46592b4260032736a9bfc6e2a01c77c. + +RHEL 8 uses Linux 4.18, which means we can't adopt the new behavior +unless __bpf_trap is backported. +--- + llvm/lib/Target/BPF/BPFTargetMachine.cpp | 3 ++- + llvm/test/CodeGen/BPF/BTF/unreachable.ll | 4 ++-- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/llvm/lib/Target/BPF/BPFTargetMachine.cpp b/llvm/lib/Target/BPF/BPFTargetMachine.cpp +index ad3df2c879fe..426facc74904 100644 +--- a/llvm/lib/Target/BPF/BPFTargetMachine.cpp ++++ b/llvm/lib/Target/BPF/BPFTargetMachine.cpp +@@ -40,7 +40,8 @@ opt DisableMIPeephole("disable-bpf-peephole", cl::Hidden, + cl::desc("Disable machine peepholes for BPF")); + + static cl::opt +- DisableCheckUnreachable("bpf-disable-trap-unreachable", cl::Hidden, ++ DisableCheckUnreachable("bpf-disable-trap-unreachable", cl::init(true), ++ cl::Hidden, + cl::desc("Disable Trap Unreachable for BPF")); + + extern "C" LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeBPFTarget() { +diff --git a/llvm/test/CodeGen/BPF/BTF/unreachable.ll b/llvm/test/CodeGen/BPF/BTF/unreachable.ll +index 5f53a7445433..91bd94e8dc45 100644 +--- a/llvm/test/CodeGen/BPF/BTF/unreachable.ll ++++ b/llvm/test/CodeGen/BPF/BTF/unreachable.ll +@@ -1,7 +1,7 @@ +-; RUN: llc -mtriple=bpfel -mcpu=v3 -filetype=obj -o %t1 %s ++; RUN: llc -mtriple=bpfel -mcpu=v3 -filetype=obj -o %t1 -bpf-disable-trap-unreachable=0 %s + ; RUN: llvm-objcopy --dump-section='.BTF'=%t2 %t1 + ; RUN: %python %p/print_btf.py %t2 | FileCheck -check-prefixes=CHECK-BTF %s +-; RUN: llc -mtriple=bpfel -mcpu=v3 < %s | FileCheck -check-prefixes=CHECK %s ++; RUN: llc -mtriple=bpfel -mcpu=v3 -bpf-disable-trap-unreachable=0 < %s | FileCheck -check-prefixes=CHECK %s + + define void @foo() { + entry: +-- +2.50.1 + diff --git a/0001-CGP-Bail-out-if-Base-Scaled-Reg-does-not-dominate-in.patch b/0001-CGP-Bail-out-if-Base-Scaled-Reg-does-not-dominate-in.patch new file mode 100644 index 0000000..0c2d067 --- /dev/null +++ b/0001-CGP-Bail-out-if-Base-Scaled-Reg-does-not-dominate-in.patch @@ -0,0 +1,131 @@ +From dde30a47313bf52fef02bbcb1de931a8d725659f Mon Sep 17 00:00:00 2001 +From: Florian Hahn +Date: Fri, 6 Jun 2025 12:38:30 +0100 +Subject: [PATCH] [CGP] Bail out if (Base|Scaled)Reg does not dominate insert + point. (#142949) + +(Base|Scaled)Reg may not dominate the chosen insert point, if there are +multiple uses of the address. Bail out if that's the case, otherwise we +will generate invalid IR. + +In some cases, we could probably adjust the insert point or hoist the +(Base|Scaled)Reg. + +Fixes https://github.com/llvm/llvm-project/issues/142830. + +PR: https://github.com/llvm/llvm-project/pull/142949 +--- + llvm/lib/CodeGen/CodeGenPrepare.cpp | 13 +++- + .../X86/sink-addrmode-reg-does-not-geps.ll | 76 +++++++++++++++++++ + 2 files changed, 87 insertions(+), 2 deletions(-) + create mode 100644 llvm/test/Transforms/CodeGenPrepare/X86/sink-addrmode-reg-does-not-geps.ll + +diff --git a/llvm/lib/CodeGen/CodeGenPrepare.cpp b/llvm/lib/CodeGen/CodeGenPrepare.cpp +index 822ed6283117..32348a899683 100644 +--- a/llvm/lib/CodeGen/CodeGenPrepare.cpp ++++ b/llvm/lib/CodeGen/CodeGenPrepare.cpp +@@ -5945,8 +5945,17 @@ bool CodeGenPrepare::optimizeMemoryInst(Instruction *MemoryInst, Value *Addr, + // The current BB may be optimized multiple times, we can't guarantee the + // reuse of Addr happens later, call findInsertPos to find an appropriate + // insert position. +- IRBuilder<> Builder(MemoryInst->getParent(), +- findInsertPos(Addr, MemoryInst, SunkAddr)); ++ auto InsertPos = findInsertPos(Addr, MemoryInst, SunkAddr); ++ ++ // TODO: Adjust insert point considering (Base|Scaled)Reg if possible. ++ if (!SunkAddr) { ++ auto &DT = getDT(*MemoryInst->getFunction()); ++ if ((AddrMode.BaseReg && !DT.dominates(AddrMode.BaseReg, &*InsertPos)) || ++ (AddrMode.ScaledReg && !DT.dominates(AddrMode.ScaledReg, &*InsertPos))) ++ return Modified; ++ } ++ ++ IRBuilder<> Builder(MemoryInst->getParent(), InsertPos); + + if (SunkAddr) { + LLVM_DEBUG(dbgs() << "CGP: Reusing nonlocal addrmode: " << AddrMode +diff --git a/llvm/test/Transforms/CodeGenPrepare/X86/sink-addrmode-reg-does-not-geps.ll b/llvm/test/Transforms/CodeGenPrepare/X86/sink-addrmode-reg-does-not-geps.ll +new file mode 100644 +index 000000000000..1640bafbd0bf +--- /dev/null ++++ b/llvm/test/Transforms/CodeGenPrepare/X86/sink-addrmode-reg-does-not-geps.ll +@@ -0,0 +1,76 @@ ++; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 ++; RUN: opt -S -passes='require,function(codegenprepare)' %s | FileCheck %s ++ ++target triple = "x86_64-unknown-linux" ++ ++declare i1 @cond(float) ++ ++define void @scaled_reg_does_not_dominate_insert_point(ptr %src) { ++; CHECK-LABEL: define void @scaled_reg_does_not_dominate_insert_point( ++; CHECK-SAME: ptr [[SRC:%.*]]) { ++; CHECK-NEXT: [[BB:.*]]: ++; CHECK-NEXT: br label %[[LOOP:.*]] ++; CHECK: [[LOOP]]: ++; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 0, %[[BB]] ], [ [[IV_NEXT:%.*]], %[[LOOP]] ] ++; CHECK-NEXT: [[IV_NEXT]] = add i64 [[IV]], 1 ++; CHECK-NEXT: [[SUNKADDR2:%.*]] = mul i64 [[IV_NEXT]], 2 ++; CHECK-NEXT: [[SUNKADDR3:%.*]] = getelementptr i8, ptr [[SRC]], i64 [[SUNKADDR2]] ++; CHECK-NEXT: [[SUNKADDR4:%.*]] = getelementptr i8, ptr [[SUNKADDR3]], i64 6 ++; CHECK-NEXT: [[L_0:%.*]] = load float, ptr [[SUNKADDR4]], align 4 ++; CHECK-NEXT: [[SUNKADDR:%.*]] = mul i64 [[IV]], 2 ++; CHECK-NEXT: [[SUNKADDR1:%.*]] = getelementptr i8, ptr [[SRC]], i64 [[SUNKADDR]] ++; CHECK-NEXT: [[L_1:%.*]] = load float, ptr [[SUNKADDR1]], align 4 ++; CHECK-NEXT: [[TMP0:%.*]] = call i1 @cond(float [[L_0]]) ++; CHECK-NEXT: [[C:%.*]] = call i1 @cond(float [[L_1]]) ++; CHECK-NEXT: br i1 [[C]], label %[[LOOP]], label %[[EXIT:.*]] ++; CHECK: [[EXIT]]: ++; CHECK-NEXT: ret void ++; ++bb: ++ %gep.base = getelementptr i8, ptr %src, i64 8 ++ br label %loop ++ ++loop: ++ %iv = phi i64 [ 0, %bb ], [ %iv.next, %loop ] ++ %iv.shl = shl i64 %iv, 1 ++ %gep.shl = getelementptr i8, ptr %gep.base, i64 %iv.shl ++ %gep.sub = getelementptr i8, ptr %gep.shl, i64 -8 ++ %iv.next = add i64 %iv, 1 ++ %l.0 = load float, ptr %gep.shl, align 4 ++ %l.1 = load float, ptr %gep.sub, align 4 ++ call i1 @cond(float %l.0) ++ %c = call i1 @cond(float %l.1) ++ br i1 %c, label %loop, label %exit ++ ++exit: ++ ret void ++} ++ ++define void @check_dt_after_modifying_cfg(ptr %dst, i64 %x, i8 %y, i8 %z) { ++; CHECK-LABEL: define void @check_dt_after_modifying_cfg( ++; CHECK-SAME: ptr [[DST:%.*]], i64 [[X:%.*]], i8 [[Y:%.*]], i8 [[Z:%.*]]) { ++; CHECK-NEXT: [[ENTRY:.*]]: ++; CHECK-NEXT: [[OFFSET:%.*]] = lshr i64 [[X]], 2 ++; CHECK-NEXT: [[SEL_FROZEN:%.*]] = freeze i8 [[Z]] ++; CHECK-NEXT: [[CMP:%.*]] = icmp slt i8 [[SEL_FROZEN]], 0 ++; CHECK-NEXT: br i1 [[CMP]], label %[[SELECT_END:.*]], label %[[SELECT_FALSE_SINK:.*]] ++; CHECK: [[SELECT_FALSE_SINK]]: ++; CHECK-NEXT: [[SMIN:%.*]] = tail call i8 @llvm.smin.i8(i8 [[Y]], i8 0) ++; CHECK-NEXT: br label %[[SELECT_END]] ++; CHECK: [[SELECT_END]]: ++; CHECK-NEXT: [[SEL:%.*]] = phi i8 [ 0, %[[ENTRY]] ], [ [[SMIN]], %[[SELECT_FALSE_SINK]] ] ++; CHECK-NEXT: [[SUNKADDR:%.*]] = getelementptr i8, ptr [[DST]], i64 [[OFFSET]] ++; CHECK-NEXT: store i8 [[SEL]], ptr [[SUNKADDR]], align 1 ++; CHECK-NEXT: ret void ++; ++entry: ++ %offset = lshr i64 %x, 2 ++ %gep.dst = getelementptr i8, ptr %dst, i64 %offset ++ %smin = tail call i8 @llvm.smin.i8(i8 %y, i8 0) ++ %cmp = icmp slt i8 %z, 0 ++ %sel = select i1 %cmp, i8 0, i8 %smin ++ store i8 %sel, ptr %gep.dst, align 1 ++ ret void ++} ++ ++declare i8 @llvm.smin.i8(i8, i8) #0 +-- +2.50.1 + diff --git a/0001-SystemZ-Fix-ICE-with-i128-i64-uaddo-carry-chain.patch b/0001-SystemZ-Fix-ICE-with-i128-i64-uaddo-carry-chain.patch deleted file mode 100644 index 4ec2d1d..0000000 --- a/0001-SystemZ-Fix-ICE-with-i128-i64-uaddo-carry-chain.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 6d5697f7cb4e933d2f176c46b7ac05a9cbaeb8b6 Mon Sep 17 00:00:00 2001 -From: Ulrich Weigand -Date: Thu, 23 Jan 2025 19:11:18 +0100 -Subject: [PATCH] [SystemZ] Fix ICE with i128->i64 uaddo carry chain - -We can only optimize a uaddo_carry via specialized instruction -if the carry was produced by another uaddo(_carry) instruction; -there is already a check for that. - -However, i128 uaddo(_carry) use a completely different mechanism; -they indicate carry in a vector register instead of the CC flag. -Thus, we must also check that we don't mix those two - that check -has been missing. - -Fixes: https://github.com/llvm/llvm-project/issues/124001 ---- - .../Target/SystemZ/SystemZISelLowering.cpp | 12 ++++++---- - llvm/test/CodeGen/SystemZ/pr124001.ll | 23 +++++++++++++++++++ - 2 files changed, 31 insertions(+), 4 deletions(-) - create mode 100644 llvm/test/CodeGen/SystemZ/pr124001.ll - -diff --git a/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp b/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp -index 4040ab6d4510..1fb31c26e20d 100644 ---- a/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp -+++ b/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp -@@ -4708,15 +4708,19 @@ SDValue SystemZTargetLowering::lowerXALUO(SDValue Op, - } - - static bool isAddCarryChain(SDValue Carry) { -- while (Carry.getOpcode() == ISD::UADDO_CARRY) -+ while (Carry.getOpcode() == ISD::UADDO_CARRY && -+ Carry->getValueType(0) != MVT::i128) - Carry = Carry.getOperand(2); -- return Carry.getOpcode() == ISD::UADDO; -+ return Carry.getOpcode() == ISD::UADDO && -+ Carry->getValueType(0) != MVT::i128; - } - - static bool isSubBorrowChain(SDValue Carry) { -- while (Carry.getOpcode() == ISD::USUBO_CARRY) -+ while (Carry.getOpcode() == ISD::USUBO_CARRY && -+ Carry->getValueType(0) != MVT::i128) - Carry = Carry.getOperand(2); -- return Carry.getOpcode() == ISD::USUBO; -+ return Carry.getOpcode() == ISD::USUBO && -+ Carry->getValueType(0) != MVT::i128; - } - - // Lower UADDO_CARRY/USUBO_CARRY nodes. -diff --git a/llvm/test/CodeGen/SystemZ/pr124001.ll b/llvm/test/CodeGen/SystemZ/pr124001.ll -new file mode 100644 -index 000000000000..9cf630a55dd6 ---- /dev/null -+++ b/llvm/test/CodeGen/SystemZ/pr124001.ll -@@ -0,0 +1,23 @@ -+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 -+; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s -+ -+define i64 @test(i128 %in) { -+; CHECK-LABEL: test: -+; CHECK: # %bb.0: -+; CHECK-NEXT: larl %r1, .LCPI0_0 -+; CHECK-NEXT: vl %v0, 0(%r2), 3 -+; CHECK-NEXT: vl %v1, 0(%r1), 3 -+; CHECK-NEXT: vaccq %v0, %v0, %v1 -+; CHECK-NEXT: vlgvg %r1, %v0, 1 -+; CHECK-NEXT: la %r2, 1(%r1) -+; CHECK-NEXT: br %r14 -+ %1 = tail call { i128, i1 } @llvm.uadd.with.overflow.i128(i128 %in, i128 1) -+ %2 = extractvalue { i128, i1 } %1, 1 -+ %3 = zext i1 %2 to i64 -+ %4 = add i64 %3, 1 -+ ret i64 %4 -+} -+ -+declare { i128, i1 } @llvm.uadd.with.overflow.i128(i128, i128) #0 -+ -+attributes #0 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } --- -2.48.1 - diff --git a/0001-clang-Add-a-hack-to-fix-the-offload-build-with-the-m.patch b/0001-clang-Add-a-hack-to-fix-the-offload-build-with-the-m.patch new file mode 100644 index 0000000..9184a37 --- /dev/null +++ b/0001-clang-Add-a-hack-to-fix-the-offload-build-with-the-m.patch @@ -0,0 +1,27 @@ +From f028fc042ef2875a13c6abf3828626a313e4a8e6 Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Fri, 1 Aug 2025 15:38:22 +0000 +Subject: [PATCH] clang: Add a hack to fix the offload build with the + mtls-dialect option + +--- + clang/lib/Driver/ToolChains/CommonArgs.cpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp +index 097d186ad8ea..0dc9e60f8428 100644 +--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp ++++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp +@@ -920,6 +920,9 @@ bool tools::isTLSDESCEnabled(const ToolChain &TC, + } else if (Triple.isX86()) { + SupportedArgument = V == "gnu" || V == "gnu2"; + EnableTLSDESC = V == "gnu2"; ++ } else if( Triple.isGPU()) { ++ // HACK To fix the offload build. ++ return false; + } else { + Unsupported = true; + } +-- +2.49.0 + diff --git a/0001-sanitizer_common-Disable-termio-ioctls-on-PowerPC.patch b/0001-sanitizer_common-Disable-termio-ioctls-on-PowerPC.patch deleted file mode 100644 index f44d6cb..0000000 --- a/0001-sanitizer_common-Disable-termio-ioctls-on-PowerPC.patch +++ /dev/null @@ -1,51 +0,0 @@ -From be7b1ef7c8e58b454e20f7f70d0e316528e2c823 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Tue, 29 Apr 2025 21:35:57 +0000 -Subject: [PATCH] [sanitizer_common] Disable termio ioctls on PowerPC - -glibc-2.42 removed the termio.h header, but there are refrences to it -still in the kernel's ioctl.h, so we need disable these ioctls to fix -this build. ---- - .../sanitizer_platform_limits_posix.cpp | 14 +++++++++++--- - 1 file changed, 11 insertions(+), 3 deletions(-) - -diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp -index 7a89bf1c7498..7b81951f82ae 100644 ---- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp -+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp -@@ -182,6 +182,12 @@ typedef struct user_fpregs elf_fpregset_t; - #include - #endif - -+// Work around struct termio usage in ioctl.h on ppc64le. -+#if SANITIZER_GLIBC && !__has_include() && defined(__powerpc64__) -+ #define DISABLE_TERMIO_IOCTLS 1 -+#endif -+ -+ - // Include these after system headers to avoid name clashes and ambiguities. - # include "sanitizer_common.h" - # include "sanitizer_internal_defs.h" -@@ -779,13 +785,15 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); - unsigned IOCTL_SOUND_PCM_WRITE_FILTER = SOUND_PCM_WRITE_FILTER; - #endif // SOUND_VERSION - unsigned IOCTL_TCFLSH = TCFLSH; -+#if !defined(DISABLE_TERMIO_IOCTLS) - unsigned IOCTL_TCGETA = TCGETA; -- unsigned IOCTL_TCGETS = TCGETS; -- unsigned IOCTL_TCSBRK = TCSBRK; -- unsigned IOCTL_TCSBRKP = TCSBRKP; - unsigned IOCTL_TCSETA = TCSETA; - unsigned IOCTL_TCSETAF = TCSETAF; - unsigned IOCTL_TCSETAW = TCSETAW; -+#endif -+ unsigned IOCTL_TCGETS = TCGETS; -+ unsigned IOCTL_TCSBRK = TCSBRK; -+ unsigned IOCTL_TCSBRKP = TCSBRKP; - unsigned IOCTL_TCSETS = TCSETS; - unsigned IOCTL_TCSETSF = TCSETSF; - unsigned IOCTL_TCSETSW = TCSETSW; --- -2.48.1 - diff --git a/0001-sanitizer_common-Disable-termio-ioctls-on-PowerPC.patch.20 b/0001-sanitizer_common-Disable-termio-ioctls-on-PowerPC.patch.20 deleted file mode 100644 index e9facda..0000000 --- a/0001-sanitizer_common-Disable-termio-ioctls-on-PowerPC.patch.20 +++ /dev/null @@ -1,56 +0,0 @@ -From 1e49835cc5737b2dffff5923e09546b70a54f90d Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Tue, 29 Apr 2025 21:35:57 +0000 -Subject: [PATCH] [sanitizer_common] Disable termio ioctls on PowerPC - -glibc-2.42 removed the termio.h header, but there are refrences to it -still in the kernel's ioctl.h, so we need disable these ioctls to fix -this build. ---- - .../sanitizer_platform_limits_posix.cpp | 19 ++++++++++++++++--- - 1 file changed, 16 insertions(+), 3 deletions(-) - -diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp -index 10b6535499de..303c82783528 100644 ---- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp -+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp -@@ -173,6 +173,17 @@ typedef struct user_fpregs elf_fpregset_t; - #include - #endif - -+#if SANITIZER_HAIKU -+#include -+#include -+#endif -+ -+// Work around struct termio usage in ioctl.h on ppc64le. -+#if SANITIZER_GLIBC && !__has_include() && defined(__powerpc64__) -+ #define DISABLE_TERMIO_IOCTLS 1 -+#endif -+ -+ - // Include these after system headers to avoid name clashes and ambiguities. - # include "sanitizer_common.h" - # include "sanitizer_internal_defs.h" -@@ -764,13 +775,15 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); - unsigned IOCTL_SOUND_PCM_WRITE_FILTER = SOUND_PCM_WRITE_FILTER; - #endif // SOUND_VERSION - unsigned IOCTL_TCFLSH = TCFLSH; -+#if !defined(DISABLE_TERMIO_IOCTLS) - unsigned IOCTL_TCGETA = TCGETA; -- unsigned IOCTL_TCGETS = TCGETS; -- unsigned IOCTL_TCSBRK = TCSBRK; -- unsigned IOCTL_TCSBRKP = TCSBRKP; - unsigned IOCTL_TCSETA = TCSETA; - unsigned IOCTL_TCSETAF = TCSETAF; - unsigned IOCTL_TCSETAW = TCSETAW; -+#endif -+ unsigned IOCTL_TCGETS = TCGETS; -+ unsigned IOCTL_TCSBRK = TCSBRK; -+ unsigned IOCTL_TCSBRKP = TCSBRKP; - unsigned IOCTL_TCSETS = TCSETS; - unsigned IOCTL_TCSETSF = TCSETSF; - unsigned IOCTL_TCSETSW = TCSETSW; --- -2.48.1 - diff --git a/446.patch b/446.patch deleted file mode 100644 index ce99301..0000000 --- a/446.patch +++ /dev/null @@ -1,235 +0,0 @@ -From 595c2a20d256bf8e3b2ac8687c0029b42e64878d Mon Sep 17 00:00:00 2001 -From: Nikita Popov -Date: Jun 13 2025 08:46:26 +0000 -Subject: Invert symlink direction - - -This is an alternative to: -https://src.fedoraproject.org/rpms/llvm/pull-request/439. - -Instead of undoing the prefix change completely, this instead inverts -the direction of the symlinks: The non-compat package ships all the -files in the default prefix, but has symlinks from the versioned -prefix to the default prefix. - -The implementation approach is to install everything into the -versioned prefix first (keeping things unified between compat and -non-compat build initially) and to then move and symlink in -post-processing. - -The llvm-config setup here stays the same as it currently is, -with llvm-config executables being installed in the versioned -prefix, while the one in the default prefix is managed by -alternatives. This patch does not fix the issues with alternatives -handling, we'd apply https://src.fedoraproject.org/rpms/llvm/pull-request/417 -on top of this patch for that. - -Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2365079. - ---- - -diff --git a/Makefile b/Makefile -index ced0465..242e15d 100644 ---- a/Makefile -+++ b/Makefile -@@ -4,7 +4,7 @@ - # Tweak this to centos-stream-9-x86_64 to build for CentOS - MOCK_CHROOT?=fedora-rawhide-x86_64 - MOCK_OPTS?= --MOCK_OPTS_RELEASE?=--no-clean --no-cleanup-after --without lto_build --define "debug_package %{nil}" $(MOCK_OPTS) -+MOCK_OPTS_RELEASE?=--no-clean --no-cleanup-after --without lto_build --without pgo --define "debug_package %{nil}" $(MOCK_OPTS) - MOCK_OPTS_SNAPSHOT?=$(MOCK_OPTS_RELEASE) --with snapshot_build $(MOCK_OPTS) - YYYYMMDD?=$(shell date +%Y%m%d) - SOURCEDIR=$(shell pwd) -diff --git a/llvm.spec b/llvm.spec -index 9d9e5d7..dcdef08 100644 ---- a/llvm.spec -+++ b/llvm.spec -@@ -316,7 +316,7 @@ - #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: 7%{?dist} -+Release: 8%{?dist} - Summary: The Low Level Virtual Machine - - License: Apache-2.0 WITH LLVM-exception OR NCSA -@@ -1330,8 +1330,15 @@ popd - -DCLANG_INCLUDE_TESTS:BOOL=ON \\\ - -DCLANG_PLUGIN_SUPPORT:BOOL=ON \\\ - -DCLANG_REPOSITORY_STRING="%{?dist_vendor} %{version}-%{release}" \\\ -- -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR=../clang-tools-extra \\\ -+ -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR=../clang-tools-extra -+ -+%if %{with compat_build} -+%global cmake_config_args %{cmake_config_args} \\\ - -DCLANG_RESOURCE_DIR=../../../lib/clang/%{maj_ver} -+%else -+%global cmake_config_args %{cmake_config_args} \\\ -+ -DCLANG_RESOURCE_DIR=../lib/clang/%{maj_ver} -+%endif - #endregion clang options - - #region compiler-rt options -@@ -1938,8 +1945,12 @@ rm -Rvf %{buildroot}%{install_datadir}/clang-doc - # 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 -+%if %{without compat_build} -+# Move clang resource directory to default prefix. -+mkdir -p %{buildroot}%{_prefix}/lib/clang -+mv %{buildroot}%{install_prefix}/lib/clang/%{maj_ver} %{buildroot}%{_prefix}/lib/clang/%{maj_ver} -+%endif -+# Create any missing sub-directories in the clang resource directory. - mkdir -p %{buildroot}%{_prefix}/lib/clang/%{maj_ver}/{bin,include,lib,share}/ - - # Add versioned resource directory macro -@@ -2025,7 +2036,7 @@ rmdir %{buildroot}%{install_prefix}/%{_lib}/python%{python3_version} - - # python: fix binary libraries location - liblldb=$(basename $(readlink -e %{buildroot}%{install_libdir}/liblldb.so)) --ln -vsf "../../../llvm%{maj_ver}/lib/${liblldb}" %{buildroot}%{python3_sitearch}/lldb/_lldb.so -+ln -vsf "../../../${liblldb}" %{buildroot}%{python3_sitearch}/lldb/_lldb.so - %py_byte_compile %{__python3} %{buildroot}%{python3_sitearch}/lldb - %endif - %endif -@@ -2066,62 +2077,69 @@ popd - rm -f %{buildroot}%{install_libdir}/libLLVMBOLT*.a - #endregion BOLT installation - --# Create symlinks from the system install prefix to the llvm install prefix. -+# Move files from src to dest and replace the old files in src with relative -+# symlinks. -+move_and_replace_with_symlinks() { -+ local src="$1" -+ local dest="$2" -+ mkdir -p "$dest" -+ -+ # Change to source directory to simplify relative paths -+ (cd "$src" && \ -+ find * -type d -exec mkdir -p "$dest/{}" \; && \ -+ find * \( -type f -o -type l \) -exec mv "$src/{}" "$dest/{}" \; \ -+ -exec ln -s --relative "$dest/{}" "$src/{}" \;) -+} -+ -+%if %{without compat_build} -+# Move files from the llvm prefix to the system prefix and replace them with -+# symlinks. We do it this way around because symlinks between multilib packages -+# would conflict otherwise. -+move_and_replace_with_symlinks %{buildroot}%{install_bindir} %{buildroot}%{_bindir} -+move_and_replace_with_symlinks %{buildroot}%{install_libdir} %{buildroot}%{_libdir} -+move_and_replace_with_symlinks %{buildroot}%{install_libexecdir} %{buildroot}%{_libexecdir} -+move_and_replace_with_symlinks %{buildroot}%{install_includedir} %{buildroot}%{_includedir} -+move_and_replace_with_symlinks %{buildroot}%{install_datadir} %{buildroot}%{_datadir} -+%endif -+ -+# Create versioned symlinks for binaries. - # Do this at the end so it includes any files added by preceding steps. - mkdir -p %{buildroot}%{_bindir} - for f in %{buildroot}%{install_bindir}/*; do - filename=`basename $f` -- if [[ "$filename" == "clang-%{maj_ver}" ]]; then -+ if [[ "$filename" =~ ^(lit|ld|clang-%{maj_ver})$ ]]; then - continue - fi -- # Add symlink for binaries with version suffix. -- ln -s ../../%{install_bindir}/$filename %{buildroot}/%{_bindir}/$filename-%{maj_ver} -- # For non-compat builds, also add a symlink without version suffix. -- %if %{without compat_build} -- ln -s ../../%{install_bindir}/$filename %{buildroot}/%{_bindir}/$filename -+ %if %{with compat_build} -+ ln -s ../../%{install_bindir}/$filename %{buildroot}/%{_bindir}/$filename-%{maj_ver} -+ %else -+ # clang-NN is already created by the build system. -+ if [[ "$filename" == "clang" ]]; then -+ continue -+ fi -+ ln -s $filename %{buildroot}/%{_bindir}/$filename-%{maj_ver} - %endif - done - --# Move man pages to system install prefix. - mkdir -p %{buildroot}%{_mandir}/man1 - for f in %{buildroot}%{install_mandir}/man1/*; do - filename=`basename $f` - filename=${filename%.1} -- mv $f %{buildroot}%{_mandir}/man1/$filename-%{maj_ver}.1 -- %if %{without compat_build} -- ln -s $filename-%{maj_ver}.1 %{buildroot}%{_mandir}/man1/$filename.1 -+ %if %{with compat_build} -+ # Move man pages to system install prefix. -+ mv $f %{buildroot}%{_mandir}/man1/$filename-%{maj_ver}.1 -+ %else -+ # Create suffixed symlink. -+ ln -s $filename.1 %{buildroot}%{_mandir}/man1/$filename-%{maj_ver}.1 - %endif - done --rmdir %{buildroot}%{install_mandir}/man1 --rmdir %{buildroot}%{install_mandir} -+rm -rf %{buildroot}%{install_mandir} - -+# As an exception, always keep llvm-config in the versioned prefix. -+# The llvm-config in the default prefix will be managed by alternatives. - %if %{without compat_build} --# We don't create directory symlinks, because RPM does not support --# switching between a directory and a symlink, causing upgrade/downgrade issues. --# Instead, recursively copy the directories while creating symlinks. --copy_with_relative_symlinks() { -- local src="$1" -- local dest="$2" -- mkdir -p "$dest" -- -- # Change to source directory to simplify relative paths -- (cd "$src" && \ -- find * -type d -exec mkdir -p "$dest/{}" \; && \ -- find * \( -type f -o -type l \) -exec ln -s --relative "$src/{}" "$dest/{}" \;) --} -- --# Add symlinks for libraries. --copy_with_relative_symlinks %{buildroot}%{install_libdir} %{buildroot}%{_libdir} --copy_with_relative_symlinks %{buildroot}%{install_libexecdir} %{buildroot}%{_libexecdir} --copy_with_relative_symlinks %{buildroot}%{install_includedir} %{buildroot}%{_includedir} --copy_with_relative_symlinks %{buildroot}%{install_datadir} %{buildroot}%{_datadir} -- --%if %{maj_ver} >= 21 && %{with offload} --# Remove offload libaries since we only want to ship these in the configured --# install prefix. --rm -Rf %{buildroot}%{_libdir}/amdgcn-amd-amdhsa --rm -Rf %{buildroot}%{_libdir}/nvptx64-nvidia-cuda --%endif -+rm %{buildroot}%{install_bindir}/llvm-config -+mv %{buildroot}%{_bindir}/llvm-config %{buildroot}%{install_bindir}/llvm-config - %endif - - # ghost presence for llvm-config, managed by alternatives. -@@ -3164,10 +3182,12 @@ fi - libomptarget-nvptx*.bc - }} - %else --%{install_libdir}/amdgcn-amd-amdhsa/libompdevice.a --%{install_libdir}/amdgcn-amd-amdhsa/libomptarget-amdgpu.bc --%{install_libdir}/nvptx64-nvidia-cuda/libompdevice.a --%{install_libdir}/nvptx64-nvidia-cuda/libomptarget-nvptx.bc -+%{expand_libs %{expand: -+ amdgcn-amd-amdhsa/libompdevice.a -+ amdgcn-amd-amdhsa/libomptarget-amdgpu.bc -+ nvptx64-nvidia-cuda/libompdevice.a -+ nvptx64-nvidia-cuda/libomptarget-nvptx.bc -+}} - %endif - - %expand_includes offload -@@ -3403,6 +3423,10 @@ fi - - #region changelog - %changelog -+* Tue Jun 10 2025 Nikita Popov - 20.1.6-8 -+- Invert symlink direction -+- Fix i686 multilib installation (rhbz#2365079) -+ - * Thu Jun 05 2025 Timm Bäder - 20.1.6-7 - - Backport patch to fix rhbz#2363895 - - diff --git a/README b/README deleted file mode 100644 index 628db21..0000000 --- a/README +++ /dev/null @@ -1,5 +0,0 @@ -This is the dist-git repo for llvm. - -The master branch is unused. Use an existing branch instead. - -See rhpkg --help for more information. diff --git a/changelog b/changelog new file mode 100644 index 0000000..6a50205 --- /dev/null +++ b/changelog @@ -0,0 +1,1013 @@ +* Mon Jul 28 2025 Paul Murphy - 20.1.8-3 +- Backport fix for pgo optimized rust toolchain on ppc64le (rhbz#2382683) +- Backport fix for crbit spill miscompile on ppc64le power9 and power10 (rhbz#2383037) +- Backport fix for build of highway package on ppc64le (rhbz#2383182) + +* Thu Jul 24 2025 Fedora Release Engineering - 20.1.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Wed Jul 09 2025 Nikita Popov - 20.1.8-1 +- Update to LLVM 20.1.8 + +* Fri Jun 20 2025 Kashyap Chamarthy - 20.1.7-2 +- Add riscv64 enablement bits; thanks: Songsong Zhang + (U2FsdGVkX1@gmail.com) and David Abdurachmanov (davidlt@rivosinc.com) + +* Thu Jun 19 2025 Nikita Popov - 20.1.7-1 +- Update to LLVM 20.1.7 + +* Tue Jun 17 2025 Nikita Popov - 20.1.6-10 +- Fix llvm-config alternatives handling (rhbz#2361779) + +* Mon Jun 16 2025 Nikita Popov - 20.1.6-9 +- Use libdir suffix in versioned prefix + +* Tue Jun 10 2025 Nikita Popov - 20.1.6-8 +- Invert symlink direction +- Fix i686 multilib installation (rhbz#2365079) + +* Thu Jun 05 2025 Timm Bäder - 20.1.6-7 +- Backport patch to fix rhbz#2363895 + +* Wed Jun 04 2025 Python Maint - 20.1.6-6 +- Rebuilt for Python 3.14 + +* Wed Jun 04 2025 Python Maint - 20.1.6-5 +- Bootstrap for Python 3.14 + +* Wed Jun 04 2025 Python Maint - 20.1.6-4 +- Rebuilt for Python 3.14 + +* Tue Jun 03 2025 Tulio Magno Quites Machado Filho - 20.1.6-3 +- Remove temporary changes on ppc64le + +* Tue Jun 03 2025 Python Maint - 20.1.6-2 +- Rebuilt for Python 3.14 + +* Fri May 30 2025 Nikita Popov - 20.1.6-1 +- Update to LLVM 20.1.6 + +* Mon May 26 2025 Konrad Kleine - 20.1.5-2 +- Build with PGO + +* Thu May 22 2025 Nikita Popov - 20.1.5-1 +- Update to LLVM 20.1.5 + +* Tue May 06 2025 Tom Stellard - 20.1.4-6 +- Fix build on ppc64le with glibc >= 2.42 + +* Tue May 06 2025 Nikita Popov - 20.1.4-5 +- Update to LLVM 20.1.4 + +* Sat Apr 26 2025 Tom Stellard - 20.1.3-2 +- Fix build with glibc >= 2.42 + +* Thu Apr 17 2025 Nikita Popov - 20.1.3-1 +- Update to LLVM 20.1.3 + +* Fri Apr 04 2025 Tom Stellard - 20.1.2-5 +- Drop ARM and Mips targets on RHEL + +* Thu Apr 03 2025 Timm Bäder - 20.1.2-4 +- Remove gpu-loader binaries + +* Thu Apr 03 2025 Nikita Popov - 20.1.2-3 +- Update to LLVM 20.1.2 + +* Tue Apr 01 2025 Miro Hrončok - 20.1.1-2 +- Drop redundant runtime requirement on python3-setuptools from python3-lit + +* Wed Mar 19 2025 Nikita Popov - 20.1.1-1 +- Update to LLVM 20.1.1 + +* Tue Mar 18 2025 Nikita Popov - 20.1.0-2 +- Move clang-scan-deps to clang package (rhbz#2353000) + +* Wed Mar 05 2025 Nikita Popov - 20.1.0-1 +- Update to LLVM 20.1.0 + +* Thu Feb 27 2025 Nikita Popov - 20.1.0~rc3-1 +- Update to LLVM 20 rc 3 + +* Tue Feb 25 2025 Nikita Popov - 19.1.7-11 +- Add clang-devel -> llvm-devel dep (rhbz#2342979) + +* Thu Feb 20 2025 Yaakov Selkowitz - 19.1.7-10 +- Do not rely on alternatives path + +* Fri Feb 14 2025 Nikita Popov - 19.1.7-9 +- Rename llvm-resource-filesystem -> llvm-filesystem + +* Wed Feb 12 2025 Nikita Popov - 19.1.7-8 +- Backport bolt fix (rhbz#2344830) + +* Wed Feb 12 2025 Nikita Popov - 19.1.7-7 +- Introduce llvm-resource-filesystem + +* Tue Feb 04 2025 Nikita Popov - 19.1.7-6 +- Don't use directory symlinks + +* Fri Jan 31 2025 Konrad Kleine - 19.1.7-5 +- Address installability issue with directories that were turned into symlinks + +* Thu Jan 30 2025 Josh Stone - 19.1.7-4 +- Fix an isel error triggered by Rust 1.85 on s390x + +* Wed Jan 22 2025 Konrad Kleine - 19.1.7-3 +- Add polly + +* Mon Jan 20 2025 Konrad Kleine - 19.1.7-2 +- Add bolt + +* Mon Jan 20 2025 Timm Bäder - 19.1.7-1 +- Update to 19.1.7 + +* Fri Jan 17 2025 Fedora Release Engineering - 19.1.6-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Tue Dec 24 2024 Konrad Kleine - 19.1.6-3 +- Add libcxx + +* Thu Dec 19 2024 Nikita Popov - 19.1.6-2 +- Fix mlir exports + +* Wed Dec 18 2024 Timm Bäder - 19.1.6-1 +- Update to 19.1.6 + +* Fri Dec 06 2024 Konrad Kleine - 19.1.5-3 +- Fix mlir and openmp tests +- Disable libomp tests on s390x RHEL entirely. + +* Wed Dec 04 2024 Konrad Kleine - 19.1.5-2 +- Add mlir + +* Tue Dec 03 2024 Timm Bäder - 19.1.5-1 +- Update to 19.1.5 + +* Tue Nov 26 2024 Tulio Magno Quites Machado Filho - 19.1.4-2 +- Enable LLVM_ENABLE_ZSTD (rhbz#2321848) + +* Thu Nov 21 2024 Timm Bäder - 19.1.4-1 +- Update to 19.1.4 + +* Tue Nov 19 2024 Konrad Kleine - 19.1.3-4 +- Remove HTML documentation +- Add lldb man pages + +* Mon Nov 18 2024 Josh Stone - 19.1.3-3 +- Fix profiling after a binutils NOTE change (rhbz#2322754) + +* Mon Nov 18 2024 Timm Bäder - 19.1.3-2 +- Install i386 config files on x86_64 + +* Tue Nov 05 2024 Timm Bäder - 19.1.3-1 +- Update to 19.1.3 + +* Tue Sep 24 2024 Maxwell G - 19.1.0-2 +- Add 'Provides: clangd' to the clang-tools-extra subpackage + +* Thu Sep 19 2024 Timm Bäder - 19.1.0-1 +- Update to LLVM 19.1.0 + +* Thu Jul 18 2024 Fedora Release Engineering - 18.1.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu Jul 11 2024 Jesus Checa Hidalgo - 18.1.8-1 +- Update to LLVM 18.1.8 + +* Fri Jun 07 2024 Tom Stellard - 18.1.7-1 +- 18.1.7 Release + +* Tue May 28 2024 Nikita Popov - 18.1.6-2 +- Fix use after free on ppc64le (rhbz#2283525) + +* Sat May 18 2024 Tom Stellard - 18.1.6-1 +- 18.1.6 Release + +* Tue May 14 2024 Tom Stellard - 18.1.3-2 +- Backport fix for rhbz#2275090 + +* 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 Zhengyu He - 18.1.2-2 +- Add support for riscv64 + +* 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/cmake-15.0.7.src.tar.xz.sig b/cmake-15.0.7.src.tar.xz.sig deleted file mode 100644 index 95cf13c..0000000 Binary files a/cmake-15.0.7.src.tar.xz.sig and /dev/null differ diff --git a/gating.yaml b/gating.yaml index d9959d5..f0c9afb 100644 --- a/gating.yaml +++ b/gating.yaml @@ -1,19 +1,31 @@ --- !Policy product_versions: - fedora-* -decision_context: bodhi_update_push_testing +decision_contexts: + - bodhi_update_push_testing + - bodhi_update_push_stable + - bodhi_update_push_stable_critpath +subject_type: koji_build rules: - - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./tests/build-gating.functional} + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./tests/lld-alternatives.functional} + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.installability.functional} --- !Policy product_versions: - - fedora-* -decision_context: bodhi_update_push_stable + # The version number here should match the current rawhide release. + - fedora-44 +decision_contexts: + - bodhi_update_push_stable + - bodhi_update_push_stable_critpath rules: - - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.rpmdeplint.functional} + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./tests/kernel-ark-build.functional} --- !Policy product_versions: - rhel-9 + - rhel-10 decision_context: osci_compose_gate rules: - - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier0.functional} + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier0-tmt-x86_64-aarch64.functional} + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier0-tmt-s390x-ppc64le.functional} - !PassingTestCaseRule {test_case_name: osci.brew-build.rebuild.validation} diff --git a/llvm-14.0.0.src.tar.xz.sig b/llvm-14.0.0.src.tar.xz.sig deleted file mode 100644 index 923b7ee..0000000 Binary files a/llvm-14.0.0.src.tar.xz.sig and /dev/null differ diff --git a/llvm-15.0.7.src.tar.xz.sig b/llvm-15.0.7.src.tar.xz.sig deleted file mode 100644 index bd05718..0000000 Binary files a/llvm-15.0.7.src.tar.xz.sig and /dev/null differ diff --git a/llvm.rpmlintrc b/llvm.rpmlintrc index 9fc0be6..de8f68f 100644 --- a/llvm.rpmlintrc +++ b/llvm.rpmlintrc @@ -1,2 +1,49 @@ +## LLVM ############################################################# + # 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") + +## COMPILER-RT ###################################################### + +# This is a devel package +addFilter("W: devel-file-in-non-devel-package") + +# These symlinks are dangling on x64_64 +addFilter("compiler-rt.x86_64: W: dangling-relative-symlink /usr/lib64/clang/[0-9]+.[0-9]+.[0-9]+/") + +addFilter("E: hardcoded-library-path in ../../lib/clang/") + + +## LIBOMP ########################################################### + + + +## CLANG ############################################################ + +clang needs libstdc++-devel installed in order to compile c++ programs. + +addFilter("E: devel-dependency libstdc\+\+-devel") + +addFilter("E: explicit-lib-dependency libstdc\+\+-devel") + +# clang installs libear to /usr/lib on all arches, so we have to use + +# a hard-coded /usr/lib path in order to move it to the python3 sitelib. + +addFilter("E: hardcoded-library-path in %{_prefix}/lib/{libear") diff --git a/llvm.spec b/llvm.spec index be7f147..e821f75 100644 --- a/llvm.spec +++ b/llvm.spec @@ -1,9 +1,9 @@ #region globals #region version -%global maj_ver 20 +%global maj_ver 21 %global min_ver 1 -%global patch_ver 8 -#global rc_ver 3 +%global patch_ver 4 +#global rc_ver rc3 %bcond_with snapshot_build %if %{with snapshot_build} @@ -24,12 +24,12 @@ %bcond_with compat_build # Bundle compat libraries for a previous LLVM version, as part of llvm-libs and # clang-libs. Used on RHEL. -%bcond_with bundle_compat_lib +%bcond_without bundle_compat_lib %bcond_without check %if %{with bundle_compat_lib} -%global compat_maj_ver 19 -%global compat_ver %{compat_maj_ver}.1.7 +%global compat_maj_ver 20 +%global compat_ver %{compat_maj_ver}.1.8 %endif # Compat builds do not include python-lit @@ -41,7 +41,26 @@ %bcond_without lldb -%if %{without compat_build} && 0%{?fedora} >= 41 +%ifarch ppc64le +%if %{defined rhel} && 0%{?rhel} < 10 +# RHEL <= 9 use the IBM long double format, which is not supported by libc. +# Since LLVM 21, parts of libc are required in order to build offload. +%bcond_with offload +%else +%bcond_without offload +%endif +%else +%ifarch %{ix86} +# libomptarget is not supported on 32-bit systems. +%bcond_with offload +%else +%bcond_without offload +%endif +%endif + +# MLIR version 22 started to require nanobind >= 2.9, which is only available +# on Fedora >= 44. +%if %{without compat_build} && %{defined fedora} && (%{maj_ver} < 22 || 0%{?fedora} >= 44) %ifarch %{ix86} %bcond_with mlir %else @@ -51,10 +70,69 @@ %bcond_with mlir %endif +#region flang +%if %{without compat_build} && %{defined fedora} && (%{maj_ver} >= 22 && 0%{?fedora} >= 44) +# Link error on i686. +# s390x is not supported upstream yet. +%ifarch i686 s390x +%bcond_with flang +%else +%bcond_without flang +%endif +%endif + +%if %{with flang} + +# Sanity check for flang +# flang depends on mlir, clang, flang, openmp. +# Make sure those are being built. +%if %{without mlir} +%{error:flang must be built --with=mlir} +%endif + +# Set Fortran build flags to nil because they contain flags that don't apply to flang. +%global build_fflags %{nil} + +%{lua: + +-- Return the maximum number of parallel jobs a build can run based on the +-- amount of maximum memory used per process (per_proc_mem). +function print_max_procs(per_proc_mem) + local f = io.open("/proc/meminfo", "r") + local mem = 0 + local nproc_str = nil + for line in f:lines() do + _, _, mem = string.find(line, "MemTotal:%s+(%d+)%s+kB") + if mem then + break + end + end + f:close() + + local proc_handle = io.popen("nproc") + _, _, nproc_str = string.find(proc_handle:read("*a"), "(%d+)") + proc_handle:close() + local nproc = tonumber(nproc_str) + if nproc < 1 then + nproc = 1 + end + local mem_mb = mem / 1024 + local cpu = math.floor(mem_mb / per_proc_mem) + if cpu < 1 then + cpu = 1 + end + + if cpu > nproc then + cpu = nproc + end + print(cpu) +end +} +%endif +#endregion flang + # The libcxx build condition also enables libcxxabi and libunwind. -# Fedora 41 is the first version that enabled FatLTO for clang-built files. -# Without FatLTO, we can't enable ThinLTO and link using GNU LD. -%if %{without compat_build} && 0%{?fedora} >= 41 +%if %{without compat_build} && %{defined fedora} %bcond_without libcxx %else %bcond_with libcxx @@ -62,7 +140,7 @@ # I've called the build condition "build_bolt" to indicate that this does not # necessarily "use" BOLT in order to build LLVM. -%if %{without compat_build} && 0%{?fedora} >= 41 +%if %{without compat_build} && %{defined fedora} # BOLT only supports aarch64 and x86_64 %ifarch aarch64 x86_64 %bcond_without build_bolt @@ -73,25 +151,75 @@ %bcond_with build_bolt %endif -%if %{without compat_build} && 0%{?fedora} >= 41 +%if %{without compat_build} && %{defined fedora} %bcond_without polly %else %bcond_with polly %endif +#region pgo +%ifarch %{ix86} +%bcond_with pgo +%else +%if 0%{?fedora} >= 43 || 0%{?rhel} >= 9 +%bcond_without pgo +%else +%bcond_with pgo +%endif +%endif + +# We only want to run the performance comparison on snapshot builds. +# centos-streams/RHEL do not have all the requirements. We tried to use pip, +# but we've seen issues on some architectures. We're now restricting this +# to Fedora. +%if %{with pgo} && %{with snapshot_build} && %{defined fedora} +%global run_pgo_perf_comparison 1 +%else +%global run_pgo_perf_comparison %{nil} +%endif + +# Sanity checks for PGO and bootstrapping +#---------------------------------------- +%if %{with pgo} +%ifarch %{ix86} +%{error:Your architecture is not allowed for PGO because it is in this list: %{ix86}} +%endif +%endif +#---------------------------------------- +#endregion pgo + # Disable LTO on x86 and riscv in order to reduce memory consumption. %ifarch %ix86 riscv64 %bcond_with lto_build %else +%if %{defined rhel} && 0%{?rhel} <= 8 +# LTO builds got enabled on Fedora and RHEL >= 9 only. +%bcond_with lto_build +%else %bcond_without lto_build %endif +%endif -%if %{without lto_build} +# Historically, LLD was used used at the same combinations that enabled PGO. +# If this changes, we need to update the following lines. +# However, we should be able to link using LLD even if PGO is disabled. +# Reminder: RHEL8 still builds with gcc + ld.bfd. +%if %{with pgo} +%bcond_without use_lld +%else +# RHEL8 still builds with gcc + ld.bfd. +%bcond_with use_lld +%endif + +# For PGO Disable LTO for now because of LLVMgold.so not found error +# Use LLVM_ENABLE_LTO:BOOL=ON flags to enable LTO instead +%if 0%{without lto_build} || 0%{with pgo} %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 +# Reminder: This only works on Fedora and RHEL >= 9. %global toolchain clang # Make sure that we are not building with a newer compiler than the targeted @@ -122,19 +250,30 @@ # https://bugzilla.redhat.com/show_bug.cgi?id=2158587 %undefine _include_frame_pointers +# Opt out of https://fedoraproject.org/wiki/Changes/StaticLibraryPreserveDebuginfo +# Debuginfo for LLVM static libraries is huge. +%undefine _preserve_static_debuginfo +# Also make sure find-debuginfo does not waste time on these archives. +# https://bugzilla.redhat.com/show_bug.cgi?id=2390105 +%if 0%{?fedora} >= 43 +%define _find_debuginfo_opts --no-ar-files +%endif + # 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 +%global src_tarball_dir llvm-project-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:-%{rc_ver}}.src %endif -%global has_crtobjs 1 -%if %{maj_ver} < 21 -%ifarch s390x -%global has_crtobjs 0 -%endif -%endif +# LLD uses "fast" as the algortithm for generating build-id +# values while ld.bfd uses "sha1" by default. We need to get lld +# to use the same algorithm or otherwise we end up with errors like thise one: +# +# "build-id found in [...]/usr/lib64/llvm21/bin/llvm-debuginfod-find too small" +# +# NOTE: Originally this is only needed for PGO but it doesn't hurt to have it on all the time. +%global build_ldflags %{?build_ldflags} -Wl,--build-id=sha1 #region LLVM globals @@ -161,7 +300,7 @@ %global unprefixed_libdir %{_lib} %if 0%{?rhel} -%global targets_to_build "X86;AMDGPU;PowerPC;NVPTX;SystemZ;AArch64;BPF;WebAssembly" +%global targets_to_build "X86;AMDGPU;PowerPC;NVPTX;SystemZ;AArch64;BPF;WebAssembly;RISCV" %global experimental_targets_to_build "" %else %global targets_to_build "all" @@ -246,13 +385,28 @@ #region polly globals %global pkg_name_polly polly%{pkg_suffix} #endregion polly globals + +#region PGO globals +%if 0%{run_pgo_perf_comparison} +%global llvm_test_suite_dir %{_datadir}/llvm-test-suite +%endif +#endregion PGO globals + +#region flang globals +%global pkg_name_flang flang%{pkg_suffix} +#endregion flang 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: 2%{?dist} +Version: %{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:~%{rc_ver}}%{?llvm_snapshot_version_suffix:~%{llvm_snapshot_version_suffix}} +%if 0%{?rhel} == 8 +Release: 1%{?dist} +%else +Release: %autorelease +%endif Summary: The Low Level Virtual Machine License: Apache-2.0 WITH LLVM-exception OR NCSA @@ -261,8 +415,8 @@ 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 +Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:-%{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_ver}}/%{src_tarball_dir}.tar.xz.sig %endif Source6: release-keys.asc @@ -281,6 +435,9 @@ Source3001: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{com Source1000: version.spec.inc %endif +# Only used on RHEL-8, where rpmautospec is not available. +Source1001: changelog + # We've established the habit of numbering patches the following way: # # 0-499: All patches that are unconditionally applied @@ -310,9 +467,6 @@ Source1000: version.spec.inc Patch101: 0001-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch Patch102: 0003-PATCH-clang-Don-t-install-static-libraries.patch Patch2002: 20-131099.patch -# Can be removed if https://github.com/llvm/llvm-project/pull/131099 lands in v21: -Patch2102: 20-131099.patch -#endregion CLANG patches # Workaround a bug in ORC on ppc64le. # More info is available here: https://reviews.llvm.org/D159115#4641826 @@ -323,13 +477,8 @@ Patch103: 0001-Workaround-a-bug-in-ORC-on-ppc64le.patch Patch104: 0001-Driver-Give-devtoolset-path-precedence-over-Installe.patch #endregion CLANG patches -# Fix for glibc >= 2.42 on ppc64le -Patch2008: 0001-sanitizer_common-Disable-termio-ioctls-on-PowerPC.patch.20 -Patch2108: 0001-sanitizer_common-Disable-termio-ioctls-on-PowerPC.patch - # Fix LLVMConfig.cmake when symlinks are used. # (https://github.com/llvm/llvm-project/pull/124743 landed in LLVM 21) -Patch1902: 0001-cmake-Resolve-symlink-when-finding-install-prefix.patch Patch2003: 0001-cmake-Resolve-symlink-when-finding-install-prefix.patch #region LLD patches @@ -337,31 +486,38 @@ Patch106: 0001-19-Always-build-shared-libs-for-LLD.patch #endregion LLD patches #region polly patches -Patch2001: 0001-20-polly-shared-libs.patch -Patch2101: 0001-20-polly-shared-libs.patch +Patch2102: 0001-20-polly-shared-libs.patch +Patch2202: 0001-22-polly-shared-libs.patch #endregion polly patches #region RHEL patches # RHEL 8 only Patch501: 0001-Fix-page-size-constant-on-aarch64-and-ppc64le.patch +# Ensure that the BPF backend does not require kfunc __bpf_trap which is not +# available on RHEL 8. +Patch502: 0001-BPF-Revert-the-behavior-when-handling-traps.patch #endregion RHEL patches -# Fix an isel error triggered by Rust 1.85 on s390x -# https://github.com/llvm/llvm-project/issues/124001 -Patch1901: 0001-SystemZ-Fix-ICE-with-i128-i64-uaddo-carry-chain.patch - # Fix a pgo miscompilation triggered by building Rust 1.87 with pgo on ppc64le. # https://github.com/llvm/llvm-project/issues/138208 Patch2004: 0001-CodeGenPrepare-Make-sure-instruction-get-from-SunkAd.patch +# Related CGP fix for domination, rhbz#2388223 +Patch2008: 0001-CGP-Bail-out-if-Base-Scaled-Reg-does-not-dominate-in.patch # Fix Power9/Power10 crbit spilling # https://github.com/llvm/llvm-project/pull/146424 -Patch108: 21-146424.patch +Patch2007: 21-146424.patch # Fix for highway package build on ppc64le Patch2005: 0001-PowerPC-Fix-handling-of-undefs-in-the-PPC-isSplatShu.patch Patch2006: 0001-Add-REQUIRES-asserts-to-test-added-in-145149-because.patch +# Fix for offload builds: The DeviceRTL libraries target device code and +# don't support the mtls-dialect flag, so we need to patch the clang driver +# to ignore it for these targets. +Patch2101: 0001-clang-Add-a-hack-to-fix-the-offload-build-with-the-m.patch +Patch2201: 0001-clang-Add-a-hack-to-fix-the-offload-build-with-the-m.patch + %if 0%{?rhel} == 8 %global python3_pkgversion 3.12 %global __python3 /usr/bin/python3.12 @@ -386,6 +542,34 @@ BuildRequires: zlib-devel BuildRequires: libzstd-devel BuildRequires: libffi-devel BuildRequires: ncurses-devel + +%if %{with pgo} +%if %{defined host_clang_maj_ver} +BuildRequires: lld(major) = %{host_clang_maj_ver} +BuildRequires: compiler-rt(major) = %{host_clang_maj_ver} +BuildRequires: llvm(major) = %{host_clang_maj_ver} +%else +BuildRequires: lld +BuildRequires: compiler-rt +BuildRequires: llvm +%endif + +%if 0%{run_pgo_perf_comparison} +BuildRequires: llvm-test-suite +BuildRequires: tcl-devel +BuildRequires: which +# pandas and scipy are needed for running llvm-test-suite/utils/compare.py +# For RHEL we have to install it from pip and for fedora we take the RPM package. +%if 0%{?rhel} +BuildRequires: python3-pip +%else +BuildRequires: python3-pandas +BuildRequires: python3-scipy +%endif +%endif + +%endif + # 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 @@ -416,8 +600,8 @@ BuildRequires: libedit-devel %endif # 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}-setuptools BuildRequires: python%{python3_pkgversion}-rpm-macros %endif @@ -472,7 +656,7 @@ 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 %{without compat_build} && ((%{defined fedora} && 0%{?fedora} < 41) || 0%{?rhel} == 9 || 0%{?rhel} == 10) +%if %{without compat_build} && (0%{?rhel} == 9 || 0%{?rhel} == 10) BuildRequires: /usr/bin/marshalparser %global py_reproducible_pyc_path %{buildroot}%{python3_sitelib} %endif @@ -513,6 +697,9 @@ lit is a tool used by the LLVM project for executing its test suites. Summary: Filesystem package that owns the versioned llvm prefix # Was renamed immediately after introduction. Obsoletes: %{pkg_name_llvm}-resource-filesystem < 20 +%if %{with compat_build} +Conflicts: llvm-filesystem < %{maj_ver}.99 +%endif %description -n %{pkg_name_llvm}-filesystem This packages owns the versioned llvm prefix directory: $libdir/llvm$version @@ -679,6 +866,9 @@ 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} +%if %{with compat_build} +Conflicts: clang-resource-filesystem < %{maj_ver}.99 +%endif %description -n %{pkg_name_clang}-resource-filesystem This package owns the clang resouce directory: $libdir/clang/$version/ @@ -829,9 +1019,9 @@ Shared libraries for LLD. %if 0%{?rhel} %package -n %{pkg_name_llvm}-toolset Summary: Package that installs llvm-toolset -Requires: clang = %{version}-%{release} -Requires: llvm = %{version}-%{release} -Requires: lld = %{version}-%{release} +Requires: %{pkg_name_clang} = %{version}-%{release} +Requires: %{pkg_name_llvm} = %{version}-%{release} +Requires: %{pkg_name_lld} = %{version}-%{release} %description -n %{pkg_name_llvm}-toolset This is the main package for llvm-toolset. @@ -865,7 +1055,6 @@ The package contains header files for the LLDB debugger. %if %{without compat_build} %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} @@ -912,7 +1101,6 @@ Requires: %{pkg_name_mlir}-static%{?_isa} = %{version}-%{release} MLIR development files. %package -n python%{python3_pkgversion}-mlir -%{?python_provide:%python_provide python%{python3_pkgversion}-mlir} Summary: MLIR python bindings Requires: python%{python3_pkgversion} @@ -1043,6 +1231,42 @@ Polly header files. %endif #endregion polly packages +#region flang packages +%if %{with flang} +%package -n %{pkg_name_flang} +Summary: a Fortran language front-end designed for integration with LLVM +Requires: %{pkg_name_flang}-runtime%{?_isa} = %{version}-%{release} +# flang installs headers in the clang resource directory +Requires: %{pkg_name_clang}-resource-filesystem%{?_isa} = %{version}-%{release} +# flang implicitly calls ld.bfd when linking and depends on the gcc runtime objects. +Requires: binutils +Requires: gcc +# Up to version 17.0.6-1, flang used to provide a flang-devel package. +# This changed in 17.0.6-2 and all development-related files are now +# distributed in the main flang package. +Obsoletes: %{pkg_name_flang}-devel < 17.0.6-2 + +# We no longer ship flang-doc. +Obsoletes: %{pkg_name_flang}-doc < 22 + +License: Apache-2.0 WITH LLVM-exception +URL: https://flang.llvm.org + +%description -n %{pkg_name_flang} + +Flang is a ground-up implementation of a Fortran front end written in modern +C++. + +%package -n %{pkg_name_flang}-runtime +Summary: Flang runtime libraries +Conflicts: %{pkg_name_flang} < 17.0.6-2 + +%description -n %{pkg_name_flang}-runtime +Flang runtime libraries. + +%endif +#endregion flang packages + #endregion packages #region prep @@ -1081,6 +1305,7 @@ Polly header files. %if %{defined rhel} && 0%{?rhel} == 8 %patch -p1 -P501 +%patch -p1 -P502 %endif #region LLVM preparation @@ -1131,6 +1356,17 @@ sed -i 's/LLDB_ENABLE_PYTHON/TRUE/' lldb/docs/CMakeLists.txt #endregion prep +#region python buildrequires +%if %{with python_lit} +%if 0%{?rhel} != 8 +%generate_buildrequires + +cd llvm/utils/lit +%pyproject_buildrequires +%endif +%endif +#endregion python buildrequires + #region build %build # TODO(kkleine): In clang we had this %ifarch s390 s390x aarch64 %ix86 ppc64le @@ -1167,6 +1403,11 @@ sed -i 's/LLDB_ENABLE_PYTHON/TRUE/' lldb/docs/CMakeLists.txt %global projects %{projects};polly %endif +%if %{with flang} +%global projects %{projects};flang +%global runtimes %{runtimes};flang-rt +%endif + %if %{with libcxx} %global runtimes %{runtimes};libcxx;libcxxabi;libunwind %endif @@ -1209,10 +1450,25 @@ export ASMFLAGS="%{build_cflags}" cd llvm +# Remember old values to reset to +OLD_PATH="$PATH" +OLD_LD_LIBRARY_PATH="$LD_LIBRARY_PATH" +OLD_CWD="$PWD" + +%global builddir_instrumented $RPM_BUILD_DIR/instrumented-llvm +%if 0%{run_pgo_perf_comparison} +%global builddir_perf_pgo $RPM_BUILD_DIR/performance-of-pgoed-clang +%global builddir_perf_system $RPM_BUILD_DIR/performance-of-system-clang +%endif + #region LLVM lit %if %{with python_lit} pushd utils/lit +%if 0%{?rhel} == 8 %py3_build +%else +%pyproject_wheel +%endif popd %endif #endregion LLVM lit @@ -1227,7 +1483,6 @@ popd # Any ABI-affecting flags should be in here. %global cmake_common_args \\\ -DCMAKE_BUILD_TYPE=RelWithDebInfo \\\ - -DLLVM_ENABLE_EH=ON \\\ -DLLVM_ENABLE_RTTI=ON \\\ -DLLVM_USE_PERF=ON \\\ -DLLVM_TARGETS_TO_BUILD=%{targets_to_build} \\\ @@ -1237,6 +1492,19 @@ popd -DCLANG_LINK_CLANG_DYLIB=ON \\\ -DLLVM_ENABLE_FFI:BOOL=ON +%if %{maj_ver} >= 22 +%global cmake_common_args %{cmake_common_args} \\\ + -DLLVM_ENABLE_EH=OFF +%else +%global cmake_common_args %{cmake_common_args} \\\ + -DLLVM_ENABLE_EH=ON +%endif + +%if %reduce_debuginfo == 1 + %global cmake_common_args %{cmake_common_args} -DCMAKE_C_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" + %global cmake_common_args %{cmake_common_args} -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" +%endif + %global cmake_config_args %{cmake_common_args} #region clang options @@ -1265,7 +1533,8 @@ popd #region compiler-rt options %global cmake_config_args %{cmake_config_args} \\\ -DCOMPILER_RT_INCLUDE_TESTS:BOOL=OFF \\\ - -DCOMPILER_RT_INSTALL_PATH=%{_prefix}/lib/clang/%{maj_ver} + -DCOMPILER_RT_INSTALL_PATH=%{_prefix}/lib/clang/%{maj_ver} \\\ + -DLLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL=ON #endregion compiler-rt options #region docs options @@ -1333,7 +1602,6 @@ popd %global cmake_config_args %{cmake_config_args} \\\ -DLLVM_APPEND_VC_REV:BOOL=OFF \\\ -DLLVM_BUILD_EXAMPLES:BOOL=OFF \\\ - -DLLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL=ON \\\ -DLLVM_BUILD_RUNTIME:BOOL=ON \\\ -DLLVM_BUILD_TOOLS:BOOL=ON \\\ -DLLVM_BUILD_UTILS:BOOL=ON \\\ @@ -1366,6 +1634,7 @@ popd -DMLIR_INSTALL_AGGREGATE_OBJECTS=OFF \\\ -DMLIR_BUILD_MLIR_C_DYLIB=ON \\\ -DMLIR_ENABLE_BINDINGS_PYTHON:BOOL=ON + %endif #endregion mlir options @@ -1373,6 +1642,26 @@ popd %global cmake_config_args %{cmake_config_args} \\\ -DOPENMP_INSTALL_LIBDIR=%{unprefixed_libdir} \\\ -DLIBOMP_INSTALL_ALIASES=OFF + +%if %{maj_ver} >= 22 && %{with offload} +# We reset the cxxflags to "" here because this is compiling for a GPU +# target, where our cflags are either questionable or actively wrong. +%global cmake_config_args %{cmake_config_args} \\\ + -DLLVM_RUNTIME_TARGETS='default;amdgcn-amd-amdhsa;nvptx64-nvidia-cuda' \\\ + -DRUNTIMES_nvptx64-nvidia-cuda_LLVM_ENABLE_RUNTIMES=openmp \\\ + -DRUNTIMES_amdgcn-amd-amdhsa_LLVM_ENABLE_RUNTIMES=openmp \\\ + -DRUNTIMES_amdgcn-amd-amdhsa_CMAKE_CXX_FLAGS="" \\\ + -DRUNTIMES_nvptx64-nvidia-cuda_CMAKE_CXX_FLAGS="" + +%if 0%{?__isa_bits} == 64 +# The following shouldn't be required, but due to a bug, we have to be +# explicit about LLVM_LIBDIR_SUFFIX for nvptx64-nvidia-cuda. +# TODO: Remove this after fixing +# https://github.com/llvm/llvm-project/issues/159762 +%global cmake_config_args %{cmake_config_args} \\\ + -DRUNTIMES_nvptx64-nvidia-cuda_LLVM_LIBDIR_SUFFIX=64 +%endif +%endif #endregion openmp options #region polly options @@ -1382,6 +1671,23 @@ popd %endif #endregion polly options +#region flang options +%if %{with flang} +%global cmake_config_args %{cmake_config_args} \\\ + -DFLANG_INCLUDE_DOCS:BOOL=ON +# Build both, shared and static flang runtime objects. +# See also https://llvm.org/devmtg/2025-04/slides/quick_talk/kruse_flang-rt.pdf +%global cmake_config_args %{cmake_config_args} \\\ + -DFLANG_RT_ENABLE_SHARED:BOOL=ON \\\ + -DFLANG_RT_ENABLE_STATIC:BOOL=ON +# The amount of RAM used per process has been set by trial and error. +# This number may increase/decrease from time to time and may require changes. +# We prefer to be on the safe side in order to avoid spurious errors. +%global cmake_config_args %{cmake_config_args} \\\ + -DFLANG_PARALLEL_COMPILE_JOBS=%{lua: print_max_procs(3072)} +%endif +#endregion flang options + #region test options %global cmake_config_args %{cmake_config_args} \\\ @@ -1391,11 +1697,7 @@ popd -DLLVM_LIT_ARGS="-vv" %if %{with lto_build} -%if 0%{?fedora} >= 41 %global cmake_config_args %{cmake_config_args} -DLLVM_UNITTEST_LINK_FLAGS="-fno-lto" -%else - %global cmake_config_args %{cmake_config_args} -DLLVM_UNITTEST_LINK_FLAGS="-Wl,-plugin-opt=O0" -%endif %endif #endregion test options @@ -1423,11 +1725,6 @@ popd %global cmake_config_args %{cmake_config_args} -DPPC_LINUX_DEFAULT_IEEELONGDOUBLE=ON %endif -%if %reduce_debuginfo == 1 - %global cmake_config_args %{cmake_config_args} -DCMAKE_C_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" - %global cmake_config_args %{cmake_config_args} -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" -%endif - %if 0%{?__isa_bits} == 64 %global cmake_config_args %{cmake_config_args} -DLLVM_LIBDIR_SUFFIX=64 %endif @@ -1453,7 +1750,11 @@ popd # This option uses the NUMBER_OF_LOGICAL_CORES query in CMake which doesn't # work on s390x. # https://gitlab.kitware.com/cmake/cmake/-/issues/26619 - %global cmake_config_args %{cmake_config_args} -DLLVM_RAM_PER_COMPILE_JOB=2048 + # The value 4096 was used after we've seen cases of memory exhaustion on a + # system with 64GiB RAM and 16 jobs. It worked a few times after applied, + # but we can't guarantee it's enough. It's important to remember that RHEL8 + # uses GCC. This value should not be applied to a build using clang. + %global cmake_config_args %{cmake_config_args} -DLLVM_RAM_PER_COMPILE_JOB=4096 %endif %endif #endregion misc options @@ -1466,7 +1767,127 @@ if grep 'flags.*la57' /proc/cpuinfo; then fi #endregion cmake options -%cmake -G Ninja %cmake_config_args $extra_cmake_args +%if %{with pgo} +#region Instrument LLVM +%global __cmake_builddir %{builddir_instrumented} + +# For -Wno-backend-plugin see https://llvm.org/docs/HowToBuildWithPGO.html +#%%global optflags_for_instrumented %(echo %{optflags} -Wno-backend-plugin) + +%global cmake_config_args_instrumented %{cmake_config_args} \\\ + -DLLVM_ENABLE_PROJECTS:STRING="clang;lld" \\\ + -DLLVM_ENABLE_RUNTIMES="compiler-rt" \\\ + -DLLVM_TARGETS_TO_BUILD=Native \\\ + -DCMAKE_BUILD_TYPE:STRING=Release \\\ + -DCMAKE_INSTALL_PREFIX=%{builddir_instrumented} \\\ + -DCLANG_INCLUDE_DOCS:BOOL=OFF \\\ + -DLLVM_BUILD_DOCS:BOOL=OFF \\\ + -DLLVM_BUILD_UTILS:BOOL=OFF \\\ + -DLLVM_ENABLE_DOXYGEN:BOOL=OFF \\\ + -DLLVM_ENABLE_SPHINX:BOOL=OFF \\\ + -DLLVM_INCLUDE_DOCS:BOOL=OFF \\\ + -DLLVM_INCLUDE_TESTS:BOOL=OFF \\\ + -DLLVM_INSTALL_UTILS:BOOL=OFF \\\ + -DCLANG_BUILD_EXAMPLES:BOOL=OFF \\\ + \\\ + -DLLVM_BUILD_INSTRUMENTED=IR \\\ + -DLLVM_BUILD_RUNTIME=No \\\ + -DLLVM_ENABLE_LTO:BOOL=Thin \\\ + -DLLVM_USE_LINKER=lld + +# CLANG_INCLUDE_TESTS=ON is needed to make the target "generate-profdata" available +%global cmake_config_args_instrumented %{cmake_config_args_instrumented} \\\ + -DCLANG_INCLUDE_TESTS:BOOL=ON + +# LLVM_INCLUDE_UTILS=ON is needed because the tests enabled by CLANG_INCLUDE_TESTS=ON +# require "FileCheck", "not", "count", etc. +%global cmake_config_args_instrumented %{cmake_config_args_instrumented} \\\ + -DLLVM_INCLUDE_UTILS:BOOL=ON + +# LLVM Profile Warning: Unable to track new values: Running out of static counters. +# Consider using option -mllvm -vp-counters-per-site= to allocate more value profile +# counters at compile time. +%global cmake_config_args_instrumented %{cmake_config_args_instrumented} \\\ + -DLLVM_VP_COUNTERS_PER_SITE=8 + +%if %{defined host_clang_maj_ver} +%global cmake_config_args_instrumented %{cmake_config_args_instrumented} \\\ + -DLLVM_PROFDATA=%{_bindir}/llvm-profdata-%{host_clang_maj_ver} +%else +%global cmake_config_args_instrumented %{cmake_config_args_instrumented} \\\ + -DLLVM_PROFDATA=%{_bindir}/llvm-profdata +%endif + +# TODO(kkleine): Should we see warnings like: +# "function control flow change detected (hash mismatch)" +# then read https://issues.chromium.org/issues/40633598 again. +%cmake -G Ninja %{cmake_config_args_instrumented} $extra_cmake_args + +# Build all the tools we need in order to build generate-profdata and llvm-profdata +%cmake_build --target libclang-cpp.so +%cmake_build --target clang +%cmake_build --target lld +%cmake_build --target llvm-ar +%cmake_build --target llvm-ranlib +#endregion Instrument LLVM + +#region Perf training +%cmake_build --target generate-profdata + +# Show top 10 functions in the profile +llvm-profdata show --topn=10 %{builddir_instrumented}/tools/clang/utils/perf-training/clang.profdata | llvm-cxxfilt + +cp %{builddir_instrumented}/tools/clang/utils/perf-training/clang.profdata $RPM_BUILD_DIR/result.profdata + +#endregion Perf training +%endif + +#region Final stage + +#region reset paths and globals +function reset_paths { + export PATH="$OLD_PATH" + export LD_LIBRARY_PATH="$OLD_LD_LIBRARY_PATH" +} +reset_paths + +cd $OLD_CWD +%global _vpath_srcdir . +%global __cmake_builddir %{_vpath_builddir} +#endregion reset paths and globals + +%global extra_cmake_opts %{nil} + +%if %{with pgo} + %global extra_cmake_opts %{extra_cmake_opts} -DLLVM_PROFDATA_FILE=$RPM_BUILD_DIR/result.profdata + # There were a couple of errors that I ran into. One basically said: + # + # Error: LLVM Profile Warning: Unable to track new values: Running out of + # static counters. Consider using option -mllvm -vp-counters-per-site= to + # allocate more value profile counters at compile time. + # + # As a solution I’ve added the --vp-counters-per-site option but this resulted + # in a follow-up error: + # + # Error: clang (LLVM option parsing): for the --vp-counters-per-site option: + # may only occur zero or one times! + # + # The solution was to modify vp-counters-per-site option through + # LLVM_VP_COUNTERS_PER_SITE instead of adding it, hence the + # -DLLVM_VP_COUNTERS_PER_SITE=8. + %global extra_cmake_opts %{extra_cmake_opts} -DLLVM_VP_COUNTERS_PER_SITE=8 +%endif + +%if 0%{with lto_build} + %global extra_cmake_opts %{extra_cmake_opts} -DLLVM_ENABLE_LTO:BOOL=Thin + %global extra_cmake_opts %{extra_cmake_opts} -DLLVM_ENABLE_FATLTO=ON +%endif + +%if 0%{with use_lld} +%global extra_cmake_opts %{extra_cmake_opts} -DLLVM_USE_LINKER=lld +%endif + +%cmake -G Ninja %{cmake_config_args} %{extra_cmake_opts} $extra_cmake_args # 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 @@ -1492,27 +1913,98 @@ fi # /usr/lib64/libomptarget.devicertl.a # /usr/lib64/libomptarget-amdgpu-*.bc # /usr/lib64/libomptarget-nvptx-*.bc - %cmake_build --target runtimes +#endregion Final stage + +#region Performance comparison +%if 0%{run_pgo_perf_comparison} + +function run_perf_test { + local build_dir=$1 + + cd %{llvm_test_suite_dir} + %__cmake -G Ninja \ + -S "%{llvm_test_suite_dir}" \ + -B "${build_dir}" \ + -DCMAKE_GENERATOR=Ninja \ + -DCMAKE_C_COMPILER=clang \ + -DCMAKE_CXX_COMPILER=clang++ \ + -DTEST_SUITE_BENCHMARKING_ONLY=ON \ + -DTEST_SUITE_COLLECT_STATS=ON \ + -DTEST_SUITE_USE_PERF=OFF \ + -DTEST_SUITE_SUBDIRS=CTMark \ + -DTEST_SUITE_RUN_BENCHMARKS=OFF \ + -DTEST_SUITE_COLLECT_CODE_SIZE=OFF \ + -C%{llvm_test_suite_dir}/cmake/caches/O3.cmake + + # Build the test-suite + %__cmake --build "${build_dir}" -j1 --verbose + + # Run the tests with lit: + %{builddir_instrumented}/bin/llvm-lit -v -o ${build_dir}/results.json ${build_dir} || true + cd $OLD_CWD +} + +# Run performance test for system clang +reset_paths +run_perf_test %{builddir_perf_system} + +# Run performance test for PGOed clang +reset_paths +FINAL_BUILD_DIR=`pwd`/%{_vpath_builddir} +export LD_LIBRARY_PATH="${FINAL_BUILD_DIR}/lib:${FINAL_BUILD_DIR}/lib64:${LD_LIBRARY_PATH}" +export PATH="${FINAL_BUILD_DIR}/bin:${OLD_PATH}" +run_perf_test %{builddir_perf_pgo} + +# Compare the performance of system and PGOed clang +%if 0%{?rhel} +python3 -m venv compare-env +source ./compare-env/bin/activate +pip install "pandas>=2.2.3" +pip install "scipy>=1.13.1" +MY_PYTHON_BIN=./compare-env/bin/python3 +%endif + +system_llvm_release=$(/usr/bin/clang --version | grep -Po '[0-9]+\.[0-9]+\.[0-9]' | head -n1) +${MY_PYTHON_BIN} %{llvm_test_suite_dir}/utils/compare.py \ + --metric compile_time \ + --lhs-name ${system_llvm_release} \ + --rhs-name pgo-%{version} \ + %{builddir_perf_system}/results.json vs %{builddir_perf_pgo}/results.json > %{builddir_perf_pgo}/results-system-vs-pgo.txt || true + +echo "Result of Performance comparison between system and PGOed clang" +cat %{builddir_perf_pgo}/results-system-vs-pgo.txt + +%if 0%{?rhel} +# Deactivate virtual python environment created ealier +deactivate +%endif +%endif +#endregion Performance comparison #region compat lib cd .. %if %{with bundle_compat_lib} + +%if %{compat_maj_ver} >= 22 +%global compat_lib_cmake_args -DLLVM_ENABLE_EH=OFF +%else +%global compat_lib_cmake_args -DLLVM_ENABLE_EH=ON +%endif + # MIPS and Arm targets were disabled in LLVM 20, but we still need them # enabled for the compat libraries. %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 \ -DLLVM_ENABLE_PROJECTS="clang;lldb" \ -DLLVM_INCLUDE_BENCHMARKS=OFF \ -DLLVM_INCLUDE_TESTS=OFF \ %{cmake_common_args} \ -%if %{compat_maj_ver} <= 19 - -DLLVM_TARGETS_TO_BUILD="$(echo %{targets_to_build});Mips;ARM" \ -%endif - %{nil} + %{compat_lib_cmake_args} + + %ninja_build -C ../llvm-compat-libs LLVM %ninja_build -C ../llvm-compat-libs libclang.so @@ -1531,7 +2023,11 @@ pushd llvm %if %{with python_lit} pushd utils/lit +%if 0%{?rhel} == 8 %py3_install +%else +%pyproject_install +%endif # Strip out #!/usr/bin/env python sed -i -e '1{\@^#!/usr/bin/env python@d}' %{buildroot}%{python3_sitelib}/lit/*.py @@ -1540,6 +2036,14 @@ popd %cmake_install +%if %{with flang} +# Create ld.so.conf.d entry +mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d +cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{pkg_name_flang}-%{_arch}.conf << EOF +%{_prefix}/lib/clang/%{maj_ver}/lib/%{llvm_triple}/ +EOF +%endif + popd mkdir -p %{buildroot}/%{_bindir} @@ -1617,6 +2121,14 @@ EOF # Add a symlink in bindir to clang-format-diff ln -s ../share/clang/clang-format-diff.py %{buildroot}%{install_bindir}/clang-format-diff +# Install the PGO profile that was used to build this LLVM into the clang package +%if 0%{with pgo} +cp -v $RPM_BUILD_DIR/result.profdata %{buildroot}%{install_datadir}/llvm-pgo.profdata +%if 0%{run_pgo_perf_comparison} +cp -v %{builddir_perf_pgo}/results-system-vs-pgo.txt %{buildroot}%{install_datadir}/results-system-vs-pgo.txt +%endif +%endif + # 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. @@ -1678,8 +2190,6 @@ rm -Rvf %{buildroot}%{install_datadir}/clang-doc # 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 %if %{without compat_build} # Move clang resource directory to default prefix. mkdir -p %{buildroot}%{_prefix}/lib/clang @@ -1713,7 +2223,8 @@ echo " %{cfg_file_content}" >> %{buildroot}%{_sysconfdir}/%{pkg_name_clang}/i386 %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} +mkdir -pv %{buildroot}%{_prefix}/lib/clang/%{maj_ver}/lib/%{llvm_triple} +mv %{buildroot}%{_prefix}/lib/clang/%{maj_ver}/lib/powerpc64le-redhat-linux-gnu/* %{buildroot}%{_prefix}/lib/clang/%{maj_ver}/lib/%{llvm_triple} %endif %ifarch %{ix86} @@ -1788,6 +2299,53 @@ rm -rf %{buildroot}%{install_prefix}/src/python %endif #endregion mlir installation +#region flang installation +%if %{with flang} +# Remove unnecessary files. +rm -rfv %{buildroot}%{install_libdir}/cmake/flang + +# Remove runtime development headers (see https://github.com/llvm/llvm-project/pull/165610) +rm -rfv %{buildroot}%{install_includedir}/flang-rt + +rm -v %{buildroot}%{install_libdir}/libFIRAnalysis.a \ + %{buildroot}%{install_libdir}/libFIRBuilder.a \ + %{buildroot}%{install_libdir}/libFIRCodeGen.a \ + %{buildroot}%{install_libdir}/libFIRCodeGenDialect.a \ + %{buildroot}%{install_libdir}/libFIRDialect.a \ + %{buildroot}%{install_libdir}/libFIRDialectSupport.a \ + %{buildroot}%{install_libdir}/libFIROpenACCSupport.a \ + %{buildroot}%{install_libdir}/libFIROpenMPSupport.a \ + %{buildroot}%{install_libdir}/libFIRSupport.a \ + %{buildroot}%{install_libdir}/libFIRTestAnalysis.a \ + %{buildroot}%{install_libdir}/libFIRTestOpenACCInterfaces.a \ + %{buildroot}%{install_libdir}/libFIRTransforms.a \ + %{buildroot}%{install_libdir}/libflangFrontend.a \ + %{buildroot}%{install_libdir}/libflangFrontendTool.a \ + %{buildroot}%{install_libdir}/libflangPasses.a \ + %{buildroot}%{install_libdir}/libFlangOpenMPTransforms.a \ + %{buildroot}%{install_libdir}/libFortranEvaluate.a \ + %{buildroot}%{install_libdir}/libFortranLower.a \ + %{buildroot}%{install_libdir}/libFortranParser.a \ + %{buildroot}%{install_libdir}/libFortranSemantics.a \ + %{buildroot}%{install_libdir}/libFortranSupport.a \ + %{buildroot}%{install_libdir}/libHLFIRDialect.a \ + %{buildroot}%{install_libdir}/libHLFIRTransforms.a \ + %{buildroot}%{install_libdir}/libCUFAttrs.a \ + %{buildroot}%{install_libdir}/libCUFDialect.a \ + %{buildroot}%{install_libdir}/libFortranDecimal.a +%if %{maj_ver} >= 22 +rm -v %{buildroot}%{install_libdir}/libFortranUtils.a \ + %{buildroot}%{install_libdir}/libFIROpenACCTransforms.a \ + %{buildroot}%{install_libdir}/libMIFDialect.a +%endif + +find %{buildroot}%{install_includedir}/flang -type f -a ! -iname '*.mod' -delete + +# this is a test binary +rm -v %{buildroot}%{install_bindir}/f18-parse-demo +%endif +#endregion flang installation + #region libcxx installation %if %{with libcxx} # We can't install the unversionned path on default location because that would conflict with @@ -1842,14 +2400,14 @@ move_and_replace_with_symlinks %{buildroot}%{install_datadir} %{buildroot}%{_dat mkdir -p %{buildroot}%{_bindir} for f in %{buildroot}%{install_bindir}/*; do filename=`basename $f` - if [[ "$filename" =~ ^(lit|ld|clang-%{maj_ver})$ ]]; then + if [[ "$filename" =~ ^(lit|ld|clang-%{maj_ver}|flang-%{maj_ver})$ ]]; then continue fi %if %{with compat_build} ln -s ../../%{install_bindir}/$filename %{buildroot}/%{_bindir}/$filename-%{maj_ver} %else - # clang-NN is already created by the build system. - if [[ "$filename" == "clang" ]]; then + # clang-NN and flang-NN are already created by the build system. + if [[ "$filename" =~ ^(clang|flang)$ ]]; then continue fi ln -s $filename %{buildroot}/%{_bindir}/$filename-%{maj_ver} @@ -1896,6 +2454,11 @@ install -m 0755 ../llvm-compat-libs/lib/liblldb.so.%{compat_maj_ver}* %{buildroo # 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 +# Increase open file limit while running tests. +if [[ $(ulimit -n) -lt 10000 ]]; then + ulimit -n 10000 +fi + %ifarch ppc64le # TODO: Re-enable when ld.gold fixed its internal error. rm llvm/test/tools/gold/PowerPC/mtriple.ll @@ -1915,6 +2478,10 @@ function reset_test_opts() { # See https://llvm.org/docs/CommandGuide/lit.html#general-options export LIT_OPTS="-vv --time-tests" + # --timeout needs psutil package, so disable it on RHEL 8. + %if %{undefined rhel} || 0%{?rhel} > 8 + export LIT_OPTS="$LIT_OPTS --timeout=600" + %endif # Set to mark tests as expected to fail. # See https://llvm.org/docs/CommandGuide/lit.html#cmdoption-lit-xfail @@ -1995,6 +2562,7 @@ export LIT_XFAIL="tools/UpdateTestChecks" #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 @@ -2051,12 +2619,8 @@ unset LIT_XFAIL %endif # 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") -test_list_filter_out+=("libarcher :: races/task-taskwait-nested.c") +test_list_filter_out+=("libomp :: ompt/teams/distribute_dispatch.c") # These tests fail more often than not, but not always. test_list_filter_out+=("libomp :: worksharing/for/omp_collapse_many_GELTGT_int.c") @@ -2064,23 +2628,11 @@ 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 have been failing intermittently. -# Issue upstream: https://github.com/llvm/llvm-project/issues/127796 -test_list_filter_out+=("libarcher :: races/task-two.c") -test_list_filter_out+=("libarcher :: races/lock-nested-unrelated.c") - %ifarch s390x test_list_filter_out+=("libomp :: flush/omp_flush.c") test_list_filter_out+=("libomp :: worksharing/for/omp_for_schedule_guided.c") %endif -%ifarch aarch64 s390x -# The following test has been failing intermittently on aarch64 and s390x. -# Re-enable it after https://github.com/llvm/llvm-project/issues/117773 -# gets fixed. -test_list_filter_out+=("libarcher :: races/taskwait-depend.c") -%endif - # The following tests seem pass on ppc64le and x86_64 and aarch64 only: %ifnarch ppc64le x86_64 s390x aarch64 # Passes on ppc64le: @@ -2123,6 +2675,7 @@ 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-two.c" export LIT_XFAIL="$LIT_XFAIL;races/taskwait-depend.c" +export LIT_XFAIL="$LIT_XFAIL;races/task-taskwait-nested.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" @@ -2181,9 +2734,27 @@ export LIT_XFAIL="$LIT_XFAIL;offloading/thread_state_2.c" adjust_lit_filter_out test_list_filter_out +# This allows openmp tests to be re-run 4 times. Once they pass +# after being re-run, they are marked as FLAKYPASS. +# See https://github.com/llvm/llvm-project/pull/141851 for the +# --max-retries-per-test option. +# We don't know if 4 is the right number to use here we just +# need to start with some number. +# Once https://github.com/llvm/llvm-project/pull/142413 landed +# we can see the exact number of attempts the tests needed +# to pass. And then we can adapt this number. +export LIT_OPTS="$LIT_OPTS --max-retries-per-test=4" + +%if %{with flang} +# Without this we run into a libflang_rt.runtime.so not found error. +# See https://github.com/llvm/llvm-project/pull/150722 for why this only +# happens when flang is found. +export LD_LIBRARY_PATH=%{buildroot}%{_prefix}/lib/clang/%{maj_ver}/lib/%{llvm_triple} +%endif + %if 0%{?rhel} # libomp tests are often very slow on s390x brew builders -%ifnarch s390x +%ifnarch s390x riscv64 %cmake_build --target check-openmp %endif %else @@ -2245,6 +2816,12 @@ test_list_filter_out+=("MLIR :: python/execution_engine.py") test_list_filter_out+=("MLIR :: python/multithreaded_tests.py") %endif +%if %{with flang} +# TODO(kkleine): This test needs to be re-enabled. I currently only fails when building with flang. +# Here's the test failure: https://gist.github.com/kwk/5d551e27a28dfc1b34a09dca781f91df +test_list_filter_out+=("MLIR :: mlir-pdll-lsp-server/view-output.test") +%endif + adjust_lit_filter_out test_list_filter_out export PYTHONPATH=%{buildroot}/%{python3_sitearch} @@ -2280,6 +2857,8 @@ if ! grep -q atomics /proc/cpuinfo; then fi %endif +adjust_lit_filter_out test_list_filter_out + %cmake_build --target check-bolt %endif #endregion BOLT tests @@ -2291,6 +2870,25 @@ reset_test_opts %endif #endregion polly tests +#region flang tests +%if %{with flang} +reset_test_opts + +# https://github.com/llvm/llvm-project/issues/126051 +test_list_filter_out+=("Flang :: Driver/linker-flags.f90") + +# We filter our the location.f90 test for now because with LTO+PGO enabled, +# We miss the location.f90 entry in the loc_kind_array[ base, inclusion] entry. +# https://github.com/llvm/llvm-project/issues/156629 +test_list_filter_out+=("Flang :: Lower/location.f90") + +adjust_lit_filter_out test_list_filter_out + +%cmake_build --target check-flang +%cmake_build --target check-flang-rt + +%endif +#endregion flang tests %endif @@ -2311,7 +2909,13 @@ cp %{_vpath_builddir}/.ninja_log %{buildroot}%{_datadir} %post -n %{pkg_name_llvm}-devel update-alternatives --install %{_bindir}/llvm-config-%{maj_ver} llvm-config-%{maj_ver} %{install_bindir}/llvm-config %{__isa_bits} %if %{without compat_build} -update-alternatives --install %{_bindir}/llvm-config llvm-config %{install_bindir}/llvm-config %{__isa_bits} +# Prioritize newer LLVM versions over older and 64-bit over 32-bit. +update-alternatives --install %{_bindir}/llvm-config llvm-config %{install_bindir}/llvm-config $((%{maj_ver}*100+%{__isa_bits})) + +# Remove old llvm-config-%{__isa_bits} alternative. This will only do something during the +# first upgrade from a version that used it. In all other cases it will error, so suppress the +# expected error message. +update-alternatives --remove llvm-config %{_bindir}/llvm-config-%{__isa_bits} 2>/dev/null ||: # 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. @@ -2329,14 +2933,14 @@ if [ $1 -eq 0 ]; then update-alternatives --remove llvm-config%{exec_suffix} %{install_bindir}/llvm-config 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%{exec_suffix} --version | awk -F . '{ print $1 }')" != "x%{maj_ver}" ]]; then - update-alternatives --remove llvm-config-%{maj_ver} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} +# There are a number of different cases here: +# Uninstall: Remove alternatives. +# Patch version upgrade: Keep alternatives. +# Major version upgrade with installation of compat package: Keep alternatives for compat package. +# Major version upgrade without installation of compat package: Remove alternatives. However, we +# can't distinguish it from the previous case, so we conservatively leave it behind. +if [ $1 -eq 0 ]; then + update-alternatives --remove llvm-config-%{maj_ver} %{install_bindir}/llvm-config fi %endif @@ -2463,6 +3067,7 @@ fi llvm-mc llvm-mca llvm-ml + llvm-ml64 llvm-modextract llvm-mt llvm-nm @@ -2505,9 +3110,11 @@ fi yaml2obj }} -%if %{maj_ver} >= 21 +%if %{maj_ver} >= 22 %{expand_bins %{expand: - llvm-ml64 + llvm-ir2vec + llvm-offload-wrapper + llvm-offload-binary }} %endif @@ -2569,6 +3176,13 @@ fi tblgen }} +%if %{maj_ver} >= 22 +%{expand_mans %{expand: + llvm-ir2vec + llvm-offload-binary +}} +%endif + %expand_datas opt-viewer %files -n %{pkg_name_llvm}-libs @@ -2636,6 +3250,10 @@ fi lli-child-target llvm-isel-fuzzer llvm-opt-fuzzer + llvm-test-mustache-spec +}} +%{expand_mans %{expand: + llvm-test-mustache-spec }} %files -n %{pkg_name_llvm}-googletest @@ -2676,6 +3294,14 @@ fi %endif %{expand_mans clang clang++} +%if 0%{with pgo} +%{expand_datas %{expand: llvm-pgo.profdata }} +%if 0%{run_pgo_perf_comparison} +%{expand_datas %{expand: results-system-vs-pgo.txt }} +%endif +%endif + + %files -n %{pkg_name_clang}-libs %license clang/LICENSE.TXT %{_prefix}/lib/clang/%{maj_ver}/include/* @@ -2777,12 +3403,8 @@ fi modularize clang-format-diff run-clang-tidy -}} -%if %{maj_ver} >= 21 -%{expand_bins %{expand: offload-arch }} -%endif %if %{without compat_build} %{_emacs_sitestartdir}/clang-format.el @@ -2830,13 +3452,10 @@ fi # Files that appear on all targets %{_prefix}/lib/clang/%{maj_ver}/lib/%{compiler_rt_triple}/libclang_rt.* - -%if %{has_crtobjs} %{_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 +%ifnarch %{ix86} s390x riscv64 %{_prefix}/lib/clang/%{maj_ver}/lib/%{compiler_rt_triple}/liborc_rt.a %endif @@ -2875,20 +3494,12 @@ fi libLLVMOffload.so }} -%if %{maj_ver} < 21 -%{expand_libs %{expand: - libomptarget.devicertl.a - libomptarget-amdgpu*.bc - libomptarget-nvptx*.bc -}} -%else %{expand_libs %{expand: amdgcn-amd-amdhsa/libompdevice.a amdgcn-amd-amdhsa/libomptarget-amdgpu.bc nvptx64-nvidia-cuda/libompdevice.a nvptx64-nvidia-cuda/libomptarget-nvptx.bc }} -%endif %expand_includes offload %endif @@ -2952,6 +3563,11 @@ fi lldb-instr lldb-server }} +%if %{maj_ver} >= 22 +%{expand_bins %{expand: + lldb-mcp +}} +%endif # Usually, *.so symlinks are kept in devel subpackages. However, the python # bindings depend on this symlink at runtime. %{expand_libs %{expand: @@ -2966,6 +3582,12 @@ fi %files -n %{pkg_name_lldb}-devel %expand_includes lldb +%if %{maj_ver} >= 22 +%{expand_bins %{expand: + lldb-tblgen + yaml2macho-core +}} +%endif %if %{without compat_build} %files -n python%{python3_pkgversion}-lldb @@ -3026,6 +3648,52 @@ fi #endregion MLIR files #region libcxx files + +#region flang files +%if %{with flang} +%files -n %{pkg_name_flang} +%license flang/LICENSE.TXT +%{expand_mans flang} +%{expand_bins %{expand: + tco + bbc + fir-opt + fir-lsp-server + flang + flang-new +}} +%{install_bindir}/flang-%{maj_ver} +%{expand_includes %{expand: + flang/__cuda_builtins.mod + flang/__cuda_device.mod + flang/__fortran_builtins.mod + flang/__fortran_ieee_exceptions.mod + flang/__fortran_type_info.mod + flang/__ppc_intrinsics.mod + flang/__ppc_types.mod + flang/cooperative_groups.mod + flang/ieee_arithmetic.mod + flang/ieee_exceptions.mod + flang/ieee_features.mod + flang/iso_c_binding.mod + flang/iso_fortran_env.mod + flang/mma.mod + flang/cudadevice.mod + flang/iso_fortran_env_impl.mod + flang/omp_lib.mod + flang/omp_lib_kinds.mod +}} + +%{_prefix}/lib/clang/%{maj_ver}/include/ISO_Fortran_binding.h + +%files -n %{pkg_name_flang}-runtime +%{_prefix}/lib/clang/%{maj_ver}/lib/%{llvm_triple}/libflang_rt.runtime.a +%{_prefix}/lib/clang/%{maj_ver}/lib/%{llvm_triple}/libflang_rt.runtime.so +%config(noreplace) %{_sysconfdir}/ld.so.conf.d/%{pkg_name_flang}-%{_arch}.conf + +%endif +#region flang files + %if %{with libcxx} %files -n %{pkg_name_libcxx} @@ -3121,978 +3789,6 @@ fi #endregion files -#region changelog %changelog -* Tue Jul 29 2025 Timm Bäder - 20.1.8-2 -- Copy patches from Fedora -- Resolves RHEL-106427 - -* Thu Jul 10 2025 Timm Bäder - 20.1.8-1 -- Update to 20.1.8 - -* Fri May 30 2025 Nikita Popov - 20.1.6-1 -- Update to LLVM 20.1.6 - -* Thu May 22 2025 Nikita Popov - 20.1.5-1 -- Update to LLVM 20.1.5 - -* Tue May 06 2025 Tom Stellard - 20.1.4-6 -- Fix build on ppc64le with glibc >= 2.42 - -* Tue May 06 2025 Nikita Popov - 20.1.4-5 -- Update to LLVM 20.1.4 - -* Sat Apr 26 2025 Tom Stellard - 20.1.3-2 -- Fix build with glibc >= 2.42 - -* Thu Apr 17 2025 Nikita Popov - 20.1.3-1 -- Update to LLVM 20.1.3 - -* Fri Apr 04 2025 Tom Stellard - 20.1.2-5 -- Drop ARM and Mips targets on RHEL - -* Thu Apr 03 2025 Timm Bäder - 20.1.2-4 -- Remove gpu-loader binaries - -* Thu Apr 03 2025 Nikita Popov - 20.1.2-3 -- Update to LLVM 20.1.2 - -* Tue Apr 01 2025 Miro Hrončok - 20.1.1-2 -- Drop redundant runtime requirement on python3-setuptools from python3-lit - -* Wed Mar 19 2025 Nikita Popov - 20.1.1-1 -- Update to LLVM 20.1.1 - -* Tue Mar 18 2025 Nikita Popov - 20.1.0-2 -- Move clang-scan-deps to clang package (rhbz#2353000) - -* Wed Mar 05 2025 Nikita Popov - 20.1.0-1 -- Update to LLVM 20.1.0 - -* Thu Feb 27 2025 Nikita Popov - 20.1.0~rc3-1 -- Update to LLVM 20 rc 3 - -* Tue Feb 25 2025 Nikita Popov - 19.1.7-11 -- Add clang-devel -> llvm-devel dep (rhbz#2342979) - -* Thu Feb 20 2025 Yaakov Selkowitz - 19.1.7-10 -- Do not rely on alternatives path - -* Fri Feb 14 2025 Nikita Popov - 19.1.7-9 -- Rename llvm-resource-filesystem -> llvm-filesystem - -* Wed Feb 12 2025 Nikita Popov - 19.1.7-8 -- Backport bolt fix (rhbz#2344830) - -* Wed Feb 12 2025 Nikita Popov - 19.1.7-7 -- Introduce llvm-resource-filesystem - -* Tue Feb 04 2025 Nikita Popov - 19.1.7-6 -- Don't use directory symlinks - -* Fri Jan 31 2025 Konrad Kleine - 19.1.7-5 -- Address installability issue with directories that were turned into symlinks - -* Thu Jan 30 2025 Josh Stone - 19.1.7-4 -- Fix an isel error triggered by Rust 1.85 on s390x - -* Wed Jan 22 2025 Konrad Kleine - 19.1.7-3 -- Add polly - -* Mon Jan 20 2025 Konrad Kleine - 19.1.7-2 -- Add bolt - -* Mon Jan 20 2025 Timm Bäder - 19.1.7-1 -- Update to 19.1.7 - -* Fri Jan 17 2025 Fedora Release Engineering - 19.1.6-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Tue Dec 24 2024 Konrad Kleine - 19.1.6-3 -- Add libcxx - -* Thu Dec 19 2024 Nikita Popov - 19.1.6-2 -- Fix mlir exports - -* Wed Dec 18 2024 Timm Bäder - 19.1.6-1 -- Update to 19.1.6 - -* Fri Dec 06 2024 Konrad Kleine - 19.1.5-3 -- Fix mlir and openmp tests -- Disable libomp tests on s390x RHEL entirely. - -* Wed Dec 04 2024 Konrad Kleine - 19.1.5-2 -- Add mlir - -* Tue Dec 03 2024 Timm Bäder - 19.1.5-1 -- Update to 19.1.5 - -* Tue Nov 26 2024 Tulio Magno Quites Machado Filho - 19.1.4-2 -- Enable LLVM_ENABLE_ZSTD (rhbz#2321848) - -* Thu Nov 21 2024 Timm Bäder - 19.1.4-1 -- Update to 19.1.4 - -* Tue Nov 19 2024 Konrad Kleine - 19.1.3-4 -- Remove HTML documentation -- Add lldb man pages - -* Mon Nov 18 2024 Josh Stone - 19.1.3-3 -- Fix profiling after a binutils NOTE change (rhbz#2322754) - -* Mon Nov 18 2024 Timm Bäder - 19.1.3-2 -- Install i386 config files on x86_64 - -* Tue Nov 05 2024 Timm Bäder - 19.1.3-1 -- Update to 19.1.3 - -* Tue Sep 24 2024 Maxwell G - 19.1.0-2 -- Add 'Provides: clangd' to the clang-tools-extra subpackage - -* Thu Sep 19 2024 Timm Bäder - 19.1.0-1 -- Update to LLVM 19.1.0 - -* Thu Jul 18 2024 Fedora Release Engineering - 18.1.8-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Thu Jul 11 2024 Jesus Checa Hidalgo - 18.1.8-1 -- Update to LLVM 18.1.8 - -* Fri Jun 07 2024 Tom Stellard - 18.1.7-1 -- 18.1.7 Release - -* Tue May 28 2024 Nikita Popov - 18.1.6-2 -- Fix use after free on ppc64le (rhbz#2283525) - -* Sat May 18 2024 Tom Stellard - 18.1.6-1 -- 18.1.6 Release - -* Tue May 14 2024 Tom Stellard - 18.1.3-2 -- Backport fix for rhbz#2275090 - -* 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 Zhengyu He - 18.1.2-2 -- Add support for riscv64 - -* 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 - -#endregion changelog +%{?autochangelog} +%{!?autochangelog:%include %{_sourcedir}/changelog} diff --git a/release-keys.asc b/release-keys.asc index 0d3789a..3932562 100644 --- a/release-keys.asc +++ b/release-keys.asc @@ -102,3 +102,29 @@ yWfeofTJ7PhKzoXM2Y/rRFoM5gNh1RVA19ngLT5Jwiof8fPZvHJ/9ZkHn+O7eMNm m5++gYza3pnn2/PoGpGGAKok+sfJiq5Tb7RUefyJTeZiyTZ/XJrA =tMzl -----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mDMEaMgtRhYJKwYBBAHaRw8BAQdA4NRjJPhVd56sOM+QmTbZKkRT3bYbgg6+Bxed +CELeGp+0JUN1bGxlbiBSaG9kZXMgPGN1bGxlbi5yaG9kZXNAYXJtLmNvbT6IkwQT +FgoAOxYhBHEEbR6cZla91hFxhz6Dur9KT56FBQJoyC1GAhsDBQsJCAcCAiICBhUK +CQgLAgQWAgMBAh4HAheAAAoJED6Dur9KT56FkVwA/RLNMBHrjXoAKpRm1iIjiC6w +gLRqGOnj1qAqPqgntMmmAQCQ2lGpw46rvh88ng84IGsRF0JlTAYb6SR/YYNsQyah +Arg4BGjILUYSCisGAQQBl1UBBQEBB0B48hCLw13kduwibGDGoIax0BIa+f66IUC+ +HhNlucsjbgMBCAeIeAQYFgoAIBYhBHEEbR6cZla91hFxhz6Dur9KT56FBQJoyC1G +AhsMAAoJED6Dur9KT56FVssBAO1lL/S2cU65XFHgbjc6crwljDrD7PYbxBA7hDpi +pC4ZAP98rK1hGQ5wxpeiJ0heZ8zhpdUwEeymIDBaIcwgrJRFBQ== +=HcEB +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mDMEaMg2hBYJKwYBBAHaRw8BAQdA2J814YnhPQSdsyjwx8VxZ7AitqCnns9lzvkx +HX9lWMW0JERvdWdsYXMgWXVuZyA8ZG91Z2xhcy55dW5nQHNvbnkuY29tPoiTBBMW +CgA7FiEE/7M2iYDz5rtXNxRaMWxW0GTKy6UFAmjINoQCGwMFCwkIBwICIgIGFQoJ +CAsCBBYCAwECHgcCF4AACgkQMWxW0GTKy6XjYgEApJ7p+o7EAeaaOdO2f440KDfg +t7haaBLaxr5fiaSKjkYA+gLDxWOh39Y84upf23qMmpSTZ3SK5LvJtBTVtV7AEX0B +uDgEaMg2hBIKKwYBBAGXVQEFAQEHQL3CL6jHZAakhtLLj2Ks34u7ItY/7USl/bYk +f/+mZTJMAwEIB4h4BBgWCgAgFiEE/7M2iYDz5rtXNxRaMWxW0GTKy6UFAmjINoQC +GwwACgkQMWxW0GTKy6VTOgEArDn9bg58W7bfZfVfneJJbIeICEf3NN9IovbRbAOB +ax0A/RxtrG4qowLlo907vb25ITOa1hBoheSV2wNoDaDUhFEF +=JQ8u +-----END PGP PUBLIC KEY BLOCK----- diff --git a/rpminspect.yaml b/rpminspect.yaml new file mode 100644 index 0000000..3f5febc --- /dev/null +++ b/rpminspect.yaml @@ -0,0 +1,29 @@ +--- +inspections: + # We need to disable abidiff due to abidiff+testing-farm issues. Ref link: + # https://docs.testing-farm.io/Testing%20Farm/0.1/errors.html#TFE-1 + abidiff: off + +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 + +unicode: + ignore: + # Ignore bidirectional unicode sequence documentation file + - llvm-project-*.src/clang-tools-extra/docs/clang-tidy/checks/misc/misleading-bidirectional.rst diff --git a/sources b/sources index e7847bf..425b511 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (llvm-project-20.1.8.src.tar.xz) = f330e72e6a1da468569049437cc0ba7a41abb816ccece7367189344f7ebfef730f4788ac7af2bef0aa8a49341c15ab1d31e941ffa782f264d11fe0dc05470773 -SHA512 (llvm-project-20.1.8.src.tar.xz.sig) = d74369bdb4d1b82775161ea53c9c5f3a23ce810f4df5ff617123023f9d8ce720e7d6ecc9e17f8ebd39fd9e7a9de79560abdf2ffe73bcb907a43148d43665d619 +SHA512 (llvm-project-21.1.4.src.tar.xz) = a8c0883abe7c5a3e55ca7ed0fd974fae4351184a0b0df18295a982ca8ddb0f8d167353564204ed00f0cd9a1d8baef7074c0b39a99e0b5c52ced6bbee73dde3da +SHA512 (llvm-project-21.1.4.src.tar.xz.sig) = 4812c2e3861aa3b726d842c3ca259b19ef1aa531fed9f6f47099483de91de2b2a165f40d243f6f40f2eea749741d5f8b7090f394399c56db02053f308921077a diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 0000000..fc0f851 --- /dev/null +++ b/tests/README.md @@ -0,0 +1,9 @@ +# Gating testplans for LLVM + +The tests for LLVM are in a separate repo: + +* llvm: https://gitlab.com/redhat/centos-stream/tests/llvm.git/ + +This directory should contain only fmf plans (such as build-gating.fmf) which import +the tests from the tests repo. This can be done using the "url" parameter of the +plan's "discover" step. Reference: https://tmt.readthedocs.io/en/stable/spec/plans.html#fmf diff --git a/tests/build-gating.fmf b/tests/build-gating.fmf index 1e51e23..3beb9b7 100644 --- a/tests/build-gating.fmf +++ b/tests/build-gating.fmf @@ -1,16 +1,17 @@ # -# Build/PR gating tests for *LLVM 13* +# Build/PR gating tests for *LLVM 19* # -# Imports and runs tests provided by Fedora LLVM git for the matching LLVM version. +# Compatible with various LLVM 19 distributions: # -# NOTE: *always* keep this file in sync with upstream, i.e. Fedora. Since we cannot "discover" a plan, -# we must duplicate at least some part of upstream plan setup, like `adjust` or `provision`. Not necessarily -# all steps, btu if we do need some of them here, let's focus on making changes in upstream first, to preserve -# one source of truth. Once TMT learns to include whole plans, we could drop the copied content from here. +# * Fedora (ursine packages) +# * CentOS 10 stream (ursine packages) +# * Centos 9 stream (ursine packages) +# * RHEL-10 (ursine packages) +# * RHEL-9 (ursine packages) +# * RHEL-8 (Red Hat module) # summary: LLVM tests for build/PR gating - adjust: - because: "Plan to be ran when either executed locally, or executed by CI system to gate a build or PR." when: >- @@ -20,32 +21,31 @@ adjust: enabled: false # 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 == 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 + - because: "On CentOS, CRB must be enabled to provide rarer packages" prepare+: - name: Enable CRB how: shell script: dnf config-manager --set-enabled crb + when: >- + distro == centos + + # Unfortunately, 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" + prepare+: + - name: Enable CRB + how: shell + script: dnf config-manager --set-enabled rhel-CRB + when: >- + distro == rhel-9 + or distro == rhel-8 discover: - - name: "Upstream LLVM tests for build/PR gating" - how: fmf - url: https://gitlab.com/redhat/centos-stream/tests/llvm - ref: main - filter: "tag:-spoils-installation & tag:-not-in-default" - + how: fmf + url: https://gitlab.com/redhat/centos-stream/tests/llvm.git + ref: main + filter: "tag:-spoils-installation & tag:-not-in-default" execute: - how: tmt - + how: tmt provision: hardware: memory: ">= 4 GiB" diff --git a/tests/lld-alternatives.fmf b/tests/lld-alternatives.fmf new file mode 100644 index 0000000..f8a907b --- /dev/null +++ b/tests/lld-alternatives.fmf @@ -0,0 +1,20 @@ +summary: LLD tests for build/PR gating, testing alternatives and spoiling the installation +adjust: + - because: "Plan to be ran when either executed locally, or executed by CI system to gate a build or PR." + when: >- + trigger is defined + and trigger != commit + and trigger != build + enabled: false + +discover: + - name: lld-alternatives + how: fmf + url: https://gitlab.com/redhat/centos-stream/tests/llvm.git + ref: main + test: ld-alternative +execute: + how: tmt +provision: + hardware: + memory: ">= 4 GiB"