From: WXbet Date: Sat, 1 Aug 2026 16:16:06 +0000 (-0700) Subject: rust-target-config: set MIPS ABI in the target JSON X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8042c1652f774434a0652ff28cd074ee7984d2b9;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git rust-target-config: set MIPS ABI in the target JSON rustc 1.96 (rust-lang/rust#153769) started rejecting MIPS target JSON files that do not carry both an "abi" field and a matching "llvm- abiname" field, aborting libstd-rs's do_compile with error: error loading target specification: invalid MIPS ABI name and `cfg(target_abi)` combination: ABI name: cfg(target_abi): rust_gen_target() populates the target JSON from the DATA_LAYOUT / TARGET_ENDIAN / ... varflags plus an arch-specific "abi" branch that today only covers arm/armv7. On mips*/mipsel* neither "abi" nor "llvm-abiname" is written, so rustc's stricter check fails. Cover every MIPS tune shipped in meta/conf/machine/include/mips/ arch-mips.inc's AVAILTUNES: arch=mips / mipsel -> o32 arch=mips64 / mips64el, ABIEXTENSION="" -> n64 arch=mips64 / mips64el, ABIEXTENSION=n32 -> n32 Note that the mips64-o32 / mips64el-o32 tunes (o32 ABI on a 64-bit MIPS CPU) get MIPSPKGSFX_BYTE="" from arch-mips.inc and therefore TUNE_ARCH="mips[el]"; they fall into the 32-bit branch above. Signed-off-by: WXbet <57314510+WXbet@users.noreply.github.com> Signed-off-by: Richard Purdie --- diff --git a/meta/classes-recipe/rust-target-config.bbclass b/meta/classes-recipe/rust-target-config.bbclass index 6acbe5e688..54919091fe 100644 --- a/meta/classes-recipe/rust-target-config.bbclass +++ b/meta/classes-recipe/rust-target-config.bbclass @@ -438,6 +438,13 @@ def rust_gen_target(d, thing, wd, arch): elif fpu == "hard": tspec['abi'] = "eabihf" tspec['llvm-floatabi'] = "hard" + if arch in ["mips", "mipsel"]: + tspec['abi'] = "o32" + tspec['llvm-abiname'] = "o32" + elif arch in ["mips64", "mips64el"]: + mips_abi = "n32" if abi == "n32" else "n64" + tspec['abi'] = mips_abi + tspec['llvm-abiname'] = mips_abi tspec['default-uwtable'] = True tspec['dynamic-linking'] = True tspec['executables'] = True