Skip to content

Commit 3b2126b

Browse files
committed
update Rust to 1.85.0
`rustc` now warns about the "is-builtin" field in custom targets, so delete it rather than setting it to false. Work around an issue with the vendored cc-rs crate that now requires a target to appear in a generated list, which breaks bootstrap for all custom targets: rust-lang/rust#137064 Signed-off-by: Ben Cressey <[email protected]>
1 parent cd7a064 commit 3b2126b

9 files changed

+115
-25
lines changed

Dockerfile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -338,10 +338,11 @@ RUN \
338338

339339
ARG HOST_ARCH
340340
ENV VENDOR="bottlerocket"
341-
ENV RUSTVER="1.83.0"
341+
ENV RUSTVER="1.85.0"
342342

343343
USER builder
344344
WORKDIR /home/builder
345+
COPY ./patches/rust ./patches
345346
COPY ./hashes/rust ./hashes
346347
RUN \
347348
sdk-fetch hashes && \
@@ -352,7 +353,8 @@ RUN \
352353
WORKDIR /home/builder/rust
353354
RUN \
354355
dir=build/cache/$(awk -F= '/^compiler_date/{print $2}' src/stage0); \
355-
mkdir -p $dir && mv ../*.xz $dir
356+
mkdir -p $dir && mv ../*.xz $dir && \
357+
find "${HOME}/patches" -type f -name '*.patch' -print -exec patch -p1 -i {} \;
356358

357359
# For any architecture, we rely on two or more of Rust's native targets:
358360
#

configs/rust/config.toml.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# See the example config for more details on these settings:
22
# https://github.com/rust-lang/rust/blob/master/config.example.toml
3-
change-id = 125535
3+
change-id = 134650
44

55
[build]
66
target = [

configs/rust/targets/aarch64-bottlerocket-linux-gnu.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22
"arch": "aarch64",
33
"crt-objects-fallback": "false",
44
"crt-static-respected": true,
5-
"data-layout": "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32",
5+
"data-layout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32",
66
"dynamic-linking": true,
77
"env": "gnu",
88
"features": "+v8a,+outline-atomics",
99
"has-rpath": true,
1010
"has-thread-local": true,
11-
"is-builtin": false,
1211
"linker-flavor": "gnu-cc",
1312
"llvm-target": "aarch64-unknown-linux-gnu",
1413
"max-atomic-width": 128,

configs/rust/targets/aarch64-bottlerocket-linux-musl.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@
33
"crt-objects-fallback": "musl",
44
"crt-static-default": true,
55
"crt-static-respected": true,
6-
"data-layout": "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32",
6+
"data-layout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32",
77
"dynamic-linking": true,
88
"env": "musl",
99
"features": "+v8a",
1010
"has-rpath": true,
1111
"has-thread-local": true,
12-
"is-builtin": false,
1312
"linker-flavor": "gnu-cc",
1413
"llvm-target": "aarch64-unknown-linux-musl",
1514
"max-atomic-width": 128,

configs/rust/targets/x86_64-bottlerocket-linux-gnu.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
"env": "gnu",
99
"has-rpath": true,
1010
"has-thread-local": true,
11-
"is-builtin": false,
1211
"linker-flavor": "gnu-cc",
1312
"llvm-target": "x86_64-unknown-linux-gnu",
1413
"max-atomic-width": 64,

configs/rust/targets/x86_64-bottlerocket-linux-musl.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
"env": "musl",
1010
"has-rpath": true,
1111
"has-thread-local": true,
12-
"is-builtin": false,
1312
"linker-flavor": "gnu-cc",
1413
"llvm-target": "x86_64-unknown-linux-musl",
1514
"max-atomic-width": 64,

hashes/rust

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
# https://static.rust-lang.org/dist/rustc-1.83.0-src.tar.xz
2-
SHA512 (rustc-1.83.0-src.tar.xz) = 64db57949c6ac1df6a3f4c6bd0938685a5fb1bc3d318b34ccfcfccb0f9eff1cffd4d8a53a190ef0409eeca9ad12bc6234c2c1de69196cc74ae02d6afa20d0ce6
3-
### See https://raw.githubusercontent.com/rust-lang/rust/1.83.0/src/stage0 for what to use below. ###
4-
# https://static.rust-lang.org/dist/2024-10-17/rust-std-1.82.0-x86_64-unknown-linux-gnu.tar.xz
5-
SHA512 (rust-std-1.82.0-x86_64-unknown-linux-gnu.tar.xz) = 38b23bdfea5a8ad4cd38c31a7124d417830ec2e6b3f501372df1853af086c797c17d142eb9abd97e0b4e07e6ed740b1b369a78fb4f79bdebb54db0ea807b3fa2
6-
# https://static.rust-lang.org/dist/2024-10-17/rustc-1.82.0-x86_64-unknown-linux-gnu.tar.xz
7-
SHA512 (rustc-1.82.0-x86_64-unknown-linux-gnu.tar.xz) = a2e2c05a87bc978d22e9a38ca24e19929943265b2d4d34becd03d961130dcf6ae68da99af0843fe283a1d5c95b163fe3cd32ac6d199e419b95de30b93c951c6b
8-
# https://static.rust-lang.org/dist/2024-10-17/cargo-1.82.0-x86_64-unknown-linux-gnu.tar.xz
9-
SHA512 (cargo-1.82.0-x86_64-unknown-linux-gnu.tar.xz) = ec68fdb99281543fe9ca7518536e8500fe947d030dfdeb9a5f903f958d293c27680ea40eda726e9cf6a6d53cb2f30239e4506a1f522e6faa8ffacb37a96255d7
10-
# https://static.rust-lang.org/dist/2024-10-17/rust-std-1.82.0-aarch64-unknown-linux-gnu.tar.xz
11-
SHA512 (rust-std-1.82.0-aarch64-unknown-linux-gnu.tar.xz) = 23990c573ab61492f43207a55f615fcd5fd8d1cc9c162baa0666e0cbe92a1d746fefcbcd6d2a4540d3a11c5227e26f34f8b1ac8ecabf359a5aeb9d69b1d87fb9
12-
# https://static.rust-lang.org/dist/2024-10-17/rustc-1.82.0-aarch64-unknown-linux-gnu.tar.xz
13-
SHA512 (rustc-1.82.0-aarch64-unknown-linux-gnu.tar.xz) = b4846b10bf001e1eb7a510e78ba3de7c60b87ba56c2af58d9d2b3517180abe1afacebbd734bc8bde417a9199bb2043fe1683a979a54bd7066c3f3972b0fe9e88
14-
# https://static.rust-lang.org/dist/2024-10-17/cargo-1.82.0-aarch64-unknown-linux-gnu.tar.xz
15-
SHA512 (cargo-1.82.0-aarch64-unknown-linux-gnu.tar.xz) = e94a762177ddc742aeb50d929840028ea9b425f6ac44969e4f36a92fc7d7c9a52245c6bd25b74965ac90b5025579010e5bb1bdc29d5e683bcd6cf82fa7258266
1+
# https://static.rust-lang.org/dist/rustc-1.85.0-src.tar.xz
2+
SHA512 (rustc-1.85.0-src.tar.xz) = 3e9c933d1d9b6e5fb081837cf07eb1638b1a6b4fd1cb607dd860c5021ba7b521edbaf8ba0fa8f182f62178b72a3e1a3e6b26675e8fb6530871137852a074443c
3+
### See https://raw.githubusercontent.com/rust-lang/rust/1.85.0/src/stage0 for what to use below. ###
4+
# https://static.rust-lang.org/dist/2025-01-09/rust-std-1.84.0-x86_64-unknown-linux-gnu.tar.xz
5+
SHA512 (rust-std-1.84.0-x86_64-unknown-linux-gnu.tar.xz) = d494e845341c6f87589075087ae73a7eaadce4b5555c732c850684ba698276d9aa373a7d02a0301ded328f2181d8847aa4f7bfe3303f5acf4087a2964b0678a5
6+
# https://static.rust-lang.org/dist/2025-01-09/rustc-1.84.0-x86_64-unknown-linux-gnu.tar.xz
7+
SHA512 (rustc-1.84.0-x86_64-unknown-linux-gnu.tar.xz) = a5638abcdb2e12218e7487d95764e4d66ffdc14c71b700e973f5dc122b01fa7f8684f013606cbabf9ce5d4f23b934f0db567d96c2467a1a11c6b2e0201c6e7fe
8+
# https://static.rust-lang.org/dist/2025-01-09/cargo-1.84.0-x86_64-unknown-linux-gnu.tar.xz
9+
SHA512 (cargo-1.84.0-x86_64-unknown-linux-gnu.tar.xz) = 3b80d83b74dca07f94460030387a7799bba0bb086df5aaf373a5f5a04feea1ba490f72a6a12f3eaa8150a9484a8658ff1bfe73e75279d8e7f775e5c8aa6eb292
10+
# https://static.rust-lang.org/dist/2025-01-09/rust-std-1.84.0-aarch64-unknown-linux-gnu.tar.xz
11+
SHA512 (rust-std-1.84.0-aarch64-unknown-linux-gnu.tar.xz) = 0caeca87316e5a5d5ade4e3ece1c4945b7da4ea6b9079176b303df2b4e131da09d09fa0faeaa0cad2e6d30136804b352d89beae6a832a56230ffc2068b195434
12+
# https://static.rust-lang.org/dist/2025-01-09/rustc-1.84.0-aarch64-unknown-linux-gnu.tar.xz
13+
SHA512 (rustc-1.84.0-aarch64-unknown-linux-gnu.tar.xz) = 0a4ab2854c4e33e4678b8b41c537c9695af1eea6607124e6452804591053feddefcba9542fb5c970a9168edcfc6f83b28b8e0f79fe0f2ba6a25a2906fed92759
14+
# https://static.rust-lang.org/dist/2025-01-09/cargo-1.84.0-aarch64-unknown-linux-gnu.tar.xz
15+
SHA512 (cargo-1.84.0-aarch64-unknown-linux-gnu.tar.xz) = 1cfae547dab35ca12cf07de93375492eb7d6ccc08ae485e8f4a49d2b714f31129dac2f3d748dc603028a932f44b296f9e09ed7fb0d6addeaa5cc0aed93d4eabe
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
From f03dda9ba9e2523b24ae66a5ef8b20f9630f970c Mon Sep 17 00:00:00 2001
2+
From: Ben Cressey <[email protected]>
3+
Date: Sat, 22 Feb 2025 21:53:58 +0000
4+
Subject: [PATCH] add targets to vendored cc-rs crate
5+
6+
cc-rs now requires targets to appear in a generated list of targets,
7+
which causes rustc bootstrap to fail for our custom targets.
8+
9+
Signed-off-by: Ben Cressey <[email protected]>
10+
---
11+
vendor/cc-1.2.0/.cargo-checksum.json | 2 +-
12+
vendor/cc-1.2.0/src/target/generated.rs | 48 +++++++++++++++++++++++++
13+
2 files changed, 49 insertions(+), 1 deletion(-)
14+
15+
diff --git a/vendor/cc-1.2.0/.cargo-checksum.json b/vendor/cc-1.2.0/.cargo-checksum.json
16+
index 54c3a79d8..7391355f1 100644
17+
--- a/vendor/cc-1.2.0/.cargo-checksum.json
18+
+++ b/vendor/cc-1.2.0/.cargo-checksum.json
19+
@@ -1 +1 @@
20+
-{"files":{"CHANGELOG.md":"fb0a3bcb34301d2578bef86feabe93057068cb1906a7f10b584f58ff6123e8c6","Cargo.lock":"b661254fadca74408d53742755b371f7ae29e501e851aeae13bcd14a51883321","Cargo.toml":"50debe1b2fc050e8b305bdd514509d98cdbc59e96e5f10888df4b6fca19d3a75","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"f1ddbede208a5b78333a25dac0a7598e678e9b601a7d99a791069bddaf180dfe","clippy.toml":"aa7850db4350883c8f373bd0d6b4d19bf3b75f13c1c238e24368c109cb52fb1d","src/command_helpers.rs":"b766a70e39b8ea7bb57afd288bcac205a23f6a26ac5619cb1d5b10f70c5dfdea","src/detect_compiler_family.c":"97ca4b021495611e828becea6187add37414186a16dfedd26c2947cbce6e8b2f","src/lib.rs":"221ba9475100303b5c694b2a02e5353452ee08a29e4e4d4d67ea8fcbd87605df","src/parallel/async_executor.rs":"4ce24435fff6b6555b43fee042c16bd65d4150d0346567f246b9190d85b45983","src/parallel/job_token.rs":"018a01cb00182270bbcb68e31e7a7c5c621a95f086e4c68cfa2bf557ac24e5f2","src/parallel/mod.rs":"bd9c1334d17d138c281961c690b8d8118a2d6295a7d6cd7296826255436fa063","src/parallel/stderr.rs":"74384d41198740a6fce0877f144262db09fb091225fa8fbfa771314bb11487c6","src/target.rs":"7313240db078ad85c1209a42a5fa96c3692b5d6e5093c7f366a1b99677247109","src/target/apple.rs":"6afbecac9f66aa72db55694413532f80b2753f28466a6213d1aa901a03c78bcd","src/target/generated.rs":"af067e1c291e895ddb591f92534eed0c48977cdb2b58f8239423e07c6de31cd3","src/target/llvm.rs":"e1db4a7fb8b905ee9853781f2fcc64a9d3b48154e4c8b6cb12f5373c5935da6e","src/target/parser.rs":"4f2129a24273d62bf8ab339098e7f758e4e42b0df369dd2b0eb1b20726be91f8","src/tempfile.rs":"ebafb5b0e5d08b0706916ed911d4245240e60c3e2d0c9a1630c520842988a2b3","src/tool.rs":"2e6550062e021f2b394388172bbb01e86fe6a94d2395bcb3c85a9e86690da1a9","src/utilities.rs":"52b30b24a1c31cdefb105309ee5220cfc9fca76eaf4e6d6509c3e19f431448fe","src/windows/com.rs":"a2800ddb81215fff2bf618336f5c4ff8e8bdb746dd18b795873c7304b3f2a5e3","src/windows/find_tools.rs":"0ff410bd71f08ee88e99609c15be5f1bc16ad7bd07a83918d13a70c8465642e2","src/windows/mod.rs":"34cfa201cfbcac7ccaa3ea5295d3e4200439af3cc5c6433baf81502596040a89","src/windows/registry.rs":"c521b72c825e8095843e73482ffa810ed066ad8bb9f86e6db0c5c143c171aba1","src/windows/setup_config.rs":"754439cbab492afd44c9755abcbec1a41c9b2c358131cee2df13c0e996dbbec8","src/windows/vs_instances.rs":"946527cf8fd32c3472f6a2884dcdec290763101097334c7478f9c24c3950db6b","src/windows/winapi.rs":"250d51c1826d1a2329e9889dd9f058cfce253dbf2a678b076147c6cdb5db046c","src/windows/windows_sys.rs":"e2714c8307bfa083b9745eb0e46cadd7f98d7b88abf45a7637172019324e34b8","src/windows/windows_targets.rs":"5b4648ebc22b028caca9f4b4bf8881fe2d094b7bec217264ba2e6e2c49d1ccee"},"package":"1aeb932158bd710538c73702db6945cb68a8fb08c519e6e12706b94263b36db8"}
21+
\ No newline at end of file
22+
+{"files":{},"package":"1aeb932158bd710538c73702db6945cb68a8fb08c519e6e12706b94263b36db8"}
23+
\ No newline at end of file
24+
diff --git a/vendor/cc-1.2.0/src/target/generated.rs b/vendor/cc-1.2.0/src/target/generated.rs
25+
index 0c9b0ae1a..ce95772da 100644
26+
--- a/vendor/cc-1.2.0/src/target/generated.rs
27+
+++ b/vendor/cc-1.2.0/src/target/generated.rs
28+
@@ -124,6 +124,30 @@ pub(crate) const LIST: &[(&str, TargetInfo<'static>)] = &[
29+
unversioned_llvm_target: "arm64-apple-watchos-simulator",
30+
},
31+
),
32+
+ (
33+
+ "aarch64-bottlerocket-linux-gnu",
34+
+ TargetInfo {
35+
+ full_arch: "aarch64",
36+
+ arch: "aarch64",
37+
+ vendor: "bottlerocket",
38+
+ os: "linux",
39+
+ env: "gnu",
40+
+ abi: "",
41+
+ unversioned_llvm_target: "aarch64-unknown-linux-gnu",
42+
+ },
43+
+ ),
44+
+ (
45+
+ "aarch64-bottlerocket-linux-musl",
46+
+ TargetInfo {
47+
+ full_arch: "aarch64",
48+
+ arch: "aarch64",
49+
+ vendor: "bottlerocket",
50+
+ os: "linux",
51+
+ env: "musl",
52+
+ abi: "",
53+
+ unversioned_llvm_target: "aarch64-unknown-linux-musl",
54+
+ },
55+
+ ),
56+
(
57+
"aarch64-fuchsia",
58+
TargetInfo {
59+
@@ -2848,6 +2872,30 @@ pub(crate) const LIST: &[(&str, TargetInfo<'static>)] = &[
60+
unversioned_llvm_target: "x86_64-apple-watchos-simulator",
61+
},
62+
),
63+
+ (
64+
+ "x86_64-bottlerocket-linux-gnu",
65+
+ TargetInfo {
66+
+ full_arch: "x86_64",
67+
+ arch: "x86_64",
68+
+ vendor: "bottlerocket",
69+
+ os: "linux",
70+
+ env: "gnu",
71+
+ abi: "",
72+
+ unversioned_llvm_target: "x86_64-unknown-linux-gnu",
73+
+ },
74+
+ ),
75+
+ (
76+
+ "x86_64-bottlerocket-linux-musl",
77+
+ TargetInfo {
78+
+ full_arch: "x86_64",
79+
+ arch: "x86_64",
80+
+ vendor: "bottlerocket",
81+
+ os: "linux",
82+
+ env: "musl",
83+
+ abi: "",
84+
+ unversioned_llvm_target: "x86_64-unknown-linux-musl",
85+
+ },
86+
+ ),
87+
(
88+
"x86_64-fortanix-unknown-sgx",
89+
TargetInfo {
90+
--
91+
2.47.0
92+

tools/update-rust.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ for arch in x86_64 aarch64 ; do
108108
--target "${upstream_target}" \
109109
> "${upstream_spec}"
110110

111-
jq '."is-builtin" = false | . += {"vendor": "bottlerocket"}' \
111+
jq 'del(."is-builtin") | . += {"vendor": "bottlerocket"}' \
112112
"${upstream_spec}" > "${vendor_spec}"
113113

114114
rm "${upstream_spec}"

0 commit comments

Comments
 (0)