This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
tutorials:kcc [2014/01/28 07:05] papa created |
tutorials:kcc [2014/06/09 06:48] (current) vulcan |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== KCC C Compiler Notes ====== | ||
+ | |||
+ | **KCC** is a C language compiler for the PDP-10 written by Kok Chen and rewritten by Ken Harrenstien. | ||
+ | |||
+ | KCC can be used to compile C programs to run on under TOPS-20 on TWENEX.ORG. However, the compiler has several shortcomings you should be aware of before planning to use it on a programming or porting project: | ||
+ | |||
+ | - **K&R C**. KCC supports only the " | ||
+ | - **Missing libraries**. KCC does not include all of the standard C libraries. //(List missing libraries)// | ||
+ | - **Executable bloat**. KCC was written with the goal of porting BSD programs to the PDP-10. Therefore, although KCC generates relocatable object files of size comparable to the TOPS-20 native MACRO assembler and FORTRAN compiler, the loader links in a large BSD compatibility layer object module and produces executable files much larger than those of other programming languages. //(Are there compiler or loader options that can prevent linking of the BSD compatibility layer module?)// One approach to save file space is to delete the (bloated) .EXE file after compilation and linking. The .REL object file can be run using the EXECUTE command which will link, load and run the program. (for example @EXECUTE MYPROG.REL | ||
+ | - **Absent Unix utilities**. These exist on the very last Panda distribution of TOPS-20, but they are very large in size (bloated). | ||
+ | |||
+ | Therefore KCC is probably best used on projects porting software from a BSD environment and/or projects where the target executable file is expected to be relatively large. | ||