The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: John Gilmore <gnu@toad.com>
To: Paul Winalski <paul.winalski@gmail.com>
Cc: TUHS List <tuhs@tuhs.org>
Subject: Re: [TUHS] UNESCO call for a study on the future institutional structure for Software Heritage (fwd)
Date: Sun, 13 Sep 2020 17:33:43 -0700	[thread overview]
Message-ID: <6695.1600043623@hop.toad.com> (raw)
In-Reply-To: <CABH=_VTty1bfKMYvYx2SpmX0b23SZ_ZHz3RYXBHPk48LLRdtWQ@mail.gmail.com>

Paul Winalski <paul.winalski@gmail.com> wrote:
> To get complete build reproducibility, your compiler writers have to
> be careful.  It's very easy to introduce random variability that
> doesn't affect the performance or semantics of the program.

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.

I have not been involved in the release process for gcc or other GNU
tools for many years, but I believe that these tests are still in use --
because the maintainers care.  If *your* compiler isn't reproducible,
why not switch to a free software one that is?

The Reproducible Builds effort is standing on the shoulders of many
others who came before, and who value deterministic computer behavior
and access to the matching source code of the binaries that users
depend upon.

	John Gilmore
	

      reply	other threads:[~2020-09-14  0:34 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-10  4:16 Robert Brockway
2020-09-10  9:33 ` Edouard Klein
2020-09-13 17:42   ` Paul Winalski
2020-09-14  0:33     ` John Gilmore [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6695.1600043623@hop.toad.com \
    --to=gnu@toad.com \
    --cc=paul.winalski@gmail.com \
    --cc=tuhs@tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).