| Summary: | rust: n32 mips rust fails in libstd-rs | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Richard Purdie <richard.purdie> |
| Component: | devtools / tool chain | Assignee: | Sundeep Kokkonda <sundeep.kokkonda> |
| Status: | RESOLVED INVALID | QA Contact: | |
| Severity: | normal | ||
| Priority: | Medium | CC: | meta.mr.watcher, meta.watcher, randy.macleod, sundeep.kokkonda |
| Version: | 0.0.0 | ||
| Target Milestone: | 4.3 | ||
| Hardware: | x86 | ||
| OS: | Multiple | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |
|
Description
Richard Purdie
2022-08-09 13:17:58 UTC
Only n32 is affected. It could be that our input specs are just wrong. Hello, I tried build for n32 abi by changing the data layout (by referring the https://irix7.com/techpubs/007-2816-004.pdf) but still the error is not resolved. When a program is compiled, the 'llvm-ir' will give the correct data layout used for the target it is compiled. So, I tried to compile a test prog for mips64-n32 abi and while doing this I found that the rust is currently not supporting the targets with n32 abi. I suspect this is the reason for this bug. There is no n32 abi for mips in rust supported platforms https://doc.rust-lang.org/nightly/rustc/platform-support.html. Also, the supported target list also not having n32 abi for mips. $ rustc --print target-list| grep mips mips-unknown-linux-gnu mips-unknown-linux-musl mips-unknown-linux-uclibc mips64-unknown-linux-gnuabi64 mips64-unknown-linux-muslabi64 mips64el-unknown-linux-gnuabi64 mips64el-unknown-linux-muslabi64 mipsel-sony-psp mipsel-unknown-linux-gnu mipsel-unknown-linux-musl mipsel-unknown-linux-uclibc mipsel-unknown-none mipsisa32r6-unknown-linux-gnu mipsisa32r6el-unknown-linux-gnu mipsisa64r6-unknown-linux-gnuabi64 mipsisa64r6el-unknown-linux-gnuabi64 I raised this issue on rust community as well. Let me see if I get any solution there. Hello, I did further analysis on this issue, the 'libstd-rs' pkg was not built before enabling rust target build. The build with latest sources has 'poky/build/tmp/work/mips64-n32-poky-linux-gnun32/libstd-rs' build directory. I pulled some old commit before these rust upgrades and gave build with exact same build config as where we get this n32 build issue. Old sources build successfully without n32 llvm error but there is no such ../../mips64-n32-poky-linux-gnun32/libstd-rs build dir available. Also, on latest sources the 'pn-buildlist' for 'bitbake -g rust' shows dependency on 'libstd-rs' where as the old sources gave error ' Nothing PROVIDES 'rust''. Any pointers would be helpful for further debugging / how to fix. Bug https://github.com/rust-lang/rust/issues/100687 created on rust community. We don't expect to fix this but we'll keep the defect open until mips64-n32 support is dropped in Yocto. There is an update from community that Mips n32 is not supported. https://github.com/rust-lang/rust/issues/100687#issuecomment-1617358303 Can we close this bug? Not a supported target as per Sundeep's comment. |