]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/cmd/dist/build.c
[dev.garbage] all: merge default (f38460037b72) into dev.garbage
[gostls13.git] / src / cmd / dist / build.c
index d638ae4ebedb407714307f3b5f4bc04225f7b42d..9c81dd8b22443f643a23fb873968af3dfe5dfdb4 100644 (file)
@@ -39,7 +39,7 @@ static void dopack(char*, char*, char**, int);
 static char *findgoversion(void);
 
 // The known architecture letters.
-static char *gochars = "5668";
+static char *gochars = "566899";
 
 // The known architectures.
 static char *okgoarch[] = {
@@ -48,6 +48,8 @@ static char *okgoarch[] = {
        "amd64",
        "amd64p32",
        "386",
+       "power64",
+       "power64le",
 };
 
 // The known operating systems.
@@ -344,6 +346,7 @@ static char *oldtool[] = {
        "5a", "5c", "5g", "5l",
        "6a", "6c", "6g", "6l",
        "8a", "8c", "8g", "8l",
+       "9a", "9c", "9g", "9l",
        "6cov",
        "6nm",
        "6prof",
@@ -521,6 +524,7 @@ static struct {
                "anames5.c",
                "anames6.c",
                "anames8.c",
+               "anames9.c",
        }},
        {"cmd/cc", {
                "-pgen.c",
@@ -549,6 +553,11 @@ static struct {
                "../cc/pswt.c",
                "$GOROOT/pkg/obj/$GOHOSTOS_$GOHOSTARCH/libcc.a",
        }},
+       {"cmd/9c", {
+               "../cc/pgen.c",
+               "../cc/pswt.c",
+               "$GOROOT/pkg/obj/$GOHOSTOS_$GOHOSTARCH/libcc.a",
+       }},
        {"cmd/5g", {
                "../gc/cplx.c",
                "../gc/pgen.c",
@@ -573,6 +582,14 @@ static struct {
                "../gc/popt.h",
                "$GOROOT/pkg/obj/$GOHOSTOS_$GOHOSTARCH/libgc.a",
        }},
+       {"cmd/9g", {
+               "../gc/cplx.c",
+               "../gc/pgen.c",
+               "../gc/plive.c",
+               "../gc/popt.c",
+               "../gc/popt.h",
+               "$GOROOT/pkg/obj/$GOHOSTOS_$GOHOSTARCH/libgc.a",
+       }},
        {"cmd/5l", {
                "../ld/*",
        }},
@@ -582,6 +599,9 @@ static struct {
        {"cmd/8l", {
                "../ld/*",
        }},
+       {"cmd/9l", {
+               "../ld/*",
+       }},
        {"cmd/go", {
                "zdefaultcc.go",
        }},
@@ -618,6 +638,7 @@ static struct {
        {"anames5.c", mkanames},
        {"anames6.c", mkanames},
        {"anames8.c", mkanames},
+       {"anames9.c", mkanames},
        {"zasm_", mkzasm},
        {"zdefaultcc.go", mkzdefaultcc},
        {"zsys_", mkzsys},
@@ -1156,12 +1177,26 @@ shouldbuild(char *file, char *dir)
        
        // Check file name for GOOS or GOARCH.
        name = lastelem(file);
-       for(i=0; i<nelem(okgoos); i++)
-               if(contains(name, okgoos[i]) && !streq(okgoos[i], goos))
+       for(i=0; i<nelem(okgoos); i++) {
+               if(streq(okgoos[i], goos))
+                       continue;
+               p = xstrstr(name, okgoos[i]);
+               if(p == nil)
+                       continue;
+               p += xstrlen(okgoos[i]);
+               if(*p == '.' || *p == '_' || *p == '\0')
                        return 0;
-       for(i=0; i<nelem(okgoarch); i++)
-               if(contains(name, okgoarch[i]) && !streq(okgoarch[i], goarch))
+       }
+       for(i=0; i<nelem(okgoarch); i++) {
+               if(streq(okgoarch[i], goarch))
+                       continue;
+               p = xstrstr(name, okgoarch[i]);
+               if(p == nil)
+                       continue;
+               p += xstrlen(okgoarch[i]);
+               if(*p == '.' || *p == '_' || *p == '\0')
                        return 0;
+       }
 
        // Omit test files.
        if(contains(name, "_test"))
@@ -1358,6 +1393,10 @@ static char *cleantab[] = {
        "cmd/8c",
        "cmd/8g",
        "cmd/8l",
+       "cmd/9a",
+       "cmd/9c",
+       "cmd/9g",
+       "cmd/9l",
        "cmd/cc",
        "cmd/gc",
        "cmd/go",