From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 32557 invoked from network); 14 Sep 2020 00:34:29 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 14 Sep 2020 00:34:29 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id 2FE429CB03; Mon, 14 Sep 2020 10:34:27 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 8C1169CAE7; Mon, 14 Sep 2020 10:33:49 +1000 (AEST) Received: by minnie.tuhs.org (Postfix, from userid 112) id A75A49CAE7; Mon, 14 Sep 2020 10:33:46 +1000 (AEST) Received: from hop.toad.com (75-101-100-43.dsl.static.fusionbroadband.com [75.101.100.43]) by minnie.tuhs.org (Postfix) with ESMTPS id 94E399CAE6 for ; Mon, 14 Sep 2020 10:33:45 +1000 (AEST) Received: from hop.toad.com (localhost [127.0.0.1]) by hop.toad.com (8.12.9/8.12.9) with ESMTP id 08E0Xhm0006696; Sun, 13 Sep 2020 17:33:43 -0700 To: Paul Winalski In-reply-to: References: <87k0x2ugb2.fsf@gmail.com> Comments: In-reply-to Paul Winalski message dated "Sun, 13 Sep 2020 13:42:19 -0400." Date: Sun, 13 Sep 2020 17:33:43 -0700 Message-ID: <6695.1600043623@hop.toad.com> From: John Gilmore Subject: Re: [TUHS] UNESCO call for a study on the future institutional structure for Software Heritage (fwd) X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: TUHS List Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" Paul Winalski 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