]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
rust.inc: Fix for cross compilation configuration
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 5 Aug 2022 12:33:08 +0000 (13:33 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 8 Aug 2022 14:41:36 +0000 (15:41 +0100)
For cross compilation, build, host and target may be different. Ensure
the main rust config has the appropriate sections added to match the
configurations.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/rust/rust.inc

index 12c86e02c4ab5949be61c1a718ad03b8ebed797f..7c16b8165bbd18babe7348320fd0755baba6fbe7 100644 (file)
@@ -73,7 +73,7 @@ python do_configure() {
     config = configparser.RawConfigParser()
 
     # [target.ARCH-poky-linux]
-    host_section = "target.{}".format(d.getVar('RUST_TARGET_SYS', True))
+    host_section = "target.{}".format(d.getVar('RUST_HOST_SYS', True))
     config.add_section(host_section)
 
     llvm_config_target = d.expand("${RUST_ALTERNATE_EXE_PATH}")
@@ -86,12 +86,22 @@ python do_configure() {
     # If we don't do this rust-native will compile it's own llvm for BUILD.
     # [target.${BUILD_ARCH}-unknown-linux-gnu]
     build_section = "target.{}".format(d.getVar('RUST_BUILD_SYS', True))
-    config.add_section(build_section)
+    if build_section != host_section:
+        config.add_section(build_section)
 
-    config.set(build_section, "llvm-config", e(llvm_config_build))
+        config.set(build_section, "llvm-config", e(llvm_config_build))
 
-    config.set(build_section, "cxx", e(d.expand("${RUST_BUILD_CXX}")))
-    config.set(build_section, "cc", e(d.expand("${RUST_BUILD_CC}")))
+        config.set(build_section, "cxx", e(d.expand("${RUST_BUILD_CXX}")))
+        config.set(build_section, "cc", e(d.expand("${RUST_BUILD_CC}")))
+
+    target_section = "target.{}".format(d.getVar('RUST_TARGET_SYS', True))
+    if target_section != host_section and target_section != build_section:
+        config.add_section(target_section)
+
+        config.set(target_section, "llvm-config", e(llvm_config_target))
+
+        config.set(target_section, "cxx", e(d.expand("${RUST_TARGET_CXX}")))
+        config.set(target_section, "cc", e(d.expand("${RUST_TARGET_CC}")))
 
     # [llvm]
     config.add_section("llvm")