newton@smoggy.gg.caltech.edu (Mike Newton) (08/31/90)
[note : please do _not_ ask me to mail these to you.... i have a thesis due
soon... . This software might be useful to other non-88k machines. -- mike ]
[This latest version is much smaller than previous versions, but needs to
have a correct C compiler. In addition, the copyright notices have been
made much more leniant]
These patches are a set of enhancements to AKCL (currently vsn 1.492), and
available as the files:
csvax.cs.caltech.edu :: ~ftp/DG/New.AKCL.1.tar
csvax.cs.caltech.edu :: ~ftp/DG/New.AKCL.2.diffs
csvax.cs.caltech.edu :: ~ftp/DG/New.AKCL.3.diffs
The patches include the following features:
The code is ported to the DG AViiON and probably most other
88k machines.
A number of portability problems have been fixed, including:
Strict ANSI C shifting
Proper 'varargs' in the MUST_COPY_VA_ARGS macro and elsewhere
MUCH better (but not perfect!) machine-independent sfasl.c code.
Other small hacks.
A file describing many porting hints.
To compile AKCL on the DG AViiON, and probably most other 88k machines, use
the 'aviion.{h,defs}' files. These depend on 'gcc' which is available from
dg-rtp.dg.com in ~ftp/pub/gnu.
You MUST use gcc-1.37.N where N >= 22 for this to work!!!
(earlier versions had hacks for various earlier versions of the compiler,
many of which had problems. gcc.1.35.22 or higher _may_ work.
Note: if using gcc-1.35.23 compile gbc.c without -O !!!
Note: if using gcc-1.37.N (N>=2) && using 4.20 or before, use
-mno-ocs-frame-position
Note: gcc-1.37.6 (and possibly others) has a bug with strength-reduction.
)
Note: do _NOT_ use DG's 'cprs' on kcl.
(cprs is broken even in 4.30)
In addition to 88k machines, the changes should be very useful on any
non-array type varargs machines. It might even speed up other processors.
sfasl.c in particular has had many improvements to make it run on more COFF
machines. I have yet to merge all the 1.492 changes into sfasl.c, so there
exists:
c/D.478.sfasl.c -- the distributed sfasl.c in 1.478 (? & 483)
c/m88k_sfasl.c -- my sfasl.c, based on above, but more general
c/D.492.sfasl.c -- 1.492 sfasl, which has some fixes similar to mine
and AIX support, but which is not as general.
PLEASE tell me of any bugs that you find!!!
Enjoy,
- mike newton
newton@vlsi.caltech.edu
----------------------------------------------------------------
Building instructions:
1: get akcl from rascal.ics.utexas.edu::~ftp/pub (or cli.com::~ftp/pub/akcl).
These patches are off of akcl-1-492, but work on other similar ones.
2: uncompress and untar it into the place you want it
3: uncompress, untar & load into the same directory the files in New.AKCL.1.tar
( zcat New.AKCL.1.tar.Z | tar xvof - )
4: run 'add-defs aviion'
5: look at the file 'Smakefile'. Run the commands up to and including
'make -f Smakefile sources' in target 'all'. Usually this will be:
xbin/relink-files KCL-DIRECTORY -s
make -f Smakefile merge
make -f Smakefile sources
6: apply the patches from New.AKCL.2.diffs . This OVERWRITES some of
the sources!!! :
cat New.AKCL.2.diffs | patch -p0
7: move the right sfasl file into place :
mv c/m88k_sfasl.c c/sfasl.c
8: [optional] If you want to use PCL, the speed hacks of Harris can be applied:
cat New.ALCL.3.diffs | patch -p0
9: run 'make -f Smakefile'
10: there is a chance (depends on NFS, release, disks, phase of the moon...)
that the very first (and only the first) execution of 'saved_kcl' will
die. This occurs when the first saved_kcl has been made and then Smakefile
goes back and recompiles all of lsp/ and cmplsp/. It shows up on the
compile of file arraylib.lsp. To fix: just type "make -f Smakefile"
again. The second time it works.....
11: enjoy.
----------------------------------------------------------------
Here are the changes/comments:
................New Files:
h/aviion.README -- comments to help 88k users (this file)
h/aviion.h --
h/aviion.defs -- defs
c/mc88k_chtab.s -- chtab
unixport/.gdbinit -- useful for debugging with gdb
doc/porting.ii -- useful comments for the next person
c/unixsave_dg.c -- major surgery, cleaner IO, lnno mapping
c/rel_m88k.c -- relocator for the 88k
c/{D.478,D.492,m88k_}sfasl.c -- versions of sfasl.c (see above)
................Old Files:
h/object.h -- nasty bug in COERCE_VA_LIST when copying is needed
h/arith.h -- careful about shifts (ANSI compliance)
c/list.d -- varargs fixes. probably faster too.
c/alloc.c -- hacks to avoid __malloc, __free, __calloc
-- and __realloc by libc.a routines
c/sfasl.c -- SIGNIFICANT portability improvements.
doc/contributors -- self-gratification:
c/read.d -- hack the code to skip to the load vector to run
correctly (.o file loading
./MACHINES -- add in aviion
File list (new):
h/aviion.h
h/aviion.defs
h/aviion.README
c/mc88k_chtab.s
c/unixsave_dg.c
c/rel_m88k.c
unixport/.gdbinit
doc/porting.ii
c/{D.478,D.492,m88k_}sfasl.c
File list (modified):
./MACHINES
h/arith.h
h/object.h
c/list.d
c/alloc.c
c/sfasl.c
c/read.d
doc/contributors