Error: Error loading target specification: ARM targets must specify their float ABI. Run `rustc --print target-list` for a list of built-in targets

After the implementation of the check for float ABI for ARM targets in https://github.com/rust-lang/rust/commit/a51fefcaab835b310e2e26005b50982d0049d905 in rust v1.85.0,
I am facing the following error while cross-compiling for ARM 32-bit target using poky:

Caused by:
|   process didn't exit successfully: `rustc - --crate-name ___ --print=file-names -L /home/poky/85/build/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/libstd-rs/1.85.0/recipe-sysroot/usr/lib/rustlib/armv7-poky-linux-gnueabihf/lib --remap-path-prefix=/home/poky/85/build/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/libstd-rs/1.85.0=/usr/src/debug/libstd-rs/1.85.0 -Cembed-bitcode=yes -Zforce-unstable-if-unmarked -L /home/poky/85/build/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/libstd-rs/1.85.0/recipe-sysroot/usr/lib -C link-arg=-Wl,-soname,libstd.so --target armv7-poky-linux-gnueabihf --crate-type bin --crate-type rlib --crate-type dylib --crate-type cdylib --crate-type staticlib --crate-type proc-macro --print=sysroot --print=split-debuginfo --print=crate-name --print=cfg` (exit status: 1)
|   --- stderr
|   error: Error loading target specification: ARM targets must specify their float ABI. Run `rustc --print target-list` for a list of built-in targets

The target "cortexa15t2hf-neon-poky-linux-gnueabi" falls under the armv7-unknown-linux-gnueabihf (armv7-poky-linux-gnueabihf) arm family.
The closest matching target specification appears to be "armv7_unknown_linux_gnueabihf.rs" file, but it doesn't support the features +neon, +vfp2 ,+thumb-mode and +a15.

The required target specifications for cortexa15t2hf-neon-poky-linux-gnueabi are as follows:

{
    "llvm-target": "armv7-poky-linux-gnueabihf",
    "data-layout": "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64",
    "max-atomic-width": 64,
    "target-pointer-width": "32",
    "target-c-int-width": "32",
    "target-endian": "little",
    "arch": "arm",
    "os": "linux",
    "env": "gnu",
    "vendor": "unknown",
    "target-family": "unix",
    "linker": "arm-poky-linux-gnueabi-gcc",
    "cpu": "generic",
    "features": "+vfp2,+neon,+v7,+thumb2,+thumb-mode,+a15",
    "dynamic-linking": true,
    "executables": true,
    "linker-is-gnu": true,
    "linker-flavor": "gcc",
    "has-rpath": true,
    "position-independent-executables": true,
    "panic-strategy": "unwind"
}

I also tried to add a new target specification file( armv7neon_unknown_linux_gnueabihf.rs) with the required details but I am still getting the same failure.

Can someone please assist me in resolving the issue?
Let me know if I am missing anything.

CC: @RalfJung

I think you are missing the abi key, maybe that's the cause of the compile error?

I am not sure. How do I pass it though?

add "abi": "eabihf" to the target spec json.

That won't help, though it would be good to set abi as well -- mostly what that does is control the behavior of cfg(target_abi).

The key point for fixing the error you are getting is that you have to add "llvm-floatabi": "hard" (or "soft", but it sounds like you are using a hardfloat target).

That worked.
Thanks!