From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 6957C1580E0 for ; Mon, 02 Jun 2025 09:25:30 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 56C55343057 for ; Mon, 02 Jun 2025 09:25:30 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 34BB71104A7; Mon, 02 Jun 2025 09:25:14 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 27BBA1104A5 for ; Mon, 02 Jun 2025 09:25:14 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id D37EA34301C for ; Mon, 02 Jun 2025 09:25:13 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 3E61828EE for ; Mon, 02 Jun 2025 09:25:11 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.76 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.76 Date: Mon, 02 Jun 2025 09:25:11 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 90cdf62e-4d88-4bb7-b733-8c88865e5331 X-Archives-Hash: c5e90cfa18dad3af9ad906915e8eff19 commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 3FCD21580E0 for ; Mon, 02 Jun 2025 09:25:33 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 2DE8534305E for ; Mon, 02 Jun 2025 09:25:33 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 456421104A8; Mon, 02 Jun 2025 09:25:14 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 3C8421104A8 for ; Mon, 02 Jun 2025 09:25:14 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id EA07F342FF1 for ; Mon, 02 Jun 2025 09:25:13 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id A7E9F28F2 for ; Mon, 02 Jun 2025 09:25:11 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.77 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.77 Date: Mon, 02 Jun 2025 09:25:11 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 3a19ba1a-9b3a-4800-b956-5259dedcf775 X-Archives-Hash: fca8bff8cb29f349dcb6639ecb7029eb Message-ID: <20250602092511.sKkFIYAsAgwMW5NLou-ZUBurkLDTzIGnQGEpybN1j2w@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 8AC3F1580E0 for ; Mon, 02 Jun 2025 09:25:41 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 7618F343066 for ; Mon, 02 Jun 2025 09:25:41 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 8B0B311027C; Mon, 02 Jun 2025 09:25:15 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 8447811027C for ; Mon, 02 Jun 2025 09:25:15 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 3571134300E for ; Mon, 02 Jun 2025 09:25:15 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 3720E28FD for ; Mon, 02 Jun 2025 09:25:12 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.78 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.78 Date: Mon, 02 Jun 2025 09:25:12 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 2ad3f17c-93a2-402b-9142-a8904a94907e X-Archives-Hash: 8a1c1a0f06b786fa5ca353be30f40ce2 Message-ID: <20250602092512.m4CrKTndSipDbyBqfknVRPi0UW77kcK6hnxyeJU24DY@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id CFE6A1580E0 for ; Mon, 02 Jun 2025 09:25:52 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id BD51B3430D0 for ; Mon, 02 Jun 2025 09:25:52 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id B7C681104BC; Mon, 02 Jun 2025 09:25:15 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id B29F11104BC for ; Mon, 02 Jun 2025 09:25:15 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 6C09B3430A5 for ; Mon, 02 Jun 2025 09:25:15 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id D120C28FE for ; Mon, 02 Jun 2025 09:25:12 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.79 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.79 Date: Mon, 02 Jun 2025 09:25:12 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 0879375b-598a-49c7-ab81-acefe1a01572 X-Archives-Hash: 70dc16e84816ca5749c6b1139b758952 Message-ID: <20250602092512.FmpduEF-Ob5Jpq0ODo_0vzG2KBuEBzMMzFweiyI8jDo@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id EE04B1580E0 for ; Mon, 02 Jun 2025 09:25:58 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id DA57634301C for ; Mon, 02 Jun 2025 09:25:58 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id E37911104C4; Mon, 02 Jun 2025 09:25:15 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id DB53E1104C5 for ; Mon, 02 Jun 2025 09:25:15 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 9667034300E for ; Mon, 02 Jun 2025 09:25:15 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 793772916 for ; Mon, 02 Jun 2025 09:25:13 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.80 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.80 Date: Mon, 02 Jun 2025 09:25:13 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 4daae281-9973-43ca-a80e-99a0781b34d8 X-Archives-Hash: 2a187fb26426f7c9f65fb35a31943301 Message-ID: <20250602092513.IuHUYOvbm9SX2vcHfLjMLREzMrbQtqSn-eXuAwBUC8I@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id D5B121580E0 for ; Mon, 02 Jun 2025 09:26:13 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id B0A0A3430BA for ; Mon, 02 Jun 2025 09:26:13 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 3314B1104CE; Mon, 02 Jun 2025 09:25:17 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 21B461104CE for ; Mon, 02 Jun 2025 09:25:17 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id C8EA3343057 for ; Mon, 02 Jun 2025 09:25:16 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 3916428EE for ; Mon, 02 Jun 2025 09:25:14 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.81 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.81 Date: Mon, 02 Jun 2025 09:25:14 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: c0eca121-a319-4db0-a91b-33498b415148 X-Archives-Hash: 03dcd2a58daa4ed190ebb3346695f61d Message-ID: <20250602092514.TjPRXIdAVm1QpPD05fbgKopD_owLZO-iiHzZ5nBDm4A@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 502D21580E0 for ; Mon, 02 Jun 2025 09:26:23 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 3D7AB343144 for ; Mon, 02 Jun 2025 09:26:23 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 5E3E01104D4; Mon, 02 Jun 2025 09:25:17 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 4A8721102CD for ; Mon, 02 Jun 2025 09:25:17 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 054D134300E for ; Mon, 02 Jun 2025 09:25:17 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id F14352931 for ; Mon, 02 Jun 2025 09:25:14 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.82 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.82 Date: Mon, 02 Jun 2025 09:25:14 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 584b8ad1-9343-4deb-a543-a21f82102c22 X-Archives-Hash: df75a954181abf7d56f28754437a1f7f Message-ID: <20250602092514.CqaOngyQeRGgy6skPKY88MvNgAnvvqRr4BVKwSMGbL0@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id DC16F1580E0 for ; Mon, 02 Jun 2025 09:26:34 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id C79833430CD for ; Mon, 02 Jun 2025 09:26:34 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 9CC021104D9; Mon, 02 Jun 2025 09:25:17 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 81F5D1104D9 for ; Mon, 02 Jun 2025 09:25:17 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 3BC18343072 for ; Mon, 02 Jun 2025 09:25:17 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id CBD1C275F for ; Mon, 02 Jun 2025 09:25:15 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.83 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.83 Date: Mon, 02 Jun 2025 09:25:15 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: bd513a5c-d3fb-4e01-975c-2421933d0048 X-Archives-Hash: 3210c3838894154418d007ad329d5f25 Message-ID: <20250602092515.BqpJVbtlZzS-2d_nCZkYCIjnYzcE4goX7nB6f5tCFsQ@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 33A651580E0 for ; Mon, 02 Jun 2025 09:26:46 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 1FF00343056 for ; Mon, 02 Jun 2025 09:26:46 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id C1DDE1104E3; Mon, 02 Jun 2025 09:25:18 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id B7B8D1104E1 for ; Mon, 02 Jun 2025 09:25:18 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 724753430B0 for ; Mon, 02 Jun 2025 09:25:18 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id BF6D72900 for ; Mon, 02 Jun 2025 09:25:16 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.84 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.84 Date: Mon, 02 Jun 2025 09:25:16 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: c99dab7d-541d-476b-bf7a-1107a50bdac7 X-Archives-Hash: e79c3bc7d269756d1fef83d2d992c483 Message-ID: <20250602092516.LVO7tx4nZHoGqJw2g48TrZER0GqQi9hoglbE-AHZzKA@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 0FCF01580E0 for ; Mon, 02 Jun 2025 09:27:09 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id EFA333431EE for ; Mon, 02 Jun 2025 09:27:08 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id A515C1104EE; Mon, 02 Jun 2025 09:25:19 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 9CB801104EE for ; Mon, 02 Jun 2025 09:25:19 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 55B72342FA0 for ; Mon, 02 Jun 2025 09:25:19 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id ECCD527BD for ; Mon, 02 Jun 2025 09:25:17 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.85 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.85 Date: Mon, 02 Jun 2025 09:25:17 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 711311a4-2bd3-4c6f-b4c9-791b2f487974 X-Archives-Hash: c05f104451dfc82ed55371816f791db4 Message-ID: <20250602092517.8DeFKLCVVwX8XsOFyhKQQT00ZscD6orAt3n_Z014wy8@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 55DCC1580E0 for ; Mon, 02 Jun 2025 09:27:29 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 42F6E343205 for ; Mon, 02 Jun 2025 09:27:29 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id E6AA51104FA; Mon, 02 Jun 2025 09:25:20 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id D8EB41104FA for ; Mon, 02 Jun 2025 09:25:20 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 93A6E342FF1 for ; Mon, 02 Jun 2025 09:25:20 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 36CBD28EF for ; Mon, 02 Jun 2025 09:25:19 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.86 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.86 Date: Mon, 02 Jun 2025 09:25:19 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: b5f7861d-818b-44c2-a9e0-ebd3e46f2db1 X-Archives-Hash: 30a689806756c3d74a4e76a0f769bacf Message-ID: <20250602092519.JXu98g3y16teqE4FzA7FPEkJaLkj5jdU_ybW9Qz86ec@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id A9C571580E0 for ; Mon, 02 Jun 2025 09:27:50 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 94FF734320D for ; Mon, 02 Jun 2025 09:27:50 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 52B13110505; Mon, 02 Jun 2025 09:25:22 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 48D0E110505 for ; Mon, 02 Jun 2025 09:25:22 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 02C3834305E for ; Mon, 02 Jun 2025 09:25:22 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 96CC1289D for ; Mon, 02 Jun 2025 09:25:20 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.87 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.87 Date: Mon, 02 Jun 2025 09:25:20 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 30141bdb-a138-45fa-b85a-8b9bf319071d X-Archives-Hash: 1ae354173a9db06d5add7e0ccc1a7fbb Message-ID: <20250602092520.tbSXDzxO0hfP6tHMhS8rgkBI4MuB2-_tQo3OIGWCF58@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id A13911580E0 for ; Mon, 02 Jun 2025 09:28:14 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 8D9F23431BA for ; Mon, 02 Jun 2025 09:28:14 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id CC443110513; Mon, 02 Jun 2025 09:25:23 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id BDA2D110513 for ; Mon, 02 Jun 2025 09:25:23 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 78ABA343057 for ; Mon, 02 Jun 2025 09:25:23 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 1BBF228F2 for ; Mon, 02 Jun 2025 09:25:22 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.88 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.88 Date: Mon, 02 Jun 2025 09:25:22 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 4ded1be3-4d4d-43f1-b7d4-71259bb258c6 X-Archives-Hash: faec430147f4d3531b7b2e6af5559fc0 Message-ID: <20250602092522.bDwqIASnYPljBS85SQ19ZEszq1DnfjNoQw52_AQjVSM@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id EA0FA1580E0 for ; Mon, 02 Jun 2025 09:28:38 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id D714234326E for ; Mon, 02 Jun 2025 09:28:38 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 558EA110521; Mon, 02 Jun 2025 09:25:25 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 50C5D110521 for ; Mon, 02 Jun 2025 09:25:25 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 0E1F1342FDE for ; Mon, 02 Jun 2025 09:25:25 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id A8F9428F8 for ; Mon, 02 Jun 2025 09:25:23 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:master commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: master Date: Mon, 02 Jun 2025 09:25:23 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 086dc658-b1ab-4850-bf5e-6e52917e2aa0 X-Archives-Hash: 961adf6cf951b9076635ed095963f978 Message-ID: <20250602092523.jm0m_ASr7d1tw74hoLzSAZc_jDdp4FEBkETjh_lu2rA@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 34A041580E0 for ; Mon, 02 Jun 2025 09:34:38 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 1F3AC343142 for ; Mon, 02 Jun 2025 09:34:38 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id BD07A110497; Mon, 02 Jun 2025 09:34:25 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id AECB1110497 for ; Mon, 02 Jun 2025 09:34:25 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 6A43D343064 for ; Mon, 02 Jun 2025 09:34:25 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id AF3B528EE for ; Mon, 02 Jun 2025 09:34:22 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.76.0-r101 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.76.0-r101 Date: Mon, 02 Jun 2025 09:34:22 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: a4cee8b2-1ee9-403b-be3b-64f1f3222d1d X-Archives-Hash: 859b308a8b3c509a5584b988607ab5c6 Message-ID: <20250602093422.yLYPmSByUuVMN1jYR7vxL9JGPbLid7dpuOCwMfYDU18@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 66BFF1580E0 for ; Mon, 02 Jun 2025 09:34:48 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 46B96343198 for ; Mon, 02 Jun 2025 09:34:48 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id E2E401104B0; Mon, 02 Jun 2025 09:34:25 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id D01571104AE for ; Mon, 02 Jun 2025 09:34:25 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 8723134308C for ; Mon, 02 Jun 2025 09:34:25 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 06FC328F2 for ; Mon, 02 Jun 2025 09:34:23 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.77.1-r101 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.77.1-r101 Date: Mon, 02 Jun 2025 09:34:23 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 813993f2-f82f-4cef-a967-adbb440b9805 X-Archives-Hash: 20a1c59d118ce7885faeedb67752bbf2 Message-ID: <20250602093423.aD4QMbpow-vU3NS6Y5AYBUJ8sNE3oeaaYpA-jVHWDqw@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 3AB391580E0 for ; Mon, 02 Jun 2025 09:34:55 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 24B76343212 for ; Mon, 02 Jun 2025 09:34:55 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 488521104BA; Mon, 02 Jun 2025 09:34:27 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 341371104B9 for ; Mon, 02 Jun 2025 09:34:27 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id E0BFE343072 for ; Mon, 02 Jun 2025 09:34:26 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 6587828FD for ; Mon, 02 Jun 2025 09:34:23 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.78.0-r101 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.78.0-r101 Date: Mon, 02 Jun 2025 09:34:23 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 136a4c75-a46a-461b-b8ad-92da735e96ee X-Archives-Hash: 313268579264f8ef01c8a02e0fbff2ba Message-ID: <20250602093423.g8kdWmqSE6Ws1kyhgTZjvrJnVpdi8cD6y-dzOKsqH7I@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id AEC7E1580E0 for ; Mon, 02 Jun 2025 09:35:00 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 9C2C9342FF1 for ; Mon, 02 Jun 2025 09:35:00 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 6A0E91104B9; Mon, 02 Jun 2025 09:34:27 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 5762E1104BE for ; Mon, 02 Jun 2025 09:34:27 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 0FFE33430BA for ; Mon, 02 Jun 2025 09:34:27 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id D894A290D for ; Mon, 02 Jun 2025 09:34:23 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.79.0-r101 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.79.0-r101 Date: Mon, 02 Jun 2025 09:34:23 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 9dd0a5e9-164e-465d-969a-c0c1a44f2eb4 X-Archives-Hash: 7fa5fcf47775a1f526c7d751adc42063 Message-ID: <20250602093423.dDzNYHbcPWrl0Fj8GH6HE8U9uI35T1F2s4-_sKxe1rI@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 46D4E1580E0 for ; Mon, 02 Jun 2025 09:35:16 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 33793343056 for ; Mon, 02 Jun 2025 09:35:16 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 8ABAA1104C9; Mon, 02 Jun 2025 09:34:27 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 729751104BB for ; Mon, 02 Jun 2025 09:34:27 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 2C946343110 for ; Mon, 02 Jun 2025 09:34:27 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 57C6127C2 for ; Mon, 02 Jun 2025 09:34:24 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.80.1-r101 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.80.1-r101 Date: Mon, 02 Jun 2025 09:34:24 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 5829c116-8a53-4486-a379-e427fb96a3d7 X-Archives-Hash: 69e6be4b5414a3c2487297caded5e813 Message-ID: <20250602093424.hVi5JwQppRkCnkJqQ4Ru3_p_zNtvKK80FB8qDppblIs@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 862C31580E0 for ; Mon, 02 Jun 2025 09:35:28 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 7233834325B for ; Mon, 02 Jun 2025 09:35:28 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id DAF1E1104CD; Mon, 02 Jun 2025 09:34:28 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id C7B1E11027C for ; Mon, 02 Jun 2025 09:34:28 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 81ED63430B0 for ; Mon, 02 Jun 2025 09:34:28 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id DE2922940 for ; Mon, 02 Jun 2025 09:34:24 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.81.0-r101 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.81.0-r101 Date: Mon, 02 Jun 2025 09:34:24 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: f495ebc3-9adc-419a-8492-d87ca8e2adcf X-Archives-Hash: 5e7e776d58f3e47ec02f8ec54d46df55 Message-ID: <20250602093424.QQ4ALyUq6Q-0l2M8YQq9toH6E9fCvEFzMlRdimCb3q0@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 83ADB1580E0 for ; Mon, 02 Jun 2025 09:35:38 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 700A534325C for ; Mon, 02 Jun 2025 09:35:38 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id F19FA1104D6; Mon, 02 Jun 2025 09:34:28 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id E7BD311027C for ; Mon, 02 Jun 2025 09:34:28 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id A3A31343119 for ; Mon, 02 Jun 2025 09:34:28 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 6D5E8297E for ; Mon, 02 Jun 2025 09:34:25 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.82.0-r103 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.82.0-r103 Date: Mon, 02 Jun 2025 09:34:25 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 61552ac7-27eb-40d6-88c0-6a7703e1d565 X-Archives-Hash: 8d35ee3fc8d2dcc8d06e04fe69c8416a Message-ID: <20250602093425.-AhixWn8rRG-8fICqNT3GfTB8tJAnGvfwObDcbDT7Sw@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 40FA01580E0 for ; Mon, 02 Jun 2025 09:35:52 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 2D832343239 for ; Mon, 02 Jun 2025 09:35:52 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 293811104DC; Mon, 02 Jun 2025 09:34:29 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 16D101104DA for ; Mon, 02 Jun 2025 09:34:29 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id C6EAD34312C for ; Mon, 02 Jun 2025 09:34:28 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 14D1B28F1 for ; Mon, 02 Jun 2025 09:34:26 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.83.0-r3 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.83.0-r3 Date: Mon, 02 Jun 2025 09:34:26 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: dcb3f077-e412-4637-a206-d409eb03e1d4 X-Archives-Hash: 77f1c2ddf96d761477506d837019e320 Message-ID: <20250602093426.CJnwfHg_NgV_UrXvSod08f_zdkXgYnLpJF98_qMklpQ@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id A603F1580E0 for ; Mon, 02 Jun 2025 09:36:09 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 926B53432A3 for ; Mon, 02 Jun 2025 09:36:09 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 978C01104E4; Mon, 02 Jun 2025 09:34:30 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 801461102CD for ; Mon, 02 Jun 2025 09:34:30 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 35523343119 for ; Mon, 02 Jun 2025 09:34:30 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id C69202985 for ; Mon, 02 Jun 2025 09:34:26 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.84.0-r2 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.84.0-r2 Date: Mon, 02 Jun 2025 09:34:26 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: e1fc2388-e6bb-4726-9d0e-b7cfb927c0fe X-Archives-Hash: be8583d68bfdf04105a58d0cd8b0ae8a Message-ID: <20250602093426.khrm46uvXZdiScpGVISXx1piNzS5K-3enOURKkbGo08@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 9B6061580E0 for ; Mon, 02 Jun 2025 09:36:29 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id E0FDE3432E9 for ; Mon, 02 Jun 2025 09:36:25 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id B91DC1104ED; Mon, 02 Jun 2025 09:34:30 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id A68321104EA for ; Mon, 02 Jun 2025 09:34:30 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 636C634305E for ; Mon, 02 Jun 2025 09:34:30 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 8F7DF27BD for ; Mon, 02 Jun 2025 09:34:27 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.84.1-r2 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.84.1-r2 Date: Mon, 02 Jun 2025 09:34:27 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: c5d52347-ef7b-41ea-95c4-444370163c52 X-Archives-Hash: b83138de5b4caf1d0695073d98e3dbda Message-ID: <20250602093427.Boj7rNt-oPWlpcb1-eZ4H7RIiMaFD3sep0nB-cCt_lA@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 5CA9D1580E0 for ; Mon, 02 Jun 2025 09:36:50 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 32083343315 for ; Mon, 02 Jun 2025 09:36:46 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 470BD1104F7; Mon, 02 Jun 2025 09:34:32 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 2BAA21104F9 for ; Mon, 02 Jun 2025 09:34:32 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id CBF57343061 for ; Mon, 02 Jun 2025 09:34:31 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 6CBDE291E for ; Mon, 02 Jun 2025 09:34:28 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.85.0-r2 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.85.0-r2 Date: Mon, 02 Jun 2025 09:34:28 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 5812fc47-4f21-42b2-ae6d-3f56deeed5a8 X-Archives-Hash: cf9d473e5d500b8f11884863a3db788a Message-ID: <20250602093428.1Aj8t-0Qr-9XSPBgbuMp9d99_akhjdyYN33mJtz33s4@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 376BB1580E0 for ; Mon, 02 Jun 2025 09:37:06 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 4126B343266 for ; Mon, 02 Jun 2025 09:37:03 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 774D7110504; Mon, 02 Jun 2025 09:34:32 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 688CA1104FF for ; Mon, 02 Jun 2025 09:34:32 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 227F9343126 for ; Mon, 02 Jun 2025 09:34:32 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 5A1E028EF for ; Mon, 02 Jun 2025 09:34:29 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.85.1-r1 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.85.1-r1 Date: Mon, 02 Jun 2025 09:34:29 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: c3444111-6564-41da-b04f-8d03e8b0dad0 X-Archives-Hash: 836adc402c418579401d792655b2bf74 Message-ID: <20250602093429.3RIovC4aM19ExbDfgSbXJ90FSlC0PpGy9jxyeklv9l0@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 4B4DB1580E0 for ; Mon, 02 Jun 2025 09:37:20 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id BD962343307 for ; Mon, 02 Jun 2025 09:37:18 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id E21B111050C; Mon, 02 Jun 2025 09:34:33 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id C84E311050D for ; Mon, 02 Jun 2025 09:34:33 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 867D234307B for ; Mon, 02 Jun 2025 09:34:33 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 4B914297F for ; Mon, 02 Jun 2025 09:34:30 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.86.0-r2 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.86.0-r2 Date: Mon, 02 Jun 2025 09:34:30 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: c0d9b3a8-5979-48e9-85f7-d594c0de3fea X-Archives-Hash: 09144018b7734ee703a99d82616fcc55 Message-ID: <20250602093430.eFy2qnjEiB0Pc1Zwwmc0Zzjg0FQm7-EsDzWXJDJRcUQ@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id D08191580E0 for ; Mon, 02 Jun 2025 09:37:45 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 5DEA1343334 for ; Mon, 02 Jun 2025 09:37:45 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 6A75511051A; Mon, 02 Jun 2025 09:34:35 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 5494911051B for ; Mon, 02 Jun 2025 09:34:35 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 10B79343142 for ; Mon, 02 Jun 2025 09:34:35 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 4C8F82982 for ; Mon, 02 Jun 2025 09:34:31 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.87.0-r1 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.87.0-r1 Date: Mon, 02 Jun 2025 09:34:31 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 10ef3895-a68b-4582-a5cf-feac64e30d5c X-Archives-Hash: 0a5fb884ad498fcb96c51756b87049d3 Message-ID: <20250602093431.Euai4KD7awchzhhY3xCwFHoXNXDRnKhS9l8GYlSB_zo@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 + From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 2109C1580E0 for ; Mon, 02 Jun 2025 09:38:02 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 0EB7F343264 for ; Mon, 02 Jun 2025 09:38:02 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 97E10110526; Mon, 02 Jun 2025 09:34:35 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 8DA98110523 for ; Mon, 02 Jun 2025 09:34:35 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 4AEA234316A for ; Mon, 02 Jun 2025 09:34:35 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 611582822 for ; Mon, 02 Jun 2025 09:34:32 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1748856136.e6afd1fe4bd15d46f748745ba16c6206b14a62c6.kangie@gentoo> Subject: [gentoo-commits] proj/rust-patches:1.88.0_beta20250526 commit in: / X-VCS-Repository: proj/rust-patches X-VCS-Files: 1.76.0-loong-code-model.patch X-VCS-Directories: / X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 X-VCS-Branch: 1.88.0_beta20250526 Date: Mon, 02 Jun 2025 09:34:32 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: b5e675a5-9d0f-459a-abe9-cc76070f9573 X-Archives-Hash: e0693512182c196e3c57cdae81f51806 Message-ID: <20250602093432.qo0IEVv4RjbnOd3_FKfy09TY7vZrJEoqBuE_h3eWURI@z> commit: e6afd1fe4bd15d46f748745ba16c6206b14a62c6 Author: Matt Jolly gentoo org> AuthorDate: Mon Jun 2 09:22:16 2025 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Jun 2 09:22:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=e6afd1fe Add patches for Rust 1.76.0-r101 Patches: - 1.67.0-doc-wasm.patch - 1.70.0-ignore-broken-and-non-applicable-tests.patch - 1.74.1-cross-compile-libz.patch - 1.75.0-handle-vendored-sources.patch - 1.75.0-musl-dynamic-linking.patch - 1.76.0-loong-code-model.patch Signed-off-by: Matt Jolly gentoo.org> 1.76.0-loong-code-model.patch | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/1.76.0-loong-code-model.patch b/1.76.0-loong-code-model.patch new file mode 100644 index 0000000..02bfeca --- /dev/null +++ b/1.76.0-loong-code-model.patch @@ -0,0 +1,73 @@ +https://github.com/rust-lang/rust/pull/120661 +From: WANG Xuerui +Date: Mon, 5 Feb 2024 13:18:32 +0800 +Subject: [PATCH] target: default to the medium code model on LoongArch targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Rust LoongArch targets have been using the default LLVM code model +so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak. +As described in the "Code Model" section of LoongArch ELF psABI spec +v20231219 [1], one can only make function calls as far as ±128MiB with +the "normal" code model; this is insufficient for very large software +containing Rust components that needs to be linked into the big text +section, such as Chromium. + +Because: + +* we do not want to ask users to recompile std if they are to build + such software, +* objects compiled with larger code models can be linked with those + with smaller code models without problems, and +* the "medium" code model is comparable to the "small"/"normal" one + performance-wise (same data access pattern; each function call + becomes 2-insn long and indirect, but this may be relaxed back into + the direct 1-insn form in a future LLVM version), but is able to + perform function calls within ±128GiB, + +it is better to just switch the targets to the "medium" code model, +which is also "medium" in LLVM-speak. + +[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +@@ -1,4 +1,4 @@ +-use crate::spec::{base, Target, TargetOptions}; ++use crate::spec::{base, CodeModel, Target, TargetOptions}; + + pub fn target() -> Target { + Target { +@@ -7,6 +7,7 @@ pub fn target() -> Target { + data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), + arch: "loongarch64".into(), + options: TargetOptions { ++ code_model: Some(CodeModel::Medium), + cpu: "generic".into(), + features: "+f,+d".into(), + llvm_abiname: "lp64d".into(), +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs +@@ -16,7 +16,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + max_atomic_width: Some(64), + relocation_model: RelocModel::Static, + panic_strategy: PanicStrategy::Abort, +- code_model: Some(CodeModel::Small), ++ code_model: Some(CodeModel::Medium), + ..Default::default() + }, + } +-- +2.43.0 +