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