-
Hi, I actually use I recently upgrade I'm still not sure at what level reproducibility is broken. The change that makes Bob no longer reproducible at all is the update to 3.6.2 - in fact, I suspect a change at that level but I agree that the error could potentially be elsewhere. |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 6 replies
-
Right before the 3.6.2 release I wrote 32292ae which I believe improves build determinism, by ensuring the UNIX mode bits of ZIP artifacts can only be 0644 or 0755. This resolved issues where I was getting inconsistent builds on MacOS vs. Ubuntu because each OS had different default settings for how the group bits show up. It would help me if you could explain what you mean by reproducible. What are you comparing? A binary before the release versus after? A binary built by cosmocc on one OS versus cosmocc on another? The bits at the end of the file are the ZIP artifacts. Since we know the issue is there, you could use the |
Beta Was this translation helpful? Give feedback.
-
Sorry for the delay, I'm currently presenting Bob and Cosmopolitan at ICFP 2024 and I still haven't made the slides!
Yes, this is exactly the test to suit reproducibility. I've decompressed (with unzip - UnZip 6.00 of 20 April 2009, by Info-ZIP) the artifact and it seems that between each build, there's a difference in the symtabs. As an example, here's a
The difference is in the last line, but I don't know (yet) what it really is. There is also a difference in |
Beta Was this translation helpful? Give feedback.
I deactivated ASLR when I built my software and I can confirm that I can now reproduce it. So the error does concern the
t
pointer and ASLR (mmap
). I'm not sure what you could do to ensure reproducibility with or without ASLR, as I don't have in-depth knowledge of Cosmopolitan. But a fix isn't necessarily urgent (or even necessary if it's explicitly stated that ASLR must be disabled to ensure reproducibility here). /cc @jart