While working on reproducible builds for openSUSE, I found that
our rustup package varies from non-deterministic filesystem readdir order that influences the rustup binary machine code.
In the build system I can see variations in
liblzma_sys ...rlib
libzstd_sys ...rlib
rustup_init
Steps
use disorderfs --shuffle-dirents=yes or a scratch ext4 filesystem to build rustup twice
Possible Solution(s)
need to sort relevant source or .o file lists
Notes
/usr/bin/rustup differs in assembler output
--- old /usr/bin/rustup (disasm)+++ new /usr/bin/rustup (disasm)@@ -1068357,1696 +1068357,126 @@
jmp <ZSTD_decompressStream + ofs>
xchg %ax,%ax
-ZSTDv07_defaultAllocFunction:- mov %rsi,%rdi- jmp <malloc@plt>- nopl offset(%rax,%rax,1)-...+FSEv05_buildDTable:
Rustup version
rustup-1.24.3~0.tar.xz
Installed toolchains
openSUSE Tumbleweed 20220330rust-1.59.0
The text was updated successfully, but these errors were encountered:
This is very likely out of our control - that looks like it's code which is differing, and that'd be up to the compiler not us. You should try and discuss this with the rust-lang/rust people.
Problem
While working on reproducible builds for openSUSE, I found that
our
rustuppackage varies from non-deterministic filesystem readdir order that influences the rustup binary machine code.In the build system I can see variations in
liblzma_sys ...rlib
libzstd_sys ...rlib
rustup_init
Steps
disorderfs --shuffle-dirents=yesor a scratch ext4 filesystem to build rustup twicePossible Solution(s)
need to sort relevant source or .o file lists
Notes
Rustup version
rustup-1.24.3~0.tar.xzInstalled toolchains
The text was updated successfully, but these errors were encountered: