4.4BSD/usr/src/contrib/gcc-2.3.3/README.ENCAP

1/3/89 Pace Willisson

Here is what to do to bring up GCC & tools on an 80386 running system 5.3
(if you are adventurous and want to use the latest and greatest tools.
If you want it to be easy, check back in a couple of months.)

All of these instructions assume you are using the usg compiler.  After
you get to the end, you could start over using the GNU compiler, but 
that may not work yet ...

First make gcc, cc1, cpp, and gnulib:

	cd .../gcc
	config.gcc i386-sysv-gas
	make start.encap

Don't try to bootstrap the compiler with itself at this point,
since it can't really be used until GAS and the converted libraries
are installed.

Now you must copy `cc1' and `cpp' and `gnulib' into the directory
`/usr/local/lib/gcc-lib/i386-sysv-gas/VERSION', where VERSION stands for
the GCC version number.  Also install `gcc' in a directory in your
path.

Now, make the GNU assembler:

	cd .../gas
	make a386
	cp a386 /usr/local/lib/gcc-lib/i386-sysv-gas/VERSION

Now, make the other utilities:

	cd .../binutils

edit Makefile to turn on the CFLAGS for USG using COFF_ENCAPSULATE

	make
	cp ld /usr/local/lib/gcc-lib/i386-sysv-gas/VERSION

Put the other programs (size nm strip ar objdump and ranlib) somewhere
handy, but don't clobber your usg programs.  I put them all in
/usr/gnu/gnucomp, and I have this shell script in my path under the name "gnu":

	exec /usr/gnu/gnucomp/$*

That way, I can say "gnu nm a.out", etc.

Convert the libraries to the encapsulated format:

	make libc.a
	cp libc.a /usr/local/lib/gnu/libc.a

	cp .../gcc/gnulib usg-gnulib
	make gnulib
	cp gnulib /usr/local/lib/gcc-lib/i386-sysv-gas/VERSION

	robotussin /lib/crt0.o /usr/local/lib/gcc-crt0.o

Now add the parts of `gnulib' that are compiled with GCC, 
and install the complete `gnulib' in place of the partial one.

	cp gnulib .../gcc
	cd .../gcc
	make rest.encap
	cp gnulib /usr/local/lib/gcc-lib/i386-sysv-gas/VERSION

Now, you should be able to use 'gcc' to compile programs.
If you want to bootstrap GCC with itself, this can now be done.