Skip to content

llvm17/rust: random variations in binaries #72206

Open
@bmwiedemann

Description

@bmwiedemann

While working on reproducible builds for openSUSE, I found that
various rust packages produced different binaries in every build,
even when trying to run builds as similar as possible.

versions:

  • openSUSE Tumbleweed 20231108
  • libLLVM17-17.0.4
  • rust-1.73

affected packages:

  • contrast
  • difftastic
  • rage-encryption
  • sad
  • tiny

Diffs (from filterdiff strings {1,2}/usr/bin/sad) look like this:

 _ZN12aho_corasick6packed5teddy7compile7Builder5build17h1ec13fda1b911f51E
-_ZN71_$LT$sad..argparse..Arguments$u20$as$u20$clap_builder..derive..Args$GT$12augment_args17hb63754f2b3f23d81E.llvm.7060706947469140631
 _ZN9hashbrown11rustc_entry62_$LT$impl$u20$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$GT$11rustc_entry17h3404a67c5ebadd16E
...
 _ZN4core3ptr37drop_in_place$LT$sad..types..Fail$GT$17h4a94ee46810be113E.llvm.8642040941601995225
+_ZN71_$LT$sad..argparse..Arguments$u20$as$u20$clap_builder..derive..Args$GT$12augment_args17hb63754f2b3f23d81E.llvm.5074700338430727270
 _ZN5tokio7runtime9scheduler6Handle5spawn17he9d3e7b13daae14fE
...
 anon.f8976536234e6da06679650d2fbaaa4b.3.llvm.2679463096021464399
-anon.cf22f61d4b59a658db753519f084dfc2.29.llvm.7060706947469140631
 anon.cdafd13cf3071da50e39cc55ae689763.5.llvm.15702125857252448827
@@ -40685,6 +40684,7 @@
 anon.865f8e79028a90f3ec901722c5bc9a01.1751.llvm.141406229195693483
 anon.a3ee08d29b32c89866319fa543dc03d1.3.llvm.17006684412476199951
 _ZN61_$LT$std..io..stdio..StdoutLock$u20$as$u20$std..io..Write$GT$5flush17ha20f2e5d3ef392cdE
+anon.cf22f61d4b59a658db753519f084dfc2.29.llvm.5074700338430727270
 rust_panic

so it seems there is some random number appended and that influences ordering.

Metadata

Metadata

Assignees

No one assigned

    Labels

    build-problemincompleteIssue not complete (e.g. missing a reproducer, build arguments, etc.)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions