mirror of
https://github.com/golang/go
synced 2024-11-15 10:50:37 -07:00
[release-branch.go1] 5c, 6c, 8c: take GOROOT_FINAL into consideration
««« backport 016c4fefed77 5c, 6c, 8c: take GOROOT_FINAL into consideration R=golang-dev, rsc CC=golang-dev https://golang.org/cl/5936050 »»»
This commit is contained in:
parent
cb71577d10
commit
2898687794
@ -472,12 +472,38 @@ outhist(Biobuf *b)
|
|||||||
char *p, *q, *op, c;
|
char *p, *q, *op, c;
|
||||||
Prog pg;
|
Prog pg;
|
||||||
int n;
|
int n;
|
||||||
|
char *tofree;
|
||||||
|
static int first = 1;
|
||||||
|
static char *goroot, *goroot_final;
|
||||||
|
|
||||||
|
if(first) {
|
||||||
|
// Decide whether we need to rewrite paths from $GOROOT to $GOROOT_FINAL.
|
||||||
|
first = 0;
|
||||||
|
goroot = getenv("GOROOT");
|
||||||
|
goroot_final = getenv("GOROOT_FINAL");
|
||||||
|
if(goroot == nil)
|
||||||
|
goroot = "";
|
||||||
|
if(goroot_final == nil)
|
||||||
|
goroot_final = goroot;
|
||||||
|
if(strcmp(goroot, goroot_final) == 0) {
|
||||||
|
goroot = nil;
|
||||||
|
goroot_final = nil;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tofree = nil;
|
||||||
pg = zprog;
|
pg = zprog;
|
||||||
pg.as = AHISTORY;
|
pg.as = AHISTORY;
|
||||||
c = pathchar();
|
c = pathchar();
|
||||||
for(h = hist; h != H; h = h->link) {
|
for(h = hist; h != H; h = h->link) {
|
||||||
p = h->name;
|
p = h->name;
|
||||||
|
if(p != nil && goroot != nil) {
|
||||||
|
n = strlen(goroot);
|
||||||
|
if(strncmp(p, goroot, strlen(goroot)) == 0 && p[n] == '/') {
|
||||||
|
tofree = smprint("%s%s", goroot_final, p+n);
|
||||||
|
p = tofree;
|
||||||
|
}
|
||||||
|
}
|
||||||
op = 0;
|
op = 0;
|
||||||
if(systemtype(Windows) && p && p[1] == ':'){
|
if(systemtype(Windows) && p && p[1] == ':'){
|
||||||
c = p[2];
|
c = p[2];
|
||||||
@ -525,6 +551,11 @@ outhist(Biobuf *b)
|
|||||||
pg.to.type = D_CONST;
|
pg.to.type = D_CONST;
|
||||||
|
|
||||||
zwrite(b, &pg, 0, 0);
|
zwrite(b, &pg, 0, 0);
|
||||||
|
|
||||||
|
if(tofree) {
|
||||||
|
free(tofree);
|
||||||
|
tofree = nil;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -339,12 +339,38 @@ outhist(Biobuf *b)
|
|||||||
char *p, *q, *op, c;
|
char *p, *q, *op, c;
|
||||||
Prog pg;
|
Prog pg;
|
||||||
int n;
|
int n;
|
||||||
|
char *tofree;
|
||||||
|
static int first = 1;
|
||||||
|
static char *goroot, *goroot_final;
|
||||||
|
|
||||||
|
if(first) {
|
||||||
|
// Decide whether we need to rewrite paths from $GOROOT to $GOROOT_FINAL.
|
||||||
|
first = 0;
|
||||||
|
goroot = getenv("GOROOT");
|
||||||
|
goroot_final = getenv("GOROOT_FINAL");
|
||||||
|
if(goroot == nil)
|
||||||
|
goroot = "";
|
||||||
|
if(goroot_final == nil)
|
||||||
|
goroot_final = goroot;
|
||||||
|
if(strcmp(goroot, goroot_final) == 0) {
|
||||||
|
goroot = nil;
|
||||||
|
goroot_final = nil;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tofree = nil;
|
||||||
pg = zprog;
|
pg = zprog;
|
||||||
pg.as = AHISTORY;
|
pg.as = AHISTORY;
|
||||||
c = pathchar();
|
c = pathchar();
|
||||||
for(h = hist; h != H; h = h->link) {
|
for(h = hist; h != H; h = h->link) {
|
||||||
p = h->name;
|
p = h->name;
|
||||||
|
if(p != nil && goroot != nil) {
|
||||||
|
n = strlen(goroot);
|
||||||
|
if(strncmp(p, goroot, strlen(goroot)) == 0 && p[n] == '/') {
|
||||||
|
tofree = smprint("%s%s", goroot_final, p+n);
|
||||||
|
p = tofree;
|
||||||
|
}
|
||||||
|
}
|
||||||
op = 0;
|
op = 0;
|
||||||
if(systemtype(Windows) && p && p[1] == ':'){
|
if(systemtype(Windows) && p && p[1] == ':'){
|
||||||
c = p[2];
|
c = p[2];
|
||||||
@ -400,6 +426,11 @@ outhist(Biobuf *b)
|
|||||||
Bputc(b, pg.lineno>>24);
|
Bputc(b, pg.lineno>>24);
|
||||||
zaddr(b, &pg.from, 0);
|
zaddr(b, &pg.from, 0);
|
||||||
zaddr(b, &pg.to, 0);
|
zaddr(b, &pg.to, 0);
|
||||||
|
|
||||||
|
if(tofree) {
|
||||||
|
free(tofree);
|
||||||
|
tofree = nil;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -343,12 +343,38 @@ outhist(Biobuf *b)
|
|||||||
char *p, *q, *op, c;
|
char *p, *q, *op, c;
|
||||||
Prog pg;
|
Prog pg;
|
||||||
int n;
|
int n;
|
||||||
|
char *tofree;
|
||||||
|
static int first = 1;
|
||||||
|
static char *goroot, *goroot_final;
|
||||||
|
|
||||||
|
if(first) {
|
||||||
|
// Decide whether we need to rewrite paths from $GOROOT to $GOROOT_FINAL.
|
||||||
|
first = 0;
|
||||||
|
goroot = getenv("GOROOT");
|
||||||
|
goroot_final = getenv("GOROOT_FINAL");
|
||||||
|
if(goroot == nil)
|
||||||
|
goroot = "";
|
||||||
|
if(goroot_final == nil)
|
||||||
|
goroot_final = goroot;
|
||||||
|
if(strcmp(goroot, goroot_final) == 0) {
|
||||||
|
goroot = nil;
|
||||||
|
goroot_final = nil;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tofree = nil;
|
||||||
pg = zprog;
|
pg = zprog;
|
||||||
pg.as = AHISTORY;
|
pg.as = AHISTORY;
|
||||||
c = pathchar();
|
c = pathchar();
|
||||||
for(h = hist; h != H; h = h->link) {
|
for(h = hist; h != H; h = h->link) {
|
||||||
p = h->name;
|
p = h->name;
|
||||||
|
if(p != nil && goroot != nil) {
|
||||||
|
n = strlen(goroot);
|
||||||
|
if(strncmp(p, goroot, strlen(goroot)) == 0 && p[n] == '/') {
|
||||||
|
tofree = smprint("%s%s", goroot_final, p+n);
|
||||||
|
p = tofree;
|
||||||
|
}
|
||||||
|
}
|
||||||
op = 0;
|
op = 0;
|
||||||
if(systemtype(Windows) && p && p[1] == ':'){
|
if(systemtype(Windows) && p && p[1] == ':'){
|
||||||
c = p[2];
|
c = p[2];
|
||||||
@ -404,6 +430,11 @@ outhist(Biobuf *b)
|
|||||||
Bputc(b, pg.lineno>>24);
|
Bputc(b, pg.lineno>>24);
|
||||||
zaddr(b, &pg.from, 0);
|
zaddr(b, &pg.from, 0);
|
||||||
zaddr(b, &pg.to, 0);
|
zaddr(b, &pg.to, 0);
|
||||||
|
|
||||||
|
if(tofree) {
|
||||||
|
free(tofree);
|
||||||
|
tofree = nil;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user