LTO kills the build on 32-bit architectures. --- firefox-128.0/config/makefiles/rust.mk.old 2024-07-04 11:20:25.000000000 -0500 +++ firefox-128.0/config/makefiles/rust.mk 2024-08-04 03:20:25.375459833 -0500 @@ -82,25 +82,6 @@ # 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 -# Never enable when coverage is enabled to work around https://github.com/rust-lang/rust/issues/90045. -ifndef MOZ_CODE_COVERAGE -ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE))) -cargo_rustc_flags += -Clto$(if $(filter full,$(MOZ_LTO_RUST_CROSS)),=fat) -endif -# We need -Cembed-bitcode=yes for all crates when using -Clto. -RUSTFLAGS += -Cembed-bitcode=yes -endif -endif -endif -endif -endif ifdef CARGO_INCREMENTAL export CARGO_INCREMENTAL