[comp.os.xinu] Xinu <=> Ultrix V2.2

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