5 ms·
And vendor malice isn't the only reason why the software might be harmful. What if the vendor's toolchain was compromised without their knowledge? Reproducible
by mrob 6y ago
And vendor malice isn't the only reason why the software might be harmful. What if the vendor's toolchain was compromised without their knowledge? Reproducible builds provide a means for third parties to verify that it wasn't.
- R0b0t1 6y agoThe holy grail of reproducible builds is achieving the same binary via different compilers. This was, at least when I started looking into reproducible builds, why I wanted to do it and why others wanted to do it. The other benefits are kind of side benefits.
- Foxboron 6y agoThere has been some interesting progress with bootstrappable builds in regard to the GNU MES C compiler and building GCC. https://salsa.debian.org/reproducible-builds/reproducible-website/-/blob/master/_posts/2019-12-XX-reproducible-bootstrap-of-mes-c-compiler.md https://salsa.debian.org/reproducible-builds/reproducible-we...
- pests 6y agoThis can't be correct. What would be the point of different compilers be then? There's no way that every compiler would produce the same exact insrtuctions for each respected input. There would be no point to using an optimizing compiler or one with better intrinsic support.
- Willamin 6y ago> What would be the point of different compilers be then? When given the same input and expecting the same output, there remains only one thing: compile speed.
- pests 6y agoWell, and memory usage too etc. But what's the point then? Why would Intel have their optimizing compiler? Why GCC vs llvm?
- R0b0t1 6y agoObtaining evidence a compiler probably isn't backdoored is the point. >There's no way that every compiler would produce the same exact insrtuctions for each respected input. You don't know this.
- rramdin 6y agoPerhaps you're comparing a multithreaded version with a single threaded version, or a single-host build vs distributed build. When adding new features to a compiler, you might want to verify that the old and new versions have the same output given the same input. If your compilers produced non-deterministic output, this exercise would not be possible.
- pests 6y agoI took the statement "different compilers" to be completely different projects and codebases. Of course reproducable builds make sense in that situation. But why in the world would you ever expect gcc to 100% always match the output of llvm? That doesn't make sense.
- a1369209993 6y ago> the same binary via different compilers Are you sure you aren't thinking of diverse double-compiling[0]? Which specifically does not require different compilers to produce the same output[1], just different runs of different binaries of the same compiler. 0: https://dwheeler.com/trusting-trust/dissertation/html/wheeler-trusting-trust-ddc.html https://dwheeler.com/trusting-trust/dissertation/html/wheele... 1: https://dwheeler.com/trusting-trust/#misconceptions https://dwheeler.com/trusting-trust/#misconceptions