diff --git a/0001-19-Always-build-shared-libs-for-LLD.patch b/0001-19-Always-build-shared-libs-for-LLD.patch new file mode 100644 index 0000000000000000000000000000000000000000..6840554cf4313bbf59fad41d05038cf1a72905c3 --- /dev/null +++ b/0001-19-Always-build-shared-libs-for-LLD.patch @@ -0,0 +1,30 @@ +From 69faadbc396000bfa60c722f6fb9c0fc3fb2daf0 Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Wed, 8 May 2024 12:30:36 +0900 +Subject: [PATCH] Always build shared libs for LLD + +We don't want to enable BUILD_SHARED_LIBS for the whole build, +but we do want to build lld libraries. +--- + lld/cmake/modules/AddLLD.cmake | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/lld/cmake/modules/AddLLD.cmake b/lld/cmake/modules/AddLLD.cmake +index 9f2684b6f933..743ec87814a2 100644 +--- a/lld/cmake/modules/AddLLD.cmake ++++ b/lld/cmake/modules/AddLLD.cmake +@@ -7,9 +7,8 @@ macro(add_lld_library name) + "" + "" + ${ARGN}) +- if(ARG_SHARED) +- set(ARG_ENABLE_SHARED SHARED) +- endif() ++ # Always build shared libs for LLD. ++ set(ARG_ENABLE_SHARED SHARED) + llvm_add_library(${name} ${ARG_ENABLE_SHARED} ${ARG_UNPARSED_ARGUMENTS}) + + if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) +-- +2.45.1 + diff --git a/0001-20-polly-shared-libs.patch b/0001-20-polly-shared-libs.patch new file mode 100644 index 0000000000000000000000000000000000000000..b0c90dafe114bc2631e0d5525efa59b1231ac5fb --- /dev/null +++ b/0001-20-polly-shared-libs.patch @@ -0,0 +1,59 @@ +From cecb98f56e7d6619d0427fbdbc2f200ce212f0c6 Mon Sep 17 00:00:00 2001 +From: Konrad Kleine +Date: Tue, 28 Jan 2025 08:34:09 +0000 +Subject: [PATCH] [polly] 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 d91f4ecd37e6..965f635b7ff6 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/PolyhedralInfo.cpp +diff --git a/polly/lib/External/CMakeLists.txt b/polly/lib/External/CMakeLists.txt +index 5dd69b7199dc..f065fbd7b942 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.46.0 + diff --git a/0001-Driver-Give-devtoolset-path-precedence-over-Installe.patch b/0001-Driver-Give-devtoolset-path-precedence-over-Installe.patch new file mode 100644 index 0000000000000000000000000000000000000000..92ab81c9658f6eed06d29255d69e7188eaa9b933 --- /dev/null +++ b/0001-Driver-Give-devtoolset-path-precedence-over-Installe.patch @@ -0,0 +1,41 @@ +From 73d3b4047d757ef35850e2cef38285b96be82f0f Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Tue, 23 May 2023 12:17:29 +0200 +Subject: [PATCH] [Driver] Give devtoolset path precedence over InstalledDir + +This is a followup to the change from c5fe10f365247c3dd9416b7ec8bad73a60b5946e. +While that commit correctly adds the bindir from devtoolset to the +path, the driver dir / install dir still comes first. This means +we'll still end up picking /usr/bin/ld rather than the one from +devtoolset. + +Unfortunately, I don't see any way to test this. In the environment +the tests are run, this would only result in a behavior difference +if there is an ld binary present in the LLVM build directory, which +isn't the case. + +Differential Revision: https://reviews.llvm.org/D151203 +--- + clang/lib/Driver/ToolChains/Linux.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp +index 853ff99d9fe5..aecabb46d4b9 100644 +--- a/clang/lib/Driver/ToolChains/Linux.cpp ++++ b/clang/lib/Driver/ToolChains/Linux.cpp +@@ -244,9 +244,9 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) + // With devtoolset on RHEL, we want to add a bin directory that is relative + // to the detected gcc install, because if we are using devtoolset gcc then + // we want to use other tools from devtoolset (e.g. ld) instead of the +- // standard system tools. +- PPaths.push_back(Twine(GCCInstallation.getParentLibPath() + +- "/../bin").str()); ++ // standard system tools. This should take precedence over InstalledDir. ++ PPaths.insert(PPaths.begin(), ++ Twine(GCCInstallation.getParentLibPath() + "/../bin").str()); + + if (Arch == llvm::Triple::arm || Arch == llvm::Triple::thumb) + ExtraOpts.push_back("-X"); +-- +2.40.1 + diff --git a/0001-Fix-page-size-constant-on-aarch64-and-ppc64le.patch b/0001-Fix-page-size-constant-on-aarch64-and-ppc64le.patch new file mode 100644 index 0000000000000000000000000000000000000000..925c9966242f8f99fdf18dd5c668128fc0e4469c --- /dev/null +++ b/0001-Fix-page-size-constant-on-aarch64-and-ppc64le.patch @@ -0,0 +1,25 @@ +From 5f73befe5a0df82e455f4b1052e62f34009e98bb Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Tue, 23 Apr 2024 15:08:34 -0700 +Subject: [PATCH] Fix page size constant on aarch64 and ppc64le + +--- + compiler-rt/lib/cfi/cfi.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/compiler-rt/lib/cfi/cfi.cpp b/compiler-rt/lib/cfi/cfi.cpp +index ad1c91623514..e7e86e5807a8 100644 +--- a/compiler-rt/lib/cfi/cfi.cpp ++++ b/compiler-rt/lib/cfi/cfi.cpp +@@ -53,6 +53,8 @@ namespace __cfi { + + #if SANITIZER_LOONGARCH64 + #define kCfiShadowLimitsStorageSize 16384 // 16KiB on loongarch64 per page ++#elif defined(__aarch64__) || defined(__powerpc64__) ++#define kCfiShadowLimitsStorageSize 65536 // 1 page + #else + #define kCfiShadowLimitsStorageSize 4096 // 1 page + #endif +-- +2.40.1 + diff --git a/0001-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch b/0001-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch new file mode 100644 index 0000000000000000000000000000000000000000..113f2a7b8dc6f87615da6b7312c431197a23eeae --- /dev/null +++ b/0001-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch @@ -0,0 +1,27 @@ +From 49f827b09db549de62dcaf8b90b3fcb3e08c0ee5 Mon Sep 17 00:00:00 2001 +From: Serge Guelton +Date: Mon, 6 Mar 2023 12:37:48 +0100 +Subject: [PATCH] Make -funwind-tables the default on all archs + +--- + clang/lib/Driver/ToolChains/Gnu.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp +index 24fbdcffc07b..8fed46b49515 100644 +--- a/clang/lib/Driver/ToolChains/Gnu.cpp ++++ b/clang/lib/Driver/ToolChains/Gnu.cpp +@@ -2904,6 +2904,10 @@ Generic_GCC::getDefaultUnwindTableLevel(const ArgList &Args) const { + case llvm::Triple::riscv64: + case llvm::Triple::x86: + case llvm::Triple::x86_64: ++ // Enable -funwind-tables on all architectures supported by Fedora: ++ // rhbz#1655546 ++ case llvm::Triple::systemz: ++ case llvm::Triple::arm: + return UnwindTableLevel::Asynchronous; + default: + return UnwindTableLevel::None; +-- +2.39.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 new file mode 100644 index 0000000000000000000000000000000000000000..4ec2d1d3bd51dc7ba0a89877c1bc73af2971da80 --- /dev/null +++ b/0001-SystemZ-Fix-ICE-with-i128-i64-uaddo-carry-chain.patch @@ -0,0 +1,81 @@ +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-Workaround-a-bug-in-ORC-on-ppc64le.patch b/0001-Workaround-a-bug-in-ORC-on-ppc64le.patch new file mode 100644 index 0000000000000000000000000000000000000000..af236a12e39abe15c87be6afac2a1db86e3210d9 --- /dev/null +++ b/0001-Workaround-a-bug-in-ORC-on-ppc64le.patch @@ -0,0 +1,30 @@ +From a2449cee8c995b56f1892502aab3dfad3d6f3ca1 Mon Sep 17 00:00:00 2001 +From: Tulio Magno Quites Machado Filho +Date: Fri, 8 Sep 2023 11:45:34 -0300 +Subject: [PATCH] Workaround a bug in ORC on ppc64le + +The Jit code appears to be returning the wrong printf symbol on ppc64le +after the transition of the default long double to IEEE 128-bit floating +point. +--- + clang/unittests/Interpreter/InterpreterTest.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/clang/unittests/Interpreter/InterpreterTest.cpp b/clang/unittests/Interpreter/InterpreterTest.cpp +index abb8e6377aab..7b6697ebc6ed 100644 +--- a/clang/unittests/Interpreter/InterpreterTest.cpp ++++ b/clang/unittests/Interpreter/InterpreterTest.cpp +@@ -243,7 +243,9 @@ TEST(IncrementalProcessing, FindMangledNameSymbol) { + EXPECT_FALSE(!Addr); + + // FIXME: Re-enable when we investigate the way we handle dllimports on Win. +-#ifndef _WIN32 ++ // FIXME: The printf symbol returned from the Jit may not be correct on ++ // ppc64le when the default long double is IEEE 128-bit fp. ++#if !defined _WIN32 && !(defined __PPC64__ && defined __LITTLE_ENDIAN__) + EXPECT_EQ((uintptr_t)&printf, Addr->getValue()); + #endif // _WIN32 + } +-- +2.41.0 + diff --git a/0001-cmake-Resolve-symlink-when-finding-install-prefix.patch b/0001-cmake-Resolve-symlink-when-finding-install-prefix.patch new file mode 100644 index 0000000000000000000000000000000000000000..2b62da0ed37a6851155e0c5381769c37dcf7a878 --- /dev/null +++ b/0001-cmake-Resolve-symlink-when-finding-install-prefix.patch @@ -0,0 +1,39 @@ +From 06774eb8a7dc0bc36b59e53310c7f5b5d89f6c29 Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Tue, 28 Jan 2025 12:31:49 +0100 +Subject: [PATCH] [cmake] Resolve symlink when finding install prefix + +When determining the install prefix in LLVMConfig.cmake etc resolve +symlinks in CMAKE_CURRENT_LIST_FILE first. The motivation for this +is to support symlinks like `/usr/lib64/cmake/llvm` to +`/usr/lib64/llvm19/lib/cmake/llvm`. This only works correctly if +the paths are relative to the resolved symlink. + +It's worth noting that this *mostly* already works out of the box, +because cmake automatically does the symlink resolution when the +library is found via CMAKE_PREFIX_PATH. It just doesn't happen +when it's found via the default prefix path. +--- + cmake/Modules/FindPrefixFromConfig.cmake | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cmake/Modules/FindPrefixFromConfig.cmake b/cmake/Modules/FindPrefixFromConfig.cmake +index 22211e4b72f2..3daff607ff84 100644 +--- a/cmake/Modules/FindPrefixFromConfig.cmake ++++ b/cmake/Modules/FindPrefixFromConfig.cmake +@@ -39,10 +39,10 @@ function(find_prefix_from_config out_var prefix_var path_to_leave) + # install prefix, and avoid hard-coding any absolute paths. + set(config_code + "# Compute the installation prefix from this LLVMConfig.cmake file location." +- "get_filename_component(${prefix_var} \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)") ++ "get_filename_component(${prefix_var} \"\${CMAKE_CURRENT_LIST_FILE}\" REALPATH)") + # Construct the proper number of get_filename_component(... PATH) + # calls to compute the installation prefix. +- string(REGEX REPLACE "/" ";" _count "${path_to_leave}") ++ string(REGEX REPLACE "/" ";" _count "${path_to_leave}/plus_one") + foreach(p ${_count}) + list(APPEND config_code + "get_filename_component(${prefix_var} \"\${${prefix_var}}\" PATH)") +-- +2.48.1 + diff --git a/0003-PATCH-clang-Don-t-install-static-libraries.patch b/0003-PATCH-clang-Don-t-install-static-libraries.patch new file mode 100644 index 0000000000000000000000000000000000000000..bc8fa51fbe7f00ff102443a4098f0b12c1c6c1db --- /dev/null +++ b/0003-PATCH-clang-Don-t-install-static-libraries.patch @@ -0,0 +1,25 @@ +From 88704fc2eabb9dd19a9c3eb81a9b3dc37d95651c Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Fri, 31 Jan 2020 11:04:57 -0800 +Subject: [PATCH][clang] Don't install static libraries + +--- + clang/cmake/modules/AddClang.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/clang/cmake/modules/AddClang.cmake b/clang/cmake/modules/AddClang.cmake +index 5752f4277444..0f52822d91f0 100644 +--- a/clang/cmake/modules/AddClang.cmake ++++ b/clang/cmake/modules/AddClang.cmake +@@ -113,7 +113,7 @@ macro(add_clang_library name) + if(TARGET ${lib}) + target_link_libraries(${lib} INTERFACE ${LLVM_COMMON_LIBS}) + +- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ARG_INSTALL_WITH_TOOLCHAIN) ++ if (ARG_SHARED AND (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ARG_INSTALL_WITH_TOOLCHAIN)) + get_target_export_arg(${name} Clang export_to_clangtargets UMBRELLA clang-libraries) + install(TARGETS ${lib} + COMPONENT ${lib} +-- +2.30.2 + diff --git a/131801.patch b/131801.patch new file mode 100644 index 0000000000000000000000000000000000000000..853fba89b12b0fe1a75e63d8e32f913333e9ca83 --- /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-project-19.1.7.src.tar.xz b/llvm-project-19.1.7.src.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..bd4c99a1b3a78f671110ca7734d43fc147746dca Binary files /dev/null and b/llvm-project-19.1.7.src.tar.xz differ diff --git a/llvm-project-20.1.3.src.tar.xz b/llvm-project-20.1.3.src.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..f22ff2354b486589a1a75b40cb7e15a0e6999bbf Binary files /dev/null and b/llvm-project-20.1.3.src.tar.xz differ diff --git a/llvm.spec b/llvm.spec index 098e8d8cae072a972643c82fda64c1650d42e65c..ab391291c1db706994bf350cf00cc13402006f45 100644 --- a/llvm.spec +++ b/llvm.spec @@ -1,4 +1,4 @@ -%define anolis_release 7 +%define anolis_release 1 %global toolchain clang @@ -152,6 +152,16 @@ Patch81: 0081-LoongArch-Delete-R_LARCH_DELETE-and-R_LARCH_CFA-relo.patch Patch82: 0082-LoongArch-Precommit-test-case-to-show-bug-in-LoongAr.patch Patch83: 0083-LoongArch-Pass-OptLevel-to-LoongArchDAGToDAGISel-cor.patch Patch84: 0084-LoongArch-Fix-test-cases-after-2dd8460d8a36.patch +Patch85: 0001-19-Always-build-shared-libs-for-LLD.patch +Patch86: 0001-SystemZ-Fix-ICE-with-i128-i64-uaddo-carry-chain.patch +Patch87: 0001-Driver-Give-devtoolset-path-precedence-over-Installe.patch +Patch88: 0001-20-polly-shared-libs.patch +Patch89: 0001-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch +Patch90: 0001-Workaround-a-bug-in-ORC-on-ppc64le.patch +Patch91: 0001-Fix-page-size-constant-on-aarch64-and-ppc64le.patch +Patch92: 131801.patch +Patch93: 0003-PATCH-clang-Don-t-install-static-libraries.patch +Patch94: 0001-cmake-Resolve-symlink-when-finding-install-prefix.patch BuildRequires: gcc gcc-c++ clang cmake ninja-build zlib-devel libffi-devel BuildRequires: libxml2-devel ncurses-devel python3-psutil python3-sphinx @@ -578,6 +588,14 @@ fi %endif %changelog +* Mon Jun 30 2025 wenyuzifang - 20.1.3-1 +- Updated to version 20.1.3 to fix xxxxxxxxx +- Fixes ICE in SystemZ backend for i128-to-i64 uaddo carry chains. +- Ensure devtoolset tools take precedence for correct toolchain usage. +- Apply to fix symbol resolution issues on ppc64le JIT compilation. +- Ensure correct CFI shadow mapping on AArch64 and PPC64LE with 64KB pages. +- Prevents miscompilation by avoiding merging of special llvm.metadata globals. + * Thu Jun 12 2025 Chen Li - 17.0.6-7 - LoongArch Backport: Pass OptLevel to LoongArchDAGToDAGISel correctly @@ -658,4 +676,4 @@ fi - Add arm to targets_to_buid * Wed Mar 9 2022 forrest_ly - 13.0.1-1 -- Init for Anolis OS 23 +- Init for Anolis OS 23 \ No newline at end of file