Hello, The rust builds are not reproducible when the build path is changed. The issue details are in https://bugzilla.yoctoproject.org/show_bug.cgi?id=14875.
After debugging several ways, we tried to find at what build stage the Yocto build artifacts are deviating with rust sources generated artifacts. I took the identical rust tarball sources (rustc-1.67.0-src.tar.xz) as Yocto rust sources and built in two different paths (buildA & buildB directories). In the rust sources the generated binaries are identical between 2 different builds. But, In Yocto we found that the binaries '../tmp/work/x86_64-linux/rust-native/1.67.0-r0/recipe-sysroot-native/usr/lib/llvm-rust/lib/libLTO.so & libRemarks.so' are differed between 2 builds. See the differences in the attached 'libLTO-diff.png'. And these objects are passed to compile all rust crates in later build stages (with option '-L native=/ala-lpggp31/skokkonda/875/poky/buildC/tmp/work/x86_64-linux/rust-native/1.67.0-r0/recipe-sysroot-native/usr/lib/llvm-rust/lib'). So, we suspect this could be the reason for this reproducibility issue in Yocto. I tried to find the reason for difference in these binaries but the '-vv' build log doesn't give enough info by linking which objects this libLTO.so is generated. I tried the disassembly of object files generated in ../x86_64-linux/rust-native/ but that didn't showup these binary differences. Anyone who has expertise with rust-llvm can guide me here on how these *.so are generating and how to understand/fix these differences. Thanks, Sundeep K.
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#177528): https://lists.openembedded.org/g/openembedded-core/message/177528 Mute This Topic: https://lists.openembedded.org/mt/97113152/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-