23
23
4 files changed, 52 insertions(+), 19 deletions(-)
24
24
25
25
diff --git a/build/config/rust.gni b/build/config/rust.gni
26
- index b7e3c88..d0abc26 100644
26
+ index 5b7807a..2a7802f 100644
27
27
--- a/build/config/rust.gni
28
28
+++ b/build/config/rust.gni
29
29
@@ -97,6 +97,11 @@ declare_args() {
@@ -38,51 +38,56 @@ index b7e3c88..d0abc26 100644
38
38
}
39
39
40
40
# Use a separate declare_args so these variables' defaults can depend on the
41
- @@ -191,12 +196,19 @@ if (enable_rust) {
42
- # other toolchains .
41
+ @@ -197,14 +202,21 @@ if (enable_rust) {
42
+ # https://issues.chromium.org/u/1/issues/372512092#comment5 for an example .
43
43
rust_abi_target = ""
44
44
if (is_linux || is_chromeos) {
45
45
+ vendor = "-unknown"
46
46
+
47
47
+ is_host = current_toolchain == host_toolchain || toolchain_for_rust_host_build_tools
48
48
+ if (!is_host && rust_target_triple_vendor_for_target != "") {
49
- + vendor = rust_target_triple_vendor_for_target
49
+ + vendor = rust_target_triple_vendor_for_target
50
50
+ }
51
51
+
52
52
if (current_cpu == "arm64") {
53
53
- rust_abi_target = "aarch64-unknown-linux-gnu"
54
54
+ rust_abi_target = "aarch64" + vendor + "-linux-gnu"
55
+ cargo_target_abi = ""
55
56
} else if (current_cpu == "x86") {
56
57
- rust_abi_target = "i686-unknown-linux-gnu"
57
58
+ rust_abi_target = "i686" + vendor + "-linux-gnu"
59
+ cargo_target_abi = ""
58
60
} else if (current_cpu == "x64") {
59
61
- rust_abi_target = "x86_64-unknown-linux-gnu"
60
62
+ rust_abi_target = "x86_64" + vendor + "-linux-gnu"
63
+ cargo_target_abi = ""
61
64
} else if (current_cpu == "arm") {
62
65
if (arm_float_abi == "hard") {
63
- float_suffix = "hf"
64
- @@ -205,15 +217,15 @@ if (is_linux || is_chromeos) {
66
+ @@ -214,18 +226,18 @@ if (is_linux || is_chromeos) {
65
67
}
66
68
if (arm_arch == "armv7-a" || arm_arch == "armv7") {
67
69
# No way to inform Rust about the -a suffix.
68
70
- rust_abi_target = "armv7-unknown-linux-gnueabi" + float_suffix
69
71
+ rust_abi_target = "armv7" + vendor + "-linux-gnueabi" + float_suffix
72
+ cargo_target_abi = "eabi" + float_suffix
70
73
} else {
71
74
- rust_abi_target = "arm-unknown-linux-gnueabi" + float_suffix
72
75
+ rust_abi_target = "arm" + vendor + "-linux-gnueabi" + float_suffix
76
+ cargo_target_abi = "eabi" + float_suffix
73
77
}
74
78
} else if (current_cpu == "riscv64") {
75
79
- rust_abi_target = "riscv64gc-unknown-linux-gnu"
76
80
+ rust_abi_target = "riscv64gc" + vendor + "-linux-gnu"
81
+ cargo_target_abi = ""
77
82
} else {
78
83
# Best guess for other future platforms.
79
84
- rust_abi_target = current_cpu + "-unknown-linux-gnu"
80
85
+ rust_abi_target = current_cpu + vendor + "-linux-gnu"
86
+ cargo_target_abi = ""
81
87
}
82
88
} else if (is_android) {
83
- import("//build/config/android/abi.gni")
84
89
diff --git a/build/rust/rustc_wrapper.py b/build/rust/rustc_wrapper.py
85
- index b8e490d..d22cf08 100755
90
+ index 8f2096d..de43d44 100755
86
91
--- a/build/rust/rustc_wrapper.py
87
92
+++ b/build/rust/rustc_wrapper.py
88
93
@@ -160,6 +160,7 @@ def main():
@@ -94,10 +99,10 @@ index b8e490d..d22cf08 100755
94
99
abs_build_root = os.getcwd().replace('\\', '/') + '/'
95
100
is_windows = sys.platform == 'win32' or args.target_windows
96
101
diff --git a/build/rust/std/BUILD.gn b/build/rust/std/BUILD.gn
97
- index b9500ee..3acbdf7 100644
102
+ index 38e5ab7..136d06b 100644
98
103
--- a/build/rust/std/BUILD.gn
99
104
+++ b/build/rust/std/BUILD.gn
100
- @@ -189 ,7 +189 ,8 @@ if (toolchain_has_rust) {
105
+ @@ -192 ,7 +192 ,8 @@ if (toolchain_has_rust) {
101
106
# our locally-built std. Both reside in root_out_dir: we must only have one of
102
107
# each per GN toolchain anyway.
103
108
@@ -107,7 +112,7 @@ index b9500ee..3acbdf7 100644
107
112
108
113
if (!rust_prebuilt_stdlib) {
109
114
local_rustc_sysroot = "$root_out_dir/local_rustc_sysroot"
110
- @@ -364 ,12 +365 ,12 @@ if (toolchain_has_rust) {
115
+ @@ -321 ,12 +322 ,12 @@ if (toolchain_has_rust) {
111
116
rust_abi_target,
112
117
]
113
118
@@ -123,7 +128,7 @@ index b9500ee..3acbdf7 100644
123
128
}
124
129
125
130
visibility = [ ":*" ]
126
- @@ -382 ,8 +383 ,18 @@ if (toolchain_has_rust) {
131
+ @@ -339 ,8 +340 ,18 @@ if (toolchain_has_rust) {
127
132
"enable_rust=false")
128
133
deps = [ ":find_stdlib" ]
129
134
sources = get_target_outputs(":find_stdlib")
@@ -144,7 +149,7 @@ index b9500ee..3acbdf7 100644
144
149
145
150
visibility = [ ":*" ]
146
151
}
147
- @@ -423 ,7 +434 ,10 @@ if (toolchain_has_rust) {
152
+ @@ -380 ,7 +391 ,10 @@ if (toolchain_has_rust) {
148
153
":prebuilt_stdlib_libs",
149
154
":stdlib_public_dependent_libs",
150
155
]
0 commit comments