Bug 1878764 - Update builders to rustc 1.78. r=firefox-build-system-reviewers,sergesanspaille

Differential Revision: https://phabricator.services.mozilla.com/D208953
This commit is contained in:
Mike Hommey 2024-05-23 04:28:38 +00:00
parent 42354bc6ca
commit 05d708653f
7 changed files with 48 additions and 41 deletions

View File

@ -9,18 +9,18 @@ Most of these changes just add/edit tests for the functionality. Only the
change to src/cargo/core/compiler/standard_lib.rs is important.
diff --git a/src/cargo/core/compiler/standard_lib.rs b/src/cargo/core/compiler/standard_lib.rs
index c456c58d5..333389bc8 100644
index 9f96ca27d..80723c06b 100644
--- a/src/cargo/core/compiler/standard_lib.rs
+++ b/src/cargo/core/compiler/standard_lib.rs
@@ -11,6 +11,7 @@ use crate::ops::{self, Packages};
use crate::util::errors::CargoResult;
use crate::Config;
use crate::GlobalContext;
use std::collections::{HashMap, HashSet};
+use std::fs;
use std::path::PathBuf;
use super::BuildConfig;
@@ -73,27 +74,45 @@ pub fn resolve_std<'cfg>(
@@ -73,27 +74,45 @@ pub fn resolve_std<'gctx>(
}
let src_path = detect_sysroot_src_path(target_data)?;

View File

@ -11,12 +11,12 @@ their contents are ignored in favour of the actual stdlib.
For firefox's purposes, these patches still work fine, and are necessary
to make -Zbuild-std work in a vendored environment.
diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs
index 3cb0eccd324..a3b8154c024 100644
diff --git a/src/bootstrap/src/core/build_steps/dist.rs b/src/bootstrap/src/core/build_steps/dist.rs
index 012d64e5344..aedb53358ef 100644
--- a/src/bootstrap/src/core/build_steps/dist.rs
+++ b/src/bootstrap/src/core/build_steps/dist.rs
@@ -905,6 +905,31 @@ fn run(self, builder: &Builder<'_>) -> GeneratedTarball {
builder.copy(&builder.src.join(file), &dst_src.join(file));
@@ -927,6 +927,31 @@ fn run(self, builder: &Builder<'_>) -> GeneratedTarball {
builder.copy_link(&builder.src.join(file), &dst_src.join(file));
}
+ // libsysroot includes std and everything else, so vendoring it
@ -47,11 +47,11 @@ index 3cb0eccd324..a3b8154c024 100644
tarball.generate()
}
}
diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs
index 3ed53452309..1fc0d887748 100644
diff --git a/src/bootstrap/src/lib.rs b/src/bootstrap/src/lib.rs
index 5ed6b357e20..ad617948c4b 100644
--- a/src/bootstrap/src/lib.rs
+++ b/src/bootstrap/src/lib.rs
@@ -1437,6 +1437,27 @@ fn read_stamp_file(&self, stamp: &Path) -> Vec<(PathBuf, DependencyType)> {
@@ -1649,6 +1649,27 @@ fn read_stamp_file(&self, stamp: &Path) -> Vec<(PathBuf, DependencyType)> {
paths
}
@ -61,7 +61,7 @@ index 3ed53452309..1fc0d887748 100644
+ if self.config.dry_run() {
+ return;
+ }
+ self.verbose_than(1, &format!("Copy {:?} to {:?}", src, dst));
+ self.verbose_than(1, || println!("Copy {:?} to {:?}", src, dst));
+ if src == dst {
+ return;
+ }
@ -76,6 +76,6 @@ index 3ed53452309..1fc0d887748 100644
+ t!(filetime::set_file_times(dst, atime, mtime));
+ }
+
/// Copies a file from `src` to `dst`
pub fn copy(&self, src: &Path, dst: &Path) {
self.copy_internal(src, dst, false);
/// Links a file from `src` to `dst`.
/// Attempts to use hard links if possible, falling back to copying.
/// You can neither rely on this being a copy nor it being a link,

View File

@ -1066,3 +1066,10 @@
...
fun:upload_to_texture_cache
}
{
False positive from new optimizations in rustc 1.78
Memcheck:Cond
fun:drop_in_place<core::option::Option<cssparser::cow_rc_str::CowRcStr>>
fun:_ZN5style6values9specified5color5Color14parse_internal*
}

View File

@ -153,8 +153,8 @@ Here are the Rust versions for each Firefox version.
| Firefox 124 | Rust 1.76.0 | 1.70.0 | 2024 February 8 | 2024 February 15 | 2024 March 19
| Firefox 125 | Rust 1.76.0 | 1.74.0 | 2024 February 8 | 2024 March 14 | 2024 April 16
| Firefox 126 | Rust 1.77.2 | 1.74.0 | 2024 March 28 | 2024 April 11 | 2024 May 14
| Firefox 127 | Rust 1.77.2 | 1.76.0 | 2024 May 2 | 2024 May 9 | 2024 June 11
| **Estimated** |
| Firefox 127 | Rust 1.78.0 | 1.76.0 | 2024 May 2 | 2024 May 9 | 2024 June 11
| Firefox 128 | Rust 1.78.0 | ? | 2024 May 2 | 2024 June 6 | 2024 July 9
| Firefox 129 | Rust 1.79.0 | ? | 2024 June 13 | 2024 July 4 | 2024 August 6
| Firefox 130 | Rust 1.80.0 | ? | 2024 July 25 | 2024 August 1 | 2024 September 3

View File

