> the trouble here is that go's src/libmach/8obj.c has '#include
> "../cmd/8l/8.out.h"', and 8.out.h now has the newly added '#include
> "../ld/textflag.h"'.
> 
> i see now that the kernel source has an instance of this, in
> /sys/src/9/pc: 'fns.h:1: #include "../port/portfns.h"', but i'm not sure
> how that is treated differently from this situation.

it is different because -I../port is part of CFLAGS.

i've just verified that the plan 9 c compilers interpret relative
paths relative to the original source file, not any included files,
but -p interprets relative to the file doing the including.
imo the compilers should be fixed, but it might require a few
fixes.  the easiest (smallest delta) solution would be for
8.out.h to include "../../cmd/ld/textflag.h" instead of "../ld/textflag.h".

i suppose this is just another reason not to include include files. ☺

- erik

Reply via email to