diff --git a/build/build-clang/build-clang.py b/build/build-clang/build-clang.py index 6daaa9e78af9..03521a333e78 100755 --- a/build/build-clang/build-clang.py +++ b/build/build-clang/build-clang.py @@ -446,7 +446,7 @@ def prune_final_dir_for_clang_tidy(final_dir, target): if is_darwin(target) and name in ["libLLVM.dylib", "libclang-cpp.dylib"]: continue if is_linux(target) and ( - fnmatch.fnmatch(name, "libLLVM*.so*") + fnmatch.fnmatch(name, "libLLVM*.so") or fnmatch.fnmatch(name, "libclang-cpp.so*") ): continue diff --git a/build/build-rust/cargo-vendor-std.patch b/build/build-rust/cargo-vendor-std.patch index aa439d094b97..1a79846d6182 100644 --- a/build/build-rust/cargo-vendor-std.patch +++ b/build/build-rust/cargo-vendor-std.patch @@ -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 9f96ca27d..80723c06b 100644 +index c456c58d5..333389bc8 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::GlobalContext; + use crate::Config; use std::collections::{HashMap, HashSet}; +use std::fs; use std::path::PathBuf; use super::BuildConfig; -@@ -73,27 +74,45 @@ pub fn resolve_std<'gctx>( +@@ -73,27 +74,45 @@ pub fn resolve_std<'cfg>( } let src_path = detect_sysroot_src_path(target_data)?; diff --git a/build/build-rust/rust-vendor-std.patch b/build/build-rust/rust-vendor-std.patch index f72e64d8911f..e3ad25d1b012 100644 --- a/build/build-rust/rust-vendor-std.patch +++ b/build/build-rust/rust-vendor-std.patch @@ -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/src/core/build_steps/dist.rs b/src/bootstrap/src/core/build_steps/dist.rs -index 012d64e5344..aedb53358ef 100644 +diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs +index 3cb0eccd324..a3b8154c024 100644 --- a/src/bootstrap/src/core/build_steps/dist.rs +++ b/src/bootstrap/src/core/build_steps/dist.rs -@@ -927,6 +927,31 @@ fn run(self, builder: &Builder<'_>) -> GeneratedTarball { - builder.copy_link(&builder.src.join(file), &dst_src.join(file)); +@@ -905,6 +905,31 @@ fn run(self, builder: &Builder<'_>) -> GeneratedTarball { + builder.copy(&builder.src.join(file), &dst_src.join(file)); } + // libsysroot includes std and everything else, so vendoring it @@ -47,11 +47,11 @@ index 012d64e5344..aedb53358ef 100644 tarball.generate() } } -diff --git a/src/bootstrap/src/lib.rs b/src/bootstrap/src/lib.rs -index 5ed6b357e20..ad617948c4b 100644 +diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs +index 3ed53452309..1fc0d887748 100644 --- a/src/bootstrap/src/lib.rs +++ b/src/bootstrap/src/lib.rs -@@ -1649,6 +1649,27 @@ fn read_stamp_file(&self, stamp: &Path) -> Vec<(PathBuf, DependencyType)> { +@@ -1437,6 +1437,27 @@ fn read_stamp_file(&self, stamp: &Path) -> Vec<(PathBuf, DependencyType)> { paths } @@ -61,7 +61,7 @@ index 5ed6b357e20..ad617948c4b 100644 + if self.config.dry_run() { + return; + } -+ self.verbose_than(1, || println!("Copy {:?} to {:?}", src, dst)); ++ self.verbose_than(1, &format!("Copy {:?} to {:?}", src, dst)); + if src == dst { + return; + } @@ -76,6 +76,6 @@ index 5ed6b357e20..ad617948c4b 100644 + t!(filetime::set_file_times(dst, atime, mtime)); + } + - /// 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, + /// Copies a file from `src` to `dst` + pub fn copy(&self, src: &Path, dst: &Path) { + self.copy_internal(src, dst, false); diff --git a/build/clang-plugin/mozsearch-plugin/MozsearchIndexer.cpp b/build/clang-plugin/mozsearch-plugin/MozsearchIndexer.cpp index 5e09e093d083..36f981527249 100644 --- a/build/clang-plugin/mozsearch-plugin/MozsearchIndexer.cpp +++ b/build/clang-plugin/mozsearch-plugin/MozsearchIndexer.cpp @@ -199,12 +199,7 @@ public: #endif StringRef SearchPath, StringRef RelativePath, -#if CLANG_VERSION_MAJOR >= 19 - const Module *SuggestedModule, - bool ModuleImported, -#else const Module *Imported, -#endif SrcMgr::CharacteristicKind FileType) override; virtual void MacroDefined(const Token &Tok, @@ -2348,12 +2343,7 @@ void PreprocessorHook::InclusionDirective(SourceLocation HashLoc, #endif StringRef SearchPath, StringRef RelativePath, -#if CLANG_VERSION_MAJOR >= 19 - const Module *SuggestedModule, - bool ModuleImported, -#else const Module *Imported, -#endif SrcMgr::CharacteristicKind FileType) { #if CLANG_VERSION_MAJOR >= 15 if (!File) { diff --git a/mozglue/static/rust/build.rs b/mozglue/static/rust/build.rs index b3de7da6e4c3..1daa5840701b 100644 --- a/mozglue/static/rust/build.rs +++ b/mozglue/static/rust/build.rs @@ -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.79.0-alpha").unwrap(); + let max_oom_hook_version = Version::parse("1.78.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.79.0-alpha").unwrap(); + let max_alloc_error_panic_version = Version::parse("1.78.0-alpha").unwrap(); if ver < max_oom_hook_version { println!("cargo:rustc-cfg=feature=\"oom_with_hook\""); diff --git a/taskcluster/kinds/fetch/toolchains.yml b/taskcluster/kinds/fetch/toolchains.yml index cbc3f7f88b3c..6b6045f7f56c 100644 --- a/taskcluster/kinds/fetch/toolchains.yml +++ b/taskcluster/kinds/fetch/toolchains.yml @@ -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.78.0: - description: Rust 1.78.0 source code +rust-1.77.2: + description: Rust 1.77.2 source code fetch: type: git include-dot-git: true repo: https://github.com/rust-lang/rust/ - revision: 9b00956e56009bab2aa15d7bff10916599e3d6d6 + revision: 25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04 wasi-sdk-11: description: wasi-sdk-11 source code diff --git a/taskcluster/kinds/toolchain/clang-tidy.yml b/taskcluster/kinds/toolchain/clang-tidy.yml index 671e8f708192..02d089eca3d6 100644 --- a/taskcluster/kinds/toolchain/clang-tidy.yml +++ b/taskcluster/kinds/toolchain/clang-tidy.yml @@ -24,7 +24,7 @@ job-defaults: - 'build/build-clang/build-clang.py' fetches: fetch: - - clang-18 + - clang-17 linux64-clang-tidy: index: @@ -39,7 +39,7 @@ linux64-clang-tidy: - 'build/build-clang/clang-tidy-linux64.json' fetches: toolchain: - - linux64-clang-18 + - linux64-clang-17 - linux64-toolchain-sysroot macosx64-clang-tidy: @@ -58,7 +58,7 @@ macosx64-clang-tidy: - 'build/build-clang/macosx64.json' fetches: toolchain: - - linux64-clang-18 + - linux64-clang-17 - macosx64-sdk-toolchain macosx64-aarch64-clang-tidy: @@ -79,7 +79,7 @@ macosx64-aarch64-clang-tidy: - 'build/build-clang/macosx64-aarch64.json' fetches: toolchain: - - linux64-clang-18 + - linux64-clang-17 - macosx64-sdk-toolchain win64-clang-tidy: @@ -101,7 +101,7 @@ win64-clang-tidy: - 'build/build-clang/win64.json' fetches: toolchain: - - linux64-clang-18 + - linux64-clang-17 - vs-toolchain - win64-libxml2 @@ -124,5 +124,5 @@ linux64-clang-tidy-external: fetch: - civet-source toolchain: - - linux64-clang-18 + - linux64-clang-17 - linux64-toolchain-sysroot diff --git a/taskcluster/kinds/toolchain/clang.yml b/taskcluster/kinds/toolchain/clang.yml index 95d8b5c7e0f5..a9cf04e0b9b7 100644 --- a/taskcluster/kinds/toolchain/clang.yml +++ b/taskcluster/kinds/toolchain/clang.yml @@ -122,6 +122,10 @@ linux64-clang-17-mingw-x86: - 'x86' resources: - 'taskcluster/scripts/misc/mingw-*.patch' + toolchain-alias: + by-project: + toolchains: null + default: linux64-clang-mingw-x86 toolchain-artifact: public/build/clangmingw.tar.zst fetches: fetch: @@ -144,6 +148,10 @@ linux64-clang-17-mingw-x64: - 'x64' resources: - 'taskcluster/scripts/misc/mingw-*.patch' + toolchain-alias: + by-project: + toolchains: null + default: linux64-clang-mingw-x64 toolchain-artifact: public/build/clangmingw.tar.zst fetches: fetch: @@ -169,6 +177,10 @@ linux64-clang-17-stage1: - 'build/build-clang/linux64.json' - 'build/build-clang/clang-17.json' - 'build/build-clang/1stage.json' + toolchain-alias: + by-project: + toolchains: null + default: linux64-clang-toolchain toolchain-artifact: public/build/clang.tar.zst fetches: fetch: @@ -238,6 +250,10 @@ linux64-clang-17: max-run-time: 600 run: script: repack-clang.sh + toolchain-alias: + by-project: + toolchains: null + default: linux64-clang toolchain-artifact: public/build/clang.tar.zst fetches: toolchain: @@ -300,6 +316,12 @@ macosx64-clang-17: max-run-time: 600 run: script: repack-clang.sh + toolchain-alias: + by-project: + toolchains: null + default: + - macosx64-clang + - macosx64-clang-toolchain toolchain-artifact: public/build/clang.tar.zst fetches: toolchain: @@ -364,6 +386,10 @@ macosx64-aarch64-clang-17: max-run-time: 600 run: script: repack-clang.sh + toolchain-alias: + by-project: + toolchains: null + default: macosx64-aarch64-clang toolchain-artifact: public/build/clang.tar.zst fetches: toolchain: @@ -400,6 +426,10 @@ win64-clang-17-stage1: - 'build/build-clang/win64.json' - 'build/build-clang/clang-17.json' - 'build/build-clang/1stage.json' + toolchain-alias: + by-project: + toolchains: null + default: win64-clang-toolchain toolchain-artifact: public/build/clang.tar.zst fetches: fetch: @@ -451,6 +481,10 @@ win64-clang-17: max-run-time: 600 run: script: repack-clang.sh + toolchain-alias: + by-project: + toolchains: null + default: win64-clang toolchain-artifact: public/build/clang.tar.zst fetches: toolchain: @@ -484,10 +518,6 @@ linux64-clang-18-mingw-x86: - 'x86' resources: - 'taskcluster/scripts/misc/mingw-*.patch' - toolchain-alias: - by-project: - toolchains: null - default: linux64-clang-mingw-x86 toolchain-artifact: public/build/clangmingw.tar.zst fetches: fetch: @@ -510,10 +540,6 @@ linux64-clang-18-mingw-x64: - 'x64' resources: - 'taskcluster/scripts/misc/mingw-*.patch' - toolchain-alias: - by-project: - toolchains: null - default: linux64-clang-mingw-x64 toolchain-artifact: public/build/clangmingw.tar.zst fetches: fetch: @@ -539,10 +565,6 @@ linux64-clang-18-stage1: - 'build/build-clang/linux64.json' - 'build/build-clang/clang-18.json' - 'build/build-clang/1stage.json' - toolchain-alias: - by-project: - toolchains: null - default: linux64-clang-toolchain toolchain-artifact: public/build/clang.tar.zst fetches: fetch: @@ -612,10 +634,6 @@ linux64-clang-18: max-run-time: 600 run: script: repack-clang.sh - toolchain-alias: - by-project: - toolchains: null - default: linux64-clang toolchain-artifact: public/build/clang.tar.zst fetches: toolchain: @@ -678,12 +696,6 @@ macosx64-clang-18: max-run-time: 600 run: script: repack-clang.sh - toolchain-alias: - by-project: - toolchains: null - default: - - macosx64-clang - - macosx64-clang-toolchain toolchain-artifact: public/build/clang.tar.zst fetches: toolchain: @@ -748,10 +760,6 @@ macosx64-aarch64-clang-18: max-run-time: 600 run: script: repack-clang.sh - toolchain-alias: - by-project: - toolchains: null - default: macosx64-aarch64-clang toolchain-artifact: public/build/clang.tar.zst fetches: toolchain: @@ -788,10 +796,6 @@ win64-clang-18-stage1: - 'build/build-clang/win64.json' - 'build/build-clang/clang-18.json' - 'build/build-clang/1stage.json' - toolchain-alias: - by-project: - toolchains: null - default: win64-clang-toolchain toolchain-artifact: public/build/clang.tar.zst fetches: fetch: @@ -843,10 +847,6 @@ win64-clang-18: max-run-time: 600 run: script: repack-clang.sh - toolchain-alias: - by-project: - toolchains: null - default: win64-clang toolchain-artifact: public/build/clang.tar.zst fetches: toolchain: diff --git a/taskcluster/kinds/toolchain/rust.yml b/taskcluster/kinds/toolchain/rust.yml index 0e748d6eb0b1..e1e2778f68a4 100644 --- a/taskcluster/kinds/toolchain/rust.yml +++ b/taskcluster/kinds/toolchain/rust.yml @@ -26,12 +26,12 @@ linux64-rust-1.76: - linux64-rust-base - linux64-rust-toolchain -linux64-rust-1.78: +linux64-rust-1.77: treeherder: symbol: TL(rust) run: arguments: [ - '--channel', '1.78.0', + '--channel', '1.77.2', '--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.78.0 + - rust-1.77.2 toolchain: - linux64-clang-toolchain - linux64-toolchain-sysroot -linux64-rust-cross-1.78: +linux64-rust-cross-1.77: description: "rust repack with macos and windows cross support" treeherder: symbol: TL(rust-cross) run: arguments: [ - '--channel', '1.78.0', + '--channel', '1.77.2', '--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.78: ] toolchain-alias: linux64-rust-cross -linux64-rust-static-1.78: +linux64-rust-static-1.77: description: "rust repack with static linking support" treeherder: symbol: TL(rust-static) run: arguments: [ - '--channel', '1.78.0', + '--channel', '1.77.2', '--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.78: +linux64-rust-macos-1.77: description: "rust repack with macos-cross support" treeherder: symbol: TL(rust-macos) run: arguments: [ - '--channel', '1.78.0', + '--channel', '1.77.2', '--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.78: ] toolchain-alias: linux64-rust-macos -linux64-rust-ios-1.78: +linux64-rust-ios-1.77: description: "rust repack with ios-cross support" treeherder: symbol: TL(rust-ios) run: arguments: [ - '--channel', '1.78.0', + '--channel', '1.77.2', '--host', 'x86_64-unknown-linux-gnu', '--target', 'x86_64-unknown-linux-gnu', '--target', 'aarch64-apple-ios', @@ -148,13 +148,13 @@ linux64-rust-ios-1.78: ] toolchain-alias: linux64-rust-ios -linux64-rust-android-1.78: +linux64-rust-android-1.77: description: "rust repack with android-cross support" treeherder: symbol: TL(rust-android) run: arguments: [ - '--channel', '1.78.0', + '--channel', '1.77.2', '--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.78: +linux64-rust-windows-1.77: description: "rust repack with windows-cross support" treeherder: symbol: TL(rust-win) run: arguments: [ - '--channel', '1.78.0', + '--channel', '1.77.2', '--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.78: ] toolchain-alias: linux64-rust-windows -win64-rust-1.78: +win64-rust-1.77: treeherder: symbol: TW64(rust) run: arguments: [ - '--channel', '1.78.0', + '--channel', '1.77.2', '--host', 'x86_64-pc-windows-msvc', '--target', 'x86_64-pc-windows-msvc', '--target', 'i686-pc-windows-msvc', @@ -207,23 +207,23 @@ win64-rust-1.78: ] toolchain-alias: win64-rust -macosx64-rust-1.78: +macosx64-rust-1.77: treeherder: symbol: TM(rust) run: arguments: [ - '--channel', '1.78.0', + '--channel', '1.77.2', '--host', 'x86_64-apple-darwin', '--target', 'x86_64-apple-darwin', ] toolchain-alias: macosx64-rust -mingw32-rust-1.78: +mingw32-rust-1.77: treeherder: symbol: TMW(rust) run: arguments: [ - '--channel', '1.78.0', + '--channel', '1.77.2', '--host', 'x86_64-unknown-linux-gnu', '--target', 'i686-unknown-linux-gnu', '--target', 'i686-pc-windows-gnu', diff --git a/tools/clang-tidy/config.yaml b/tools/clang-tidy/config.yaml index 235947a03bce..773e92914faf 100644 --- a/tools/clang-tidy/config.yaml +++ b/tools/clang-tidy/config.yaml @@ -19,7 +19,7 @@ platforms: # Minimum clang-tidy version that is required for all the following checkers # to work properly. # This is also used by 'mach clang-format' -package_version: "18.1.4" +package_version: "17.0.6" clang_checkers: - name: -* publish: !!bool no