Call for real-world scenarios prevented by RB practices
John Gilmore
gnu at toad.com
Fri Mar 25 04:00:24 UTC 2022
On 22/03/2022 13.46, Chris Lamb wrote:
> Just wondering if anyone on this list is aware of any real-world
> instances where RB practices have made a difference and flagged
> something legitimately "bad"?
The GNU compilers are already tested for complete reproducibility. We
at Cygnus Support built that infrastructure back in the 1990s, when we
made gcc into a cross-compiler (compiling on any architecture + OS,
targeting any other). We built the Deja Gnu test harness, and some
compiler/assembler/linker test suites, that rebuilt not just our own
tools, but also a test suite with hundreds or thousands of programs. We
compared their binaries until they were bit-for-bit identical when built
on many different host machines of different architectures.
To make it work, we had to fix many bugs and misfeatures, including even
some high-level design bugs, like object file formats that demanded a
timestamp (we decided that 0 was a fine timestamp). A few of those bugs
involved generating different but working instruction sequences -- I
recall fixing one that depended on an uninitialized local variable.
We never found any malicious code in the GNU tools during that process,
just poorly debugged code and unportable code. I don't know whether
that's because nobody malevolent actually knew what a lever they would
have had by infesting our code, or whether we really weren't as
important as we thought we were :-/. I was still manually making and
reading the diff between the previous release and each new release, to
make sure that no change that I didn't recognize would slip through. It
was a pretty heady feeling to make a GNU tool release, send an email to
info-gnu, and have thousands of people running it in the next few days.
We took the responsibility seriously.
(Caveat: We weren't shipping binaries, except to Cygnus customers.
Maliciously patched binaries are what RB is designed to prevent.)
John
More information about the rb-general
mailing list