@ -16,10 +16,10 @@ fn main() {
println!("cargo:rerun-if-changed=wrappers.cpp");
let ver = version().unwrap();
let max_oom_hook_version = Version::parse("1.78.0-alpha").unwrap();
let max_oom_hook_version = Version::parse("1.79.0-alpha").unwrap();
// The new alloc error panic feature was temporarily reverted. We kept the
// code in tree, but the version here is such that it's effectively never used.
let max_alloc_error_panic_version = Version::parse("1.78.0-alpha").unwrap();
let max_alloc_error_panic_version = Version::parse("1.79.0-alpha").unwrap();
if ver >= Version::parse("1.80.0-alpha").unwrap() {
println!("cargo::rustc-check-cfg=cfg(oom_with, values(\"hook\", \"alloc_error_panic\"))");

View File

@ -380,13 +380,13 @@ clang-trunk:
# We build stable rust from source so the resulting compiler acts as a nightly
# rust compiler, allowing to use unstable features like -Zbuild-std and
# sanitizers.
rust-1.77.2:
description: Rust 1.77.2 source code
rust-1.78.0:
description: Rust 1.78.0 source code
fetch:
type: git
include-dot-git: true
repo: https://github.com/rust-lang/rust/
revision: 25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04
revision: 9b00956e56009bab2aa15d7bff10916599e3d6d6
wasi-sdk-11:
description: wasi-sdk-11 source code

View File

@ -26,12 +26,12 @@ linux64-rust-1.76:
- linux64-rust-base
- linux64-rust-toolchain
linux64-rust-1.77:
linux64-rust-1.78:
treeherder:
symbol: TL(rust)
run:
arguments: [
'--channel', '1.77.2',
'--channel', '1.78.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-unknown-linux-gnu',
'--target', 'i686-unknown-linux-gnu',
@ -62,18 +62,18 @@ linux64-rust-dev:
]
fetches:
fetch:
- rust-1.77.2
- rust-1.78.0
toolchain:
- linux64-clang-toolchain
- linux64-toolchain-sysroot
linux64-rust-cross-1.77:
linux64-rust-cross-1.78:
description: "rust repack with macos and windows cross support"
treeherder:
symbol: TL(rust-cross)
run:
arguments: [
'--channel', '1.77.2',
'--channel', '1.78.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-unknown-linux-gnu',
'--target', 'i686-unknown-linux-gnu',
@ -90,13 +90,13 @@ linux64-rust-cross-1.77:
]
toolchain-alias: linux64-rust-cross
linux64-rust-static-1.77:
linux64-rust-static-1.78:
description: "rust repack with static linking support"
treeherder:
symbol: TL(rust-static)
run:
arguments: [
'--channel', '1.77.2',
'--channel', '1.78.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'aarch64-unknown-linux-musl',
'--target', 'x86_64-unknown-linux-gnu',
@ -120,13 +120,13 @@ linux64-rust-macos-1.70:
]
toolchain-alias: linux64-rust-macos-toolchain
linux64-rust-macos-1.77:
linux64-rust-macos-1.78:
description: "rust repack with macos-cross support"
treeherder:
symbol: TL(rust-macos)
run:
arguments: [
'--channel', '1.77.2',
'--channel', '1.78.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-apple-darwin',
@ -134,13 +134,13 @@ linux64-rust-macos-1.77:
]
toolchain-alias: linux64-rust-macos
linux64-rust-ios-1.77:
linux64-rust-ios-1.78:
description: "rust repack with ios-cross support"
treeherder:
symbol: TL(rust-ios)
run:
arguments: [
'--channel', '1.77.2',
'--channel', '1.78.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-unknown-linux-gnu',
'--target', 'aarch64-apple-ios',
@ -148,13 +148,13 @@ linux64-rust-ios-1.77:
]
toolchain-alias: linux64-rust-ios
linux64-rust-android-1.77:
linux64-rust-android-1.78:
description: "rust repack with android-cross support"
treeherder:
symbol: TL(rust-android)
run:
arguments: [
'--channel', '1.77.2',
'--channel', '1.78.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-unknown-linux-gnu',
'--target', 'armv7-linux-androideabi',
@ -179,13 +179,13 @@ linux64-rust-windows-1.70:
]
toolchain-alias: linux64-rust-windows-toolchain
linux64-rust-windows-1.77:
linux64-rust-windows-1.78:
description: "rust repack with windows-cross support"
treeherder:
symbol: TL(rust-win)
run:
arguments: [
'--channel', '1.77.2',
'--channel', '1.78.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-pc-windows-msvc',
@ -194,12 +194,12 @@ linux64-rust-windows-1.77:
]
toolchain-alias: linux64-rust-windows
win64-rust-1.77:
win64-rust-1.78:
treeherder:
symbol: TW64(rust)
run:
arguments: [
'--channel', '1.77.2',
'--channel', '1.78.0',
'--host', 'x86_64-pc-windows-msvc',
'--target', 'x86_64-pc-windows-msvc',
'--target', 'i686-pc-windows-msvc',
@ -207,23 +207,23 @@ win64-rust-1.77:
]
toolchain-alias: win64-rust
macosx64-rust-1.77:
macosx64-rust-1.78:
treeherder:
symbol: TM(rust)
run:
arguments: [
'--channel', '1.77.2',
'--channel', '1.78.0',
'--host', 'x86_64-apple-darwin',
'--target', 'x86_64-apple-darwin',
]
toolchain-alias: macosx64-rust
mingw32-rust-1.77:
mingw32-rust-1.78:
treeherder:
symbol: TMW(rust)
run:
arguments: [
'--channel', '1.77.2',
'--channel', '1.78.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'i686-unknown-linux-gnu',
'--target', 'i686-pc-windows-gnu',