[mod.os.os9] OSK C and make bugs

daleske@cbdkc1.UUCP (08/20/86)

Here's a bug I found in the 2.0 C compiler:  If the address of a 
routine over 32k bytes away is passed to another routine as a third
argument, the address is passed incorrectly without any warning from
the linker.  The offending code is a pc relitive pea instruction,
which the -a option to l68 does not convert or give an error about.
(The linker is only documented to fix branch and lea instructions.)
I can supply an example program if there is interest.  Users of tputs
in large programs beware.

The C compiler will accept a variable named PC, but the assebler will
not asseble the code produced.  This is a problem because PC is an
external variable used by the termlib routines.

Make (1.3) does not like tabs.  Depending on where the tab is in your
makefile, it may bomb out or may just silently not compile files
needing compiled.

-- 
Bob Larson
Arpa: Blarson@Usc-Eclb.Arpa	or	blarson@usc-oberon.arpa
Uucp: (ihnp4,hplabs,tektronix)!sdcrdcf!usc-oberon!blarson