summaryrefslogtreecommitdiffstats
path: root/debian/patches/d-rustc-fix-mips64el-bootstrap.patch
blob: 3d2d8ff59324396cfbab084313a3f623f710829f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
From: Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
Date: Thu, 14 Jul 2022 13:17:39 +0200
Subject: d-rustc-fix-mips64el-bootstrap

Bug: https://github.com/rust-lang/rust/issues/52108

===================================================================
---
 compiler/rustc_target/src/spec/mips64_unknown_linux_gnuabi64.rs   | 2 +-
 compiler/rustc_target/src/spec/mips64el_unknown_linux_gnuabi64.rs | 2 +-
 src/bootstrap/bootstrap.py                                        | 2 ++
 src/test/assembly/asm/mips-types.rs                               | 1 +
 4 files changed, 5 insertions(+), 2 deletions(-)

Index: rust/compiler/rustc_target/src/spec/mips64_unknown_linux_gnuabi64.rs
===================================================================
--- rust.orig/compiler/rustc_target/src/spec/mips64_unknown_linux_gnuabi64.rs
+++ rust/compiler/rustc_target/src/spec/mips64_unknown_linux_gnuabi64.rs
@@ -12,7 +12,7 @@ pub fn target() -> Target {
             endian: Endian::Big,
             // NOTE(mips64r2) matches C toolchain
             cpu: "mips64r2".into(),
-            features: "+mips64r2".into(),
+            features: "+mips64r2,+xgot".into(),
             max_atomic_width: Some(64),
             mcount: "_mcount".into(),
 
Index: rust/compiler/rustc_target/src/spec/mips64el_unknown_linux_gnuabi64.rs
===================================================================
--- rust.orig/compiler/rustc_target/src/spec/mips64el_unknown_linux_gnuabi64.rs
+++ rust/compiler/rustc_target/src/spec/mips64el_unknown_linux_gnuabi64.rs
@@ -10,7 +10,7 @@ pub fn target() -> Target {
             abi: "abi64".into(),
             // NOTE(mips64r2) matches C toolchain
             cpu: "mips64r2".into(),
-            features: "+mips64r2".into(),
+            features: "+mips64r2,+xgot".into(),
             max_atomic_width: Some(64),
             mcount: "_mcount".into(),
 
Index: rust/src/bootstrap/bootstrap.py
===================================================================
--- rust.orig/src/bootstrap/bootstrap.py
+++ rust/src/bootstrap/bootstrap.py
@@ -759,6 +759,8 @@ class RustBuild(object):
 
         # preserve existing RUSTFLAGS
         env.setdefault("RUSTFLAGS", "")
+        if self.build_triple().startswith('mips'):
+            env["RUSTFLAGS"] += " -Ctarget-feature=+xgot"
         target_features = []
         if self.get_toml("crt-static", build_section) == "true":
             target_features += ["+crt-static"]
Index: rust/tests/assembly/asm/mips-types.rs
===================================================================
--- rust.orig/tests/assembly/asm/mips-types.rs
+++ rust/tests/assembly/asm/mips-types.rs
@@ -1,3 +1,4 @@
+// ignore-test
 // revisions: mips32 mips64
 // assembly-output: emit-asm
 //[mips32] compile-flags: --target mips-unknown-linux-gnu