Annotation of /trunk/rust/patches/rust-1.71.1-0003-compiler-Change-LLVM-targets.patch
Parent Directory | Revision Log
Revision 3755 -
(hide annotations)
(download)
Sun Aug 6 10:48:54 2023 UTC (9 months, 4 weeks ago) by niro
File size: 3985 byte(s)
Sun Aug 6 10:48:54 2023 UTC (9 months, 4 weeks ago) by niro
File size: 3985 byte(s)
-rust-1.71.1 archlinux patches
1 | niro | 3755 | From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
2 | From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org> | ||
3 | Date: Fri, 12 Mar 2021 17:31:56 +0100 | ||
4 | Subject: [PATCH] compiler: Change LLVM targets | ||
5 | |||
6 | - Change x86_64-unknown-linux-gnu to use x86_64-pc-linux-gnu | ||
7 | - Change i686-unknown-linux-gnu to use i686-pc-linux-gnu | ||
8 | |||
9 | Reintroduce the aliasing that was removed in 1.52.0 and alias the -pc- | ||
10 | triples to the -unknown- triples. This avoids defining proper -pc- | ||
11 | targets, as things break when this is done: | ||
12 | |||
13 | - The crate ecosystem expects the -unknown- targets. Making -pc- | ||
14 | rustc's host triple (and thus default target) would break various | ||
15 | crates. | ||
16 | - Firefox's build breaks when the host triple (from | ||
17 | `rustc --version --verbose`) is different from the target triple | ||
18 | (from `rustc --print target-list`) that best matches autoconf. | ||
19 | --- | ||
20 | compiler/rustc_session/src/config.rs | 2 +- | ||
21 | compiler/rustc_target/src/spec/i686_unknown_linux_gnu.rs | 2 +- | ||
22 | compiler/rustc_target/src/spec/mod.rs | 9 +++++++++ | ||
23 | .../rustc_target/src/spec/x86_64_unknown_linux_gnu.rs | 2 +- | ||
24 | 4 files changed, 12 insertions(+), 3 deletions(-) | ||
25 | |||
26 | diff --git a/compiler/rustc_session/src/config.rs b/compiler/rustc_session/src/config.rs | ||
27 | index 6c8c8e484f93..a5e0f7125405 100644 | ||
28 | --- a/compiler/rustc_session/src/config.rs | ||
29 | +++ b/compiler/rustc_session/src/config.rs | ||
30 | @@ -1989,7 +1989,7 @@ pub fn parse_target_triple( | ||
31 | early_error(error_format, format!("target file {path:?} does not exist")) | ||
32 | }) | ||
33 | } | ||
34 | - Some(target) => TargetTriple::TargetTriple(target), | ||
35 | + Some(target) => TargetTriple::from_alias(target), | ||
36 | _ => TargetTriple::from_triple(host_triple()), | ||
37 | } | ||
38 | } | ||
39 | diff --git a/compiler/rustc_target/src/spec/i686_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/i686_unknown_linux_gnu.rs | ||
40 | index 73e536a7e4d9..af48d437533c 100644 | ||
41 | --- a/compiler/rustc_target/src/spec/i686_unknown_linux_gnu.rs | ||
42 | +++ b/compiler/rustc_target/src/spec/i686_unknown_linux_gnu.rs | ||
43 | @@ -9,7 +9,7 @@ pub fn target() -> Target { | ||
44 | base.stack_probes = StackProbeType::X86; | ||
45 | |||
46 | Target { | ||
47 | - llvm_target: "i686-unknown-linux-gnu".into(), | ||
48 | + llvm_target: "i686-pc-linux-gnu".into(), | ||
49 | pointer_width: 32, | ||
50 | data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\ | ||
51 | f64:32:64-f80:32-n8:16:32-S128" | ||
52 | diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs | ||
53 | index ba4b89c9ea10..bb9a28a18bb4 100644 | ||
54 | --- a/compiler/rustc_target/src/spec/mod.rs | ||
55 | +++ b/compiler/rustc_target/src/spec/mod.rs | ||
56 | @@ -2984,6 +2984,15 @@ pub fn from_path(path: &Path) -> Result<Self, io::Error> { | ||
57 | Ok(TargetTriple::TargetJson { path_for_rustdoc: canonicalized_path, triple, contents }) | ||
58 | } | ||
59 | |||
60 | + /// Creates a target triple from its alias | ||
61 | + pub fn from_alias(triple: String) -> Self { | ||
62 | + match triple.as_str() { | ||
63 | + "x86_64-pc-linux-gnu" => TargetTriple::from_triple("x86_64-unknown-linux-gnu"), | ||
64 | + "i686-pc-linux-gnu" => TargetTriple::from_triple("i686-unknown-linux-gnu"), | ||
65 | + _ => TargetTriple::TargetTriple(triple), | ||
66 | + } | ||
67 | + } | ||
68 | + | ||
69 | /// Returns a string triple for this target. | ||
70 | /// | ||
71 | /// If this target is a path, the file name (without extension) is returned. | ||
72 | diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs | ||
73 | index 9af1049b8702..f2ca57a00e3d 100644 | ||
74 | --- a/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs | ||
75 | +++ b/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs | ||
76 | @@ -15,7 +15,7 @@ pub fn target() -> Target { | ||
77 | base.supports_xray = true; | ||
78 | |||
79 | Target { | ||
80 | - llvm_target: "x86_64-unknown-linux-gnu".into(), | ||
81 | + llvm_target: "x86_64-pc-linux-gnu".into(), | ||
82 | pointer_width: 64, | ||
83 | data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" | ||
84 | .into(), |