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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to