On Sat, 30 Nov 2024, Noel Chiappa wrote:
I was able to rebuild both the UNSW and the
native PWB compiler on PWB
1.0, but not to backport either to vanilla v6.
Any idea what the problem was? I'm curious, because we ran a version of the
Typesetter compiler on the MIT systems, which ran an enhanced V6.
Noel
Yes, I have a general sense after making some progress building
on v6 and further exploring the PWB 1.0 and UNSW sets as noted
below. Would be interested to complete the process and add any
details I am missing.
I had to use the new c compiler and assembler from the Shoppa
disk (nix_v6.rl02.gz) to bootstrap the build using the UNSW files
on v6.
The original typesetter c distribution was supposed to be for v6,
which is my intended use case, but it appears the third-party
copies we have available drifted:
- the stock v6 compiler could not build the new "Portable I/O
Library" (/lib/libS.a supporting stdio) from UNSW or PWB as the
pre-requisite to building the new compiler. The code is almost
all the same in both, although UNSW is missing tmpnam.c.
- "old" cc gave a lot of basic syntax errors from the
included stdio.h and the library files with some of the most
common issues being redeclared items and classes.
- I had to adjust the UNSW includes to point to the
in-directory stdio.h file rather than the to be created include
path (/usr/include/stdio.h from #include <stdio.h>) that
was assumed to already exist (not on v6).
- table.o for the stdio library appears to require the new as
- PWB 1.0 builds already have ncc and are straightforward, but
rely on makefiles and use syscalls that are not available on
v6
- UNSW's set provides traditional run shell scripts, but
incorporates features -- the Bourne shell colon no-op and as
with an -o flag -- that are not on v6
- everything for stdio and the new compiler apart from c1 built
cleanly using ncc with /xlib
I am still tracking down why building c1 lead to an error (_itol
undefined). I think the build is getting close. Also, I suspect
that the typesetter c distribution from AT&T differed from what
we have in terms of the build scripts and likely included
binaries with the source: it seems that at some point ncc became
necessary to build later verison of ncc.
Thanks,
Dan