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