diff --git a/0001-lld-Adjust-compressed-debug-level-test-for-s390x-wit.patch b/0001-lld-Adjust-compressed-debug-level-test-for-s390x-wit.patch new file mode 100644 index 0000000..20dd146 --- /dev/null +++ b/0001-lld-Adjust-compressed-debug-level-test-for-s390x-wit.patch @@ -0,0 +1,29 @@ +From 4fbbdb4f6b95158b87e1b072b3a246722ccf3b7d Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Fri, 19 Dec 2025 17:02:24 +0100 +Subject: [PATCH] [lld] Adjust compressed-debug-level test for s390x with + DFLTCC (#172972) + +After enabling DFLTCC in zlib-ng for s390x this test starts failing, +because slightly better compression is produced at level 1. Add 1c as a +permissible output. +--- + lld/test/ELF/compressed-debug-level.test | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lld/test/ELF/compressed-debug-level.test b/lld/test/ELF/compressed-debug-level.test +index 5a4d37e31eca..7d64298e518f 100644 +--- a/lld/test/ELF/compressed-debug-level.test ++++ b/lld/test/ELF/compressed-debug-level.test +@@ -18,7 +18,7 @@ + # RUN: llvm-readelf --sections %t.6 | FileCheck -check-prefixes=HEADER,LEVEL6 %s + + # HEADER: [Nr] Name Type Address Off Size +-# LEVEL1: [ 1] .debug_info PROGBITS 00000000 000094 0000{{1[def]|21}} ++# LEVEL1: [ 1] .debug_info PROGBITS 00000000 000094 0000{{1[cdef]|21}} + # LEVEL6: [ 1] .debug_info PROGBITS 00000000 000094 00001{{[abc]}} + + ## A little arbitrary debug section which has a different size after +-- +2.50.1 + diff --git a/0003-BPF-Remove-dead-code-related-to-__bpf_trap-global-va.patch b/0003-BPF-Remove-dead-code-related-to-__bpf_trap-global-va.patch new file mode 100644 index 0000000..08de31e --- /dev/null +++ b/0003-BPF-Remove-dead-code-related-to-__bpf_trap-global-va.patch @@ -0,0 +1,34 @@ +From ac5b6151976c70c8b676d3bc6ff82895fe0e1d01 Mon Sep 17 00:00:00 2001 +From: yonghong-song +Date: Tue, 4 Nov 2025 15:15:33 -0800 +Subject: [PATCH] [BPF] Remove dead code related to __bpf_trap global var + (#166440) + +In [1], the symbol __bpf_trap (macro BPF_TRAP) is removed if it is not +used in the code. In the discussion in [1], it is found that the branch +"if (Op.isSymbol())" is actually always false. Remove it to avoid +confusion. + + [1] https://github.com/llvm/llvm-project/pull/166003 +--- + llvm/lib/Target/BPF/BPFAsmPrinter.cpp | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/llvm/lib/Target/BPF/BPFAsmPrinter.cpp b/llvm/lib/Target/BPF/BPFAsmPrinter.cpp +index 378a72ab27dd..abe081c0c76f 100644 +--- a/llvm/lib/Target/BPF/BPFAsmPrinter.cpp ++++ b/llvm/lib/Target/BPF/BPFAsmPrinter.cpp +@@ -176,10 +176,6 @@ void BPFAsmPrinter::emitInstruction(const MachineInstr *MI) { + if (const GlobalValue *GV = Op.getGlobal()) + if (GV->getName() == BPF_TRAP) + SawTrapCall = true; +- } else if (Op.isSymbol()) { +- if (const MCSymbol *Sym = Op.getMCSymbol()) +- if (Sym->getName() == BPF_TRAP) +- SawTrapCall = true; + } + } + } +-- +2.50.1 + diff --git a/llvm.spec b/llvm.spec index c28ca09..fbf4b4d 100644 --- a/llvm.spec +++ b/llvm.spec @@ -2,7 +2,7 @@ #region version %global maj_ver 21 %global min_ver 1 -%global patch_ver 7 +%global patch_ver 8 #global rc_ver rc3 %bcond_with snapshot_build @@ -503,6 +503,7 @@ Patch2003: 0001-cmake-Resolve-symlink-when-finding-install-prefix.patch #region LLD patches Patch106: 0001-19-Always-build-shared-libs-for-LLD.patch +Patch2103: 0001-lld-Adjust-compressed-debug-level-test-for-s390x-wit.patch #endregion LLD patches #region polly patches @@ -519,6 +520,7 @@ Patch501: 0001-Fix-page-size-constant-on-aarch64-and-ppc64le.patch # because they already support kfunc __bpf_trap. Patch502: 0001-BPF-Support-Jump-Table-149715.patch Patch503: 0002-BPF-Remove-unused-weak-symbol-__bpf_trap-166003.patch +Patch504: 0003-BPF-Remove-dead-code-related-to-__bpf_trap-global-va.patch #endregion RHEL patches # Fix a pgo miscompilation triggered by building Rust 1.87 with pgo on ppc64le. @@ -1347,6 +1349,7 @@ Flang runtime libraries. # The following patches have been backported from LLVM 22. %patch -p1 -P502 %patch -p1 -P503 +%patch -p1 -P504 %endif %endif @@ -3537,6 +3540,11 @@ fi %ifnarch %{ix86} s390x riscv64 %{_prefix}/lib/clang/%{maj_ver}/lib/%{compiler_rt_triple}/liborc_rt.a %endif +%ifarch s390x +%if %{maj_ver} >= 22 +%{_prefix}/lib/clang/%{maj_ver}/lib/%{compiler_rt_triple}/liborc_rt.a +%endif +%endif # Additional symlink if two triples are in use. %if "%{llvm_triple}" != "%{compiler_rt_triple}" diff --git a/sources b/sources index cf40641..788e136 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (llvm-project-21.1.7.src.tar.xz) = ae30a53ed929df979849f7433bf705bc3d540aa9e12a02a175eb2483d1a56f9ca1203c9b67795f6e84cf2407c28d46d5d5351b290d8735adb5206103fee6f379 -SHA512 (llvm-project-21.1.7.src.tar.xz.sig) = d02b09c77abd537eb24d6d43470f962c80a9ec6ccc03ac0efc950d90dbdec5b94dd6abad18143890ff85cee2bdeb7bcf1dac2a576ffcab8ef053d8526417bdcc +SHA512 (llvm-project-21.1.8.src.tar.xz) = cae4c44e7bf678071723da63ad5839491d717a7233e7f4791aa408207f3ea42f52de939ad15189b112c02a0770f1bb8d59bae6ad31ef53417a6eea7770fe52ab +SHA512 (llvm-project-21.1.8.src.tar.xz.sig) = 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c SHA512 (llvm-project-20.1.8.src.tar.xz) = f330e72e6a1da468569049437cc0ba7a41abb816ccece7367189344f7ebfef730f4788ac7af2bef0aa8a49341c15ab1d31e941ffa782f264d11fe0dc05470773 SHA512 (llvm-project-20.1.8.src.tar.xz.sig) = d74369bdb4d1b82775161ea53c9c5f3a23ce810f4df5ff617123023f9d8ce720e7d6ecc9e17f8ebd39fd9e7a9de79560abdf2ffe73bcb907a43148d43665d619