Mozilla rustc check does not support crossbuild: let's remove it Remove calls to unwrap_rustup, they fail if rustup isn't present Do not try to figure out the rust target as it is broken on musl instead use what is set in RUST_TARGET Skip extra checks on cross builds (broken for arm*) --- a/build/moz.configure/rust.configure 2020-12-12 01:35:33.000000000 +0100 +++ b/build/moz.configure/rust.configure 2020-12-15 19:45:16.467750787 +0100 @@ -91,9 +91,6 @@ return unwrap -rustc = unwrap_rustup(rustc, "rustc") -cargo = unwrap_rustup(cargo, "cargo") - set_config("CARGO", cargo) set_config("RUSTC", rustc) @@ -260,7 +257,9 @@ data.setdefault(key, []).append(namespace(rust_target=t, target=info)) return data - +@imports('os') +@imports(_from='mozbuild.util', _import='ensure_unicode') +@imports(_from='mozbuild.util', _import='system_encoding') def detect_rustc_target( host_or_target, compiler_info, arm_target, rust_supported_targets ): @@ -382,12 +381,12 @@ return None - rustc_target = find_candidate(candidates) + rustc_target = os.environ['RUST_TARGET'] if rustc_target is None: die("Don't know how to translate {} for rustc".format(host_or_target.alias)) - return rustc_target + return ensure_unicode(rustc_target, system_encoding) @imports("os") @@ -486,6 +485,7 @@ host, compiler_info, arm_target, rust_supported_targets ) if rustc_target != rustc_host: + return rustc_host if host.alias == rustc_target: configure_host = host.alias else: @@ -507,7 +507,6 @@ ) ) ) - assert_rust_compile(host, rustc_target, rustc) return rustc_target @@ -521,7 +520,6 @@ rustc_target = detect_rustc_target( target, compiler_info, arm_target, rust_supported_targets ) - assert_rust_compile(target, rustc_target, rustc) return rustc_target