newton@cit-vax.Caltech.Edu (Mike Newton) (03/28/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 too. also, much more 88k software should be available soon -- mike] These patches, available as: csvax.caltech.edu :: ~ftp/DG/New.AKCL.1.tar and csvax.caltech.edu :: ~ftp/DG/New.AKCL.2.tar are a set of enhancements to AKCL 1-470. The features include: 1 : The code is ported to the DG AViiON and probably most other 88k machines. 2 : 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 (though not perfect!) machine-independent sfasl.c code. 3: Other small hacks. 4: 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 either gcc-1.35.N where N > 22 or gcc-1.37.N where N >= 2 for this to 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: do _not_ use DG's 'cprs' on kcl. 'cprs' is broken. (AViiON version of gcc up to 1.35.22 had a bug, such that for multiple va_start's in one procedure, the first in a different block than the second, will produce bad code. 1.36 versions had several other bugs.) 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. 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 2: uncompress and untar it into the place you want it 3: uncompress, untar and load into the same directory the files in New.AKCL.1.tar 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: load the files from New.AKCL.2.tar. This will OVERWRITE some of the sources!!!! 7: run 'make -f Smakefile' 8: 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..... 9: enjoy. ---------------------------------------------------------------- Here are the changes/comments: ................New Files: h/aviion.h h/aviion.defs -- defs/h files h/aviion.README -- comments to help 88k users 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 ................Old Files: (the following files were created by first untar-ing the above files, then doing a 'add-defs aviion' and a make up until the 'make sources', and then replacing...) 2. ANSI shift compat: h/arith.h -- careful about shifts 3. Varargs usage expecting an array of values (only called from compiled code): c/list.d -- varargs fixes. probably faster too. h/object.h -- macro parameter match causes "ap = ap;" to be gen'd. 4. AViiON / 88k BCS routines: c/unixfsys.c -- avoid sbrk()/brk()/malloc() - a very -- portable version of getcwd c/alloc.c -- hacks to avoid __malloc, __free, __calloc -- and __realloc by libc.a routines c/sfasl.c -- SIGNIFICANT portability improvements. 5. self-gratification: doc/contributors 6: .o file loading: c/read.d -- hack the code to skip to the load vector to run correctly 7. Other: a: there two identical copies of V/makefile in the 313, 457 and 465 tars on rascal. This produces error messages when un-tar-ing. File list (new): h/aviion.h h/aviion.defs h/aviion.README c/mc88k_chtab.s unixport/.gdbinit doc/porting.ii c/unixsave_dg.c c/rel_m88k.c File list (modified): h/arith.h c/list.d h/object.h c/unixfsys.c c/alloc.c c/sfasl.c c/read.d doc/contributors -- newton@csvax.caltech.edu Beach Bums Anonymous, Pasadena President Caltech 256-80 (Hilo -- it's not just another rainy day!) Pasadena CA 91125 Life's a beach. Then you graduate. -- newton@csvax.caltech.edu Beach Bums Anonymous, Pasadena President Caltech 256-80 (Hilo -- it's not just another rainy day!) Pasadena CA 91125 Life's a beach. Then you graduate.