On Mon, Jan 31, 2011 at 04:07:43PM -0800, Simon J. Gerraty wrote: > I didn't follow the conversation, how is this patch relevant to BUILDID?
Some of the redefinition magic involved with BUILDID results in .PARSEDIR as ".", not a full path. This only happens if none of the usual MAKEOBJDIR* variables is present in the environment. > >Index: src/usr.bin/make/parse.c > >=================================================================== > >--- src/usr.bin/make/parse.c > >+++ src/usr.bin/make/parse.c > >@@ -2206,11 +2206,12 @@ > > char *dirname; > > int len; > > > > slash = strrchr(filename, '/'); > > if (slash == NULL) { > >- Var_Set(".PARSEDIR", ".", VAR_GLOBAL, 0); > >+ extern char curdir[]; > > I thought scoped externs like this were frowned on? I would make it a normal declaration if it is decided that this is the right fix :) Joerg > > >+ Var_Set(".PARSEDIR", curdir, VAR_GLOBAL, 0); > > Var_Set(".PARSEFILE", filename, VAR_GLOBAL, 0);