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. 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 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 --- a/src/cargo/core/compiler/standard_lib.rs
+++ b/src/cargo/core/compiler/standard_lib.rs +++ b/src/cargo/core/compiler/standard_lib.rs
@@ -11,6 +11,7 @@ use crate::ops::{self, Packages}; @@ -11,6 +11,7 @@ use crate::ops::{self, Packages};
use crate::util::errors::CargoResult; use crate::util::errors::CargoResult;
use crate::Config; use crate::GlobalContext;
use std::collections::{HashMap, HashSet}; use std::collections::{HashMap, HashSet};
+use std::fs; +use std::fs;
use std::path::PathBuf; use std::path::PathBuf;
use super::BuildConfig; 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)?; 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 For firefox's purposes, these patches still work fine, and are necessary
to make -Zbuild-std work in a vendored environment. to make -Zbuild-std work in a vendored environment.
diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs diff --git a/src/bootstrap/src/core/build_steps/dist.rs b/src/bootstrap/src/core/build_steps/dist.rs
index 3cb0eccd324..a3b8154c024 100644 index 012d64e5344..aedb53358ef 100644
--- a/src/bootstrap/src/core/build_steps/dist.rs --- a/src/bootstrap/src/core/build_steps/dist.rs
+++ b/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 { @@ -927,6 +927,31 @@ fn run(self, builder: &Builder<'_>) -> GeneratedTarball {
builder.copy(&builder.src.join(file), &dst_src.join(file)); builder.copy_link(&builder.src.join(file), &dst_src.join(file));
} }
+ // libsysroot includes std and everything else, so vendoring it + // libsysroot includes std and everything else, so vendoring it
@ -47,11 +47,11 @@ index 3cb0eccd324..a3b8154c024 100644
tarball.generate() tarball.generate()
} }
} }
diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs diff --git a/src/bootstrap/src/lib.rs b/src/bootstrap/src/lib.rs
index 3ed53452309..1fc0d887748 100644 index 5ed6b357e20..ad617948c4b 100644
--- a/src/bootstrap/src/lib.rs --- a/src/bootstrap/src/lib.rs
+++ b/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 paths
} }
@ -61,7 +61,7 @@ index 3ed53452309..1fc0d887748 100644
+ if self.config.dry_run() { + if self.config.dry_run() {
+ return; + return;
+ } + }
+ self.verbose_than(1, &format!("Copy {:?} to {:?}", src, dst)); + self.verbose_than(1, || println!("Copy {:?} to {:?}", src, dst));
+ if src == dst { + if src == dst {
+ return; + return;
+ } + }
@ -76,6 +76,6 @@ index 3ed53452309..1fc0d887748 100644
+ t!(filetime::set_file_times(dst, atime, mtime)); + t!(filetime::set_file_times(dst, atime, mtime));
+ } + }
+ +
/// Copies a file from `src` to `dst` /// Links a file from `src` to `dst`.
pub fn copy(&self, src: &Path, dst: &Path) { /// Attempts to use hard links if possible, falling back to copying.
self.copy_internal(src, dst, false); /// 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 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 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 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 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** | | **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 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 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 | 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"); println!("cargo:rerun-if-changed=wrappers.cpp");
let ver = version().unwrap(); 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 // 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. // 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() { if ver >= Version::parse("1.80.0-alpha").unwrap() {
println!("cargo::rustc-check-cfg=cfg(oom_with, values(\"hook\", \"alloc_error_panic\"))"); 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 # 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 # rust compiler, allowing to use unstable features like -Zbuild-std and
# sanitizers. # sanitizers.
rust-1.77.2: rust-1.78.0:
description: Rust 1.77.2 source code description: Rust 1.78.0 source code
fetch: fetch:
type: git type: git
include-dot-git: true include-dot-git: true
repo: https://github.com/rust-lang/rust/ repo: https://github.com/rust-lang/rust/
revision: 25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04 revision: 9b00956e56009bab2aa15d7bff10916599e3d6d6
wasi-sdk-11: wasi-sdk-11:
description: wasi-sdk-11 source code description: wasi-sdk-11 source code

View file

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