From: Ken Thompson Date: Thu, 26 Jun 2008 03:22:10 +0000 (-0700) Subject: autolib (#pragma lib) X-Git-Tag: weekly.2009-11-06~3623 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=e90ae879d6b9b1a936247f6905a4bce322c3b47b;p=gostls13.git autolib (#pragma lib) added to 6g to autoload the included import files. SVN=124759 --- diff --git a/src/cmd/6g/gen.c b/src/cmd/6g/gen.c index 4faca96c58..9ec6fe0e14 100644 --- a/src/cmd/6g/gen.c +++ b/src/cmd/6g/gen.c @@ -28,7 +28,6 @@ compile(Node *fn) return; lno = dynlineno; - curfn = fn; dynlineno = curfn->lineno; // for diagnostics dowidth(curfn->type); diff --git a/src/cmd/gc/lex.c b/src/cmd/gc/lex.c index ca7d3a09ef..74dbb1deb7 100644 --- a/src/cmd/gc/lex.c +++ b/src/cmd/gc/lex.c @@ -118,7 +118,8 @@ importfile(Val *f) yyerror("import statement not a string"); return; } - // BOTCH need to get .8 from backend + + // BOTCH need to get .6 from backend snprint(namebuf, sizeof(namebuf), "%Z.6", f->sval); file = strdup(namebuf); linehist(file, 0); @@ -126,6 +127,7 @@ importfile(Val *f) imp = Bopen(file, OREAD); if(imp == nil) fatal("cant open import: %s", namebuf); + linehist(file, -1); // acts as #pragma lib /* * position the input right diff --git a/src/cmd/gc/subr.c b/src/cmd/gc/subr.c index 5c8224bdc4..aed40b5956 100644 --- a/src/cmd/gc/subr.c +++ b/src/cmd/gc/subr.c @@ -64,13 +64,23 @@ void linehist(char *file, long off) { Hist *h; + char *cp; if(debug['i']) - if(file != nil) - print("%L: import %s\n", file); - else + if(file != nil) { + if(off < 0) + print("%L: pragma %s\n", file); + else + print("%L: import %s\n", file); + } else print("%L: \n"); + if(off < 0 && file[0] != '/') { + cp = mal(strlen(file) + strlen(pathname) + 2); + sprint(cp, "%s/%s", pathname, file); + file = cp; + } + h = alloc(sizeof(Hist)); h->name = file; h->line = lineno;