droms@bknlvms.BITNET (02/06/88)
I recently moved the Xinu cross-development system to Ultrix V2.2. Along the way, I found the following problems: 1) In at least one instance, the (pcc-based) c compiler, when encountering the (incorrect) boolean operator '! =' (sic) generated an error message several lines later than the line in which the error appeared. The message pointed, in fact, to the middle of a comment, causing us some difficulty in finding the error. 2) getc(FID) is not always equivalent to fgetc(FID). In {XINU}/src/cmd/cc11/cvopt, getchar() functioned incorrectly until I redefined "#define getchar() fgetc(stdin)". 3) The as11 cross-assembler uses sbrk() instead of malloc(), and uses it badly. as11 assumes that the symbol table dynamic memory allocation routine will be the only routine requesting dynamic memory, and that all such dynamic memory will be allocated contiguously. Ultrix uses dynamic, on-demand buffer allocation for its stdio routines. In as11, these are called *after* the symbol table allocation is intialized, so the symbol table and the stdio buffers overlap. 4) The cc11 cross-compiler defines a procedure const(). Under the ANSI extensions to C, "const" is a reserved word, and is flagged as an error under the (pcc) Ultrix C compiler. 5) "kill -HUP 1" (after modifying /etc/ttys) doesn't release terminal special device files. The system must be rebooted to allow odt to open the lines to the LSI 11s. - Ralph Droms Bucknell University