Toolchain for ARM Cortex A7 and stdlib support information source?

I have researched toolchains for cross compiling and quite confused now which one is the appropriate one for ARM iMX7 Dual Core Cortex A7. I was told target device OS is Linux Yocto. I can see there are the following toolchains available:

> rustup target list | grep arm
arm-linux-androideabi
arm-unknown-linux-gnueabi
arm-unknown-linux-gnueabihf
arm-unknown-linux-musleabi
arm-unknown-linux-musleabihf
armebv7r-none-eabi
armebv7r-none-eabihf
armv5te-unknown-linux-gnueabi
armv5te-unknown-linux-musleabi
armv7-linux-androideabi
armv7-unknown-linux-gnueabi
armv7-unknown-linux-gnueabihf
armv7-unknown-linux-musleabi
armv7-unknown-linux-musleabihf
armv7a-none-eabi
armv7r-none-eabi
armv7r-none-eabihf

I know the target architecture is hf variant and aplication variant, not real-time variant. And Cortex A7 has ARMV7A architecture according to this.

  1. So, should it be armv7-unknown-linux-musleabihf / armv7-unknown-linux-gnueabihf OR arm-unknown-linux-musleabihf OR armv7a-none-eabi?

  2. The last armv7a-none-eabi does not have hf variant. Although platform support documentation suggests there is one. If it exists and if it is the one I need to use, how do I get it with rustup if it is not in the list of rustup target list?

  3. I can see all these toolchains support rust stdlib according to rustup compon ents history. But the rust docs resource, which I see is more official but less up to date, suggests it does not support stdlib. Which information source is correct?

  4. I assume the answer for Cortex A8 with Openembedded Linux should have the same answer for the above question #1 as Cortex A7 with Yocto. Correct?

PS: I might be missing some important context information, but this embedded development is new to me. I am exploring how a web server based on hyper can be cross compiled for Cortex A7 and Cortext A8. I expect it should not be an issue theoretically as this CPU is quite powerful and rich for "non-embedded" applications. Apparently JVM, GoVM and PythonVM run quite well there... Hopefully rust with stdlib can run there too?

Since target has Linux as OS, it's definitely not *-none-eabi* targets. Those are for targets without OS.

If you don't know what musl is, you should pick gnu target. Since target ISA is v7 and hf variant, it should be armv7-unknown-linux-gnueabihf.

Yes, Cortex A8's ISA is also v7 (not v8).

Yes, Rust should be no problem if it runs JVM.

Thanks for explaining. musl is the alternative libc runtime.
I have found the correct toolchain is armv7-unknown-linux-gnueabihf or armv7-unknown-linux-musleabihf

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.