On Mon, Sep 02, 2013 at 05:51:15PM -0400, erik quanstrom wrote: > On Mon Sep 2 16:51:31 EDT 2013, robp...@gmail.com wrote: > > I'm pretty sure C defines the include path to be relative to the file > > that includes it. The compiler's working directory should be > > irrelevant. I'm also pretty sure Plan 9's compiler gets this right, or > > at least used to. So more information is required. > > that still works, otherwise the kernel would not compile. > > - erik >
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. i did a small test, and made $home/bin/rc/8c which forces the -p flag of 8c to invoke cpp. when doing ./make.rc in go with this wrapper, the include appears to be resolved correctly. fwiw, the standard does not define the mechanism for includes to be found at all, only that it is implementation-specific [1]. nick [1] http://www.iso-9899.info/n1256.html#6.10.2