Backed out 5 changesets (bug 1736459) for causing Windows crashes (bug 1738034) a=backout

Backed out changeset c934eeb21692 (bug 1736459)
Backed out changeset 0b2da7db414c (bug 1736459)
Backed out changeset 798893f69a02 (bug 1736459)
Backed out changeset 2a8f412c4d08 (bug 1736459)
Backed out changeset 59eeaeafdf67 (bug 1736459)
This commit is contained in:
Norisz Fay 2021-10-27 16:02:24 +03:00
Родитель 8d46d339ac
Коммит 51e8153e60
11 изменённых файлов: 96 добавлений и 87 удалений

1
Cargo.lock сгенерированный
Просмотреть файл

@ -1798,7 +1798,6 @@ dependencies = [
"env_logger",
"lazy_static",
"log",
"winapi",
]
[[package]]

Просмотреть файл

@ -59,6 +59,37 @@ cargo_build_flags += -Zbuild-std=std,panic_abort
RUSTFLAGS += -Zsanitizer=thread
endif
# These flags are passed via `cargo rustc` and only apply to the final rustc
# invocation (i.e., only the top-level crate, not its dependencies).
cargo_rustc_flags = $(CARGO_RUSTCFLAGS)
ifndef DEVELOPER_OPTIONS
ifndef MOZ_DEBUG_RUST
# Enable link-time optimization for release builds, but not when linking
# gkrust_gtest. And not when doing cross-language LTO.
ifndef MOZ_LTO_RUST_CROSS
ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE)))
cargo_rustc_flags += -Clto
endif
# We need -Cembed-bitcode=yes for all crates when using -Clto.
RUSTFLAGS += -Cembed-bitcode=yes
endif
endif
endif
ifdef CARGO_INCREMENTAL
export CARGO_INCREMENTAL
endif
rustflags_neon =
ifeq (neon,$(MOZ_FPU))
ifneq (,$(filter thumbv7neon-,$(RUST_TARGET)))
# Enable neon and disable restriction to 16 FPU registers when neon is enabled
# but we're not using a thumbv7neon target, where it's already the default.
# (CPUs with neon have 32 FPU registers available)
rustflags_neon += -C target_feature=+neon,-d16
endif
endif
rustflags_sancov =
ifdef LIBFUZZER
ifndef MOZ_TSAN
@ -84,40 +115,6 @@ endif
endif
endif
# These flags are passed via `cargo rustc` and only apply to the final rustc
# invocation (i.e., only the top-level crate, not its dependencies).
cargo_rustc_flags = $(CARGO_RUSTCFLAGS)
ifndef DEVELOPER_OPTIONS
ifndef MOZ_DEBUG_RUST
# Enable link-time optimization for release builds, but not when linking
# gkrust_gtest. And not when doing cross-language LTO.
ifndef MOZ_LTO_RUST_CROSS
# Never enable when sancov is enabled to work around https://github.com/rust-lang/rust/issues/90300.
ifndef rustflags_sancov
ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE)))
cargo_rustc_flags += -Clto
endif
# We need -Cembed-bitcode=yes for all crates when using -Clto.
RUSTFLAGS += -Cembed-bitcode=yes
endif
endif
endif
endif
ifdef CARGO_INCREMENTAL
export CARGO_INCREMENTAL
endif
rustflags_neon =
ifeq (neon,$(MOZ_FPU))
ifneq (,$(filter thumbv7neon-,$(RUST_TARGET)))
# Enable neon and disable restriction to 16 FPU registers when neon is enabled
# but we're not using a thumbv7neon target, where it's already the default.
# (CPUs with neon have 32 FPU registers available)
rustflags_neon += -C target_feature=+neon,-d16
endif
endif
rustflags_override = $(MOZ_RUST_DEFAULT_FLAGS) $(rustflags_neon)
ifdef DEVELOPER_OPTIONS

Просмотреть файл

@ -38,7 +38,7 @@ fn main() {
println!("cargo:rerun-if-changed=wrappers.cpp");
let ver = version().unwrap();
let max_oom_hook_version = Version::parse("1.58.0-alpha").unwrap();
let max_oom_hook_version = Version::parse("1.57.0-alpha").unwrap();
if ver < max_oom_hook_version {
println!("cargo:rustc-cfg=feature=\"oom_with_hook\"");

Просмотреть файл

@ -373,6 +373,13 @@ clang-10:
repo: https://github.com/llvm/llvm-project
revision: d32170dbd5b0d54436537b6b75beaf44324e0c28
clang-12:
description: clang 12.0.1 source code
fetch:
type: git
repo: https://github.com/llvm/llvm-project
revision: fed41342a82f5a3a9201819a82bf7a48313e296b
clang-13:
description: clang 13.0.0 source code
fetch:
@ -389,22 +396,22 @@ clang-trunk:
repo: https://github.com/llvm/llvm-project
branch: main
# This revision currently corresponds to rust nightly-2021-09-05,
# which is the first nightly with the version 1.57.0,
# This revision currently corresponds to rust nightly-2021-07-25,
# which is the first nightly with the version 1.56.0,
# so it should be as close as possible to the behaviour of
# stable-1.56.0.
# stable-1.55.0.
#
# We use this to build from source, so the resulting non-official
# artifacts will report their version as "1.57.0-dev", but will otherwise
# artifacts will report their version as "1.56.0-dev", but will otherwise
# behave like a nightly build. This means they will allow you to use
# unstable features like -Zbuild-std and sanitizers.
rust-1.57.0-dev:
description: Rust 1.57.0-dev source code
rust-1.56.0-dev:
description: Rust 1.56.0-dev source code
fetch:
type: git
include-dot-git: true
repo: https://github.com/rust-lang/rust/
revision: 5d2a410ff78247c418e28b69f7cad02bdd2168d6
revision: d9aa28767287670df6cf823b94629122e04442c0
wasi-sdk:
description: wasi-sdk source code

Просмотреть файл

@ -430,7 +430,9 @@ sm-fuzzing-linux64/opt:
spidermonkey-variant: fuzzing
fetches:
toolchain:
- linux64-clang-13
# Keep this with clang-12 until we move to rust 1.56 that uses the same
# LLVM-13 backend as clang-13
- linux64-clang-12
- linux64-rust
- linux64-cbindgen
- linux64-dump_syms

Просмотреть файл

@ -130,6 +130,27 @@ linux64-clang-trunk:
- linux64-toolchain-sysroot
- wasm32-wasi-compiler-rt
linux64-clang-12:
description: "Clang 12 toolchain build"
attributes:
local-toolchain: true
treeherder:
symbol: TL(clang12)
run-on-projects: [trunk]
run:
using: toolchain-script
script: build-clang.sh
arguments:
- 'build/build-clang/clang-12-linux64.json'
resources:
- 'build/build-clang/clang-12-linux64.json'
toolchain-artifact: public/build/clang.tar.zst
fetches:
fetch:
- clang-12
toolchain:
- linux64-toolchain-sysroot
linux64-clang-13:
description: "Clang 13 toolchain build"
attributes:

Просмотреть файл

@ -25,7 +25,7 @@ linux64-dump_syms:
toolchain:
- linux64-binutils
- linux64-clang-13
- linux64-rust-1.56
- linux64-rust-1.55
- sysroot-x86_64-linux-gnu
macosx64-dump_syms:
@ -37,7 +37,7 @@ macosx64-dump_syms:
toolchain-artifact: public/build/dump_syms.tar.zst
fetches:
toolchain:
- linux64-rust-macos-1.56
- linux64-rust-macos-1.55
- linux64-clang-13
- linux64-cctools-port-clang-13
- macosx64-sdk-11.0
@ -51,7 +51,7 @@ macosx64-aarch64-dump_syms:
toolchain-artifact: public/build/dump_syms.tar.zst
fetches:
toolchain:
- linux64-rust-macos-1.56
- linux64-rust-macos-1.55
- linux64-clang-13
- linux64-cctools-port-clang-13
- macosx64-sdk-11.0
@ -70,4 +70,4 @@ win64-dump_syms:
tooltool-downloads: internal
fetches:
toolchain:
- win64-rust-1.56
- win64-rust-1.55

Просмотреть файл

@ -44,12 +44,12 @@ linux64-rust-1.53:
toolchain:
- linux64-clang
linux64-rust-1.56:
linux64-rust-1.55:
treeherder:
symbol: TL(rust)
run:
arguments: [
'--channel', '1.56.0',
'--channel', '1.55.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-unknown-linux-gnu',
'--target', 'i686-unknown-linux-gnu',
@ -80,19 +80,19 @@ linux64-rust-dev:
]
fetches:
fetch:
- rust-1.57.0-dev
- rust-1.56.0-dev
toolchain:
- linux64-clang
- linux64-binutils
linux64-rust-cross-1.56:
linux64-rust-cross-1.55:
description: "rust repack with macos and windows cross support"
treeherder:
symbol: TL(rust-cross)
run:
arguments: [
'--channel', '1.56.0',
'--channel', '1.55.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-unknown-linux-gnu',
'--target', 'i686-unknown-linux-gnu',
@ -109,13 +109,13 @@ linux64-rust-cross-1.56:
]
toolchain-alias: linux64-rust-cross
linux64-rust-static-1.56:
linux64-rust-static-1.55:
description: "rust repack with static linking support"
treeherder:
symbol: TL(rust-static)
run:
arguments: [
'--channel', '1.56.0',
'--channel', '1.55.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-unknown-linux-musl',
@ -161,13 +161,13 @@ linux64-rust-macos-1.53:
'--target', 'x86_64-apple-darwin',
]
linux64-rust-macos-1.56:
linux64-rust-macos-1.55:
description: "rust repack with macos-cross support"
treeherder:
symbol: TL(rust-macos-1.56)
symbol: TL(rust-macos-1.55)
run:
arguments: [
'--channel', '1.56.0',
'--channel', '1.55.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-apple-darwin',
@ -175,13 +175,13 @@ linux64-rust-macos-1.56:
]
toolchain-alias: linux64-rust-macos
linux64-rust-android-1.56:
linux64-rust-android-1.55:
description: "rust repack with android-cross support"
treeherder:
symbol: TL(rust-android)
run:
arguments: [
'--channel', '1.56.0',
'--channel', '1.55.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-unknown-linux-gnu',
'--target', 'armv7-linux-androideabi',
@ -222,13 +222,13 @@ linux64-rust-windows-1.53:
'--target', 'i686-pc-windows-msvc',
]
linux64-rust-windows-1.56:
linux64-rust-windows-1.55:
description: "rust repack with windows-cross support"
treeherder:
symbol: TL(rust-win)
run:
arguments: [
'--channel', '1.56.0',
'--channel', '1.55.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-pc-windows-msvc',
@ -260,12 +260,12 @@ win64-rust-1.53:
'--target', 'aarch64-pc-windows-msvc',
]
win64-rust-1.56:
win64-rust-1.55:
treeherder:
symbol: TW64(rust)
run:
arguments: [
'--channel', '1.56.0',
'--channel', '1.55.0',
'--host', 'x86_64-pc-windows-msvc',
'--target', 'x86_64-pc-windows-msvc',
'--target', 'i686-pc-windows-msvc',
@ -273,12 +273,12 @@ win64-rust-1.56:
]
toolchain-alias: win64-rust
macosx64-rust-1.56:
macosx64-rust-1.55:
treeherder:
symbol: TM(rust)
run:
arguments: [
'--channel', '1.56.0',
'--channel', '1.55.0',
'--host', 'x86_64-apple-darwin',
'--target', 'x86_64-apple-darwin',
]
@ -297,12 +297,12 @@ mingw32-rust-1.53:
'--target', 'x86_64-unknown-linux-gnu',
]
mingw32-rust-1.56:
mingw32-rust-1.55:
treeherder:
symbol: TMW(rust)
run:
arguments: [
'--channel', '1.56.0',
'--channel', '1.55.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'i686-unknown-linux-gnu',
'--target', 'i686-pc-windows-gnu',

Просмотреть файл

@ -40,8 +40,6 @@ skip-if = (os != 'win' && os != 'linux') || (os=='linux' && bits==32)
[test_crash_terminator.js]
[test_crash_backgroundtask_moz_crash.js]
skip-if = os == 'win'
reason = Race condition that makes it fail too frequently
[test_crash_heap_corruption.js]
skip-if = os != 'win'

Просмотреть файл

@ -10,6 +10,3 @@ lazy_static = "1"
log = {version = "0.4", features = ["release_max_level_info"]}
env_logger = {version = "0.8", default-features = false} # disable `regex` to reduce code size
app_services_logger = { path = "../../../services/common/app_services_logger" }
[target."cfg(windows)".dependencies]
winapi = "0.3"

Просмотреть файл

@ -159,8 +159,6 @@ pub struct GeckoLogger {
logger: env_logger::Logger,
}
pub struct GeckoLoggerInitError(());
impl GeckoLogger {
pub fn new() -> GeckoLogger {
let mut builder = env_logger::Builder::new();
@ -177,24 +175,14 @@ impl GeckoLogger {
GeckoLogger { logger }
}
pub fn init() -> Result<(), GeckoLoggerInitError> {
#[cfg(windows)]
unsafe {
// Work around https://github.com/rust-lang/rust/issues/88576.
use winapi::um::processenv::GetStdHandle;
use winapi::um::winbase::{STD_ERROR_HANDLE, STD_OUTPUT_HANDLE};
if GetStdHandle(STD_OUTPUT_HANDLE).is_null() || GetStdHandle(STD_ERROR_HANDLE).is_null()
{
return Err(GeckoLoggerInitError(()));
}
}
pub fn init() -> Result<(), log::SetLoggerError> {
let gecko_logger = Self::new();
// The max level may have already been set by gecko_logger. Don't
// set it to a lower level.
let level = cmp::max(log::max_level(), gecko_logger.logger.filter());
log::set_max_level(level);
log::set_boxed_logger(Box::new(gecko_logger)).map_err(|_| GeckoLoggerInitError(()))
log::set_boxed_logger(Box::new(gecko_logger))
}
fn should_log_to_app_services(target: &str) -> bool {