The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* [TUHS] Reproducible builds in the Seventh Research Edition
@ 2026-01-18 14:44 Diomidis Spinellis via TUHS
  0 siblings, 0 replies; only message in thread
From: Diomidis Spinellis via TUHS @ 2026-01-18 14:44 UTC (permalink / raw)
  To: TUHS

I noticed that most makefiles in the Seventh Research Edition Unix 
/usr/src/cmd directory contain two non-default rules: *cp* to build and 
copy the executable file to its destination and *cmp* to build and 
compare the executable against its destination.  Both then delete the 
object and executable files.  Here's an example from awk [1].

all:	awk

cp:	awk
	cp awk /bin/awk
	rm *.o awk.h proc awk proctab.c y.tab.h

cmp:	awk
	cmp awk /bin/awk
	rm *.o awk.h proc awk proctab.c y.tab.h

Does anyone know the main reason for the *cmp* rule?  Was it to check 
that the source code matched the system's executable; to check that an 
updated compiler still produced the same executable; or to check against 
disk corruption?

In any case, it appears that in the 1970s Unix supported reproducible 
builds, a property that got lost as build tool chains got more complex 
and became a thing decades later [2].


[1] 
https://github.com/dspinellis/unix-history-repo/blob/Research-V7/usr/src/cmd/awk/makefile
[2] https://en.wikipedia.org/wiki/Reproducible_builds


Diomidis - https://www.spinellis.gr

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-01-18 14:44 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-18 14:44 [TUHS] Reproducible builds in the Seventh Research Edition Diomidis Spinellis via TUHS

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).