From 33ff25e2b126dd4135006139641d8b7f6e4da200 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex@linutronix.de>
Date: Fri, 1 Oct 2021 13:02:17 +0200
Subject: [PATCH] rust.configure: do not try to find a suitable upstream target

OE is using custom targets and so this is bound to fail.

Upstream-Status: Inapppropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex@linutronix.de>

---
 build/moz.configure/rust.configure | 34 ++----------------------------
 1 file changed, 2 insertions(+), 32 deletions(-)

diff --git a/build/moz.configure/rust.configure b/build/moz.configure/rust.configure
index e64dc5d5ec..edf21baca6 100644
--- a/build/moz.configure/rust.configure
+++ b/build/moz.configure/rust.configure
@@ -471,33 +471,7 @@ def assert_rust_compile(host_or_target, rustc_target, rustc):
 def rust_host_triple(
     rustc, host, compiler_info, rustc_host, rust_supported_targets, arm_target
 ):
-    rustc_target = detect_rustc_target(
-        host, compiler_info, arm_target, rust_supported_targets
-    )
-    if rustc_target != rustc_host:
-        if host.alias == rustc_target:
-            configure_host = host.alias
-        else:
-            configure_host = "{}/{}".format(host.alias, rustc_target)
-        die(
-            dedent(
-                """\
-        The rust compiler host ({rustc}) is not suitable for the configure host ({configure}).
-
-        You can solve this by:
-        * Set your configure host to match the rust compiler host by editing your
-        mozconfig and adding "ac_add_options --host={rustc}".
-        * Or, install the rust toolchain for {configure}, if supported, by running
-        "rustup default stable-{rustc_target}"
-        """.format(
-                    rustc=rustc_host,
-                    configure=configure_host,
-                    rustc_target=rustc_target,
-                )
-            )
-        )
-    assert_rust_compile(host, rustc_target, rustc)
-    return rustc_target
+    return rustc_host
 
 
 @depends(
@@ -507,11 +481,7 @@ def rust_host_triple(
 def rust_target_triple(
     rustc, target, compiler_info, rust_supported_targets, arm_target
 ):
-    rustc_target = detect_rustc_target(
-        target, compiler_info, arm_target, rust_supported_targets
-    )
-    assert_rust_compile(target, rustc_target, rustc)
-    return rustc_target
+    return target.alias
 
 
 set_config("RUST_TARGET", rust_target_triple)
