diff --git a/131801.patch b/131801.patch new file mode 100644 index 0000000..853fba8 --- /dev/null +++ b/131801.patch @@ -0,0 +1,46 @@ +From d25887408ee9fb78d68787ff7388cba254aced6f Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Tue, 18 Mar 2025 14:36:06 +0100 +Subject: [PATCH] [GlobalMerge][PPC] Don't merge globals in llvm.metadata + section + +The llvm.metadata section is not emitted and has special semantics. +We should not merge globals in it, similarly to how we already +skip merging of `llvm.xyz` globals. + +Fixes https://github.com/llvm/llvm-project/issues/131394. +--- + llvm/lib/CodeGen/GlobalMerge.cpp | 3 ++- + llvm/test/CodeGen/PowerPC/global-merge-llvm-metadata.ll | 9 +++++++++ + 2 files changed, 11 insertions(+), 1 deletion(-) + create mode 100644 llvm/test/CodeGen/PowerPC/global-merge-llvm-metadata.ll + +diff --git a/llvm/lib/CodeGen/GlobalMerge.cpp b/llvm/lib/CodeGen/GlobalMerge.cpp +index 1aedc447935b7..ca743918cec24 100644 +--- a/llvm/lib/CodeGen/GlobalMerge.cpp ++++ b/llvm/lib/CodeGen/GlobalMerge.cpp +@@ -711,7 +711,8 @@ bool GlobalMergeImpl::run(Module &M) { + continue; + + // Ignore all 'special' globals. +- if (GV.getName().starts_with("llvm.") || GV.getName().starts_with(".llvm.")) ++ if (GV.getName().starts_with("llvm.") || ++ GV.getName().starts_with(".llvm.") || Section == "llvm.metadata") + continue; + + // Ignore all "required" globals: +diff --git a/llvm/test/CodeGen/PowerPC/global-merge-llvm-metadata.ll b/llvm/test/CodeGen/PowerPC/global-merge-llvm-metadata.ll +new file mode 100644 +index 0000000000000..7db092e13afeb +--- /dev/null ++++ b/llvm/test/CodeGen/PowerPC/global-merge-llvm-metadata.ll +@@ -0,0 +1,9 @@ ++; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s ++ ++@index = global i32 0, align 4 ++@.str = private unnamed_addr constant [1 x i8] zeroinitializer, section "llvm.metadata" ++@.str.1 = private unnamed_addr constant [7 x i8] c"test.c\00", section "llvm.metadata" ++@llvm.global.annotations = appending global [1 x { ptr, ptr, ptr, i32, ptr }] [{ ptr, ptr, ptr, i32, ptr } { ptr @index, ptr @.str, ptr @.str.1, i32 1, ptr null }], section "llvm.metadata" ++ ++; CHECK-NOT: .set ++; CHECK-NOT: _MergedGlobals diff --git a/llvm.spec b/llvm.spec index 3bc6c32..9805bdf 100644 --- a/llvm.spec +++ b/llvm.spec @@ -2,7 +2,7 @@ #region version %global maj_ver 20 %global min_ver 1 -%global patch_ver 0 +%global patch_ver 1 #global rc_ver 3 %bcond_with snapshot_build @@ -239,7 +239,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: 1%{?dist} +Release: 2%{?dist} Summary: The Low Level Virtual Machine License: Apache-2.0 WITH LLVM-exception OR NCSA @@ -307,7 +307,9 @@ Patch104: 0001-Driver-Give-devtoolset-path-precedence-over-Installe.patch #endregion CLANG patches # Fix LLVMConfig.cmake when symlinks are used. -Patch105: 0001-cmake-Resolve-symlink-when-finding-install-prefix.patch +# (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 Patch106: 0001-19-Always-build-shared-libs-for-LLD.patch @@ -327,6 +329,10 @@ Patch501: 0001-Fix-page-size-constant-on-aarch64-and-ppc64le.patch # https://github.com/llvm/llvm-project/issues/124001 Patch1901: 0001-SystemZ-Fix-ICE-with-i128-i64-uaddo-carry-chain.patch +# Backport fix for https://bugzilla.redhat.com/show_bug.cgi?id=2352554. +# https://github.com/llvm/llvm-project/pull/131801 +Patch2004: 131801.patch + %if 0%{?rhel} == 8 %global python3_pkgversion 3.12 %global __python3 /usr/bin/python3.12 @@ -3015,6 +3021,9 @@ fi #region changelog %changelog +* Wed Mar 19 2025 Nikita Popov - 20.1.1-1 +- Update to LLVM 20.1.1 + * Wed Mar 05 2025 Nikita Popov - 20.1.0-1 - Update to LLVM 20.1.0 diff --git a/sources b/sources index 0acf8c8..faca134 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (llvm-project-20.1.0.src.tar.xz) = c90fbc43c40e148357912adc40d799a79cce3d3a929136c137421f6342ed7338659e651f1dedfa8e10b94b9f2897e25b2962e17709add02857f89f10615a2397 -SHA512 (llvm-project-20.1.0.src.tar.xz.sig) = 68da1c2a13aaa48a67bbb9e716f9f030cf372edc651bca2861453378a6a9172a207ff59e29b175001f042888bf1f9c118fbf938f757e1f4c966943baa7e2696a +SHA512 (llvm-project-20.1.1.src.tar.xz) = b851d3e24a2775f6e789720614a8192d72956f447a39d75e5160a8acf6bd3a3386fab2cca5590b7e020b65e408ccf32432f8dc03519fd4cf60b4b5674fe0547e +SHA512 (llvm-project-20.1.1.src.tar.xz.sig) = 469b03f3ddbe56b074724375b09a45ee2730bee0ba4b25f64f93d93ef609c33d39136f051c216a74a35d98a70ffcd3d7507e38d19a20d5006c29a954ca32813b SHA512 (llvm-project-19.1.7.src.tar.xz) = c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8 SHA512 (llvm-project-19.1.7.src.tar.xz.sig) = 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda