From 26b2724b4335a5e3038fec508e65a8d9c2f5792a Mon Sep 17 00:00:00 2001 From: Amy Fong Date: Mon, 27 Jul 2015 14:14:16 -0400 Subject: golang: use oe-meta-go From b101a0c7ce6ef1eb41bef786831e58fa4d1b069f Mon Sep 17 00:00:00 2001 From: Amy Fong Date: Mon, 27 Jul 2015 14:10:20 -0400 Subject: [PATCH] golang: use oe-meta-go Update meta-virtualization to use go package from oe-meta-go. The package golang-cross is go-cross in the oe-meta-go. Signed-off-by: Amy Fong Signed-off-by: Bruce Ashfield --- recipes-devtools/go/files/ccache.patch | 147 --------------------------------- 1 file changed, 147 deletions(-) delete mode 100644 recipes-devtools/go/files/ccache.patch (limited to 'recipes-devtools/go/files/ccache.patch') diff --git a/recipes-devtools/go/files/ccache.patch b/recipes-devtools/go/files/ccache.patch deleted file mode 100644 index b7a64bf7..00000000 --- a/recipes-devtools/go/files/ccache.patch +++ /dev/null @@ -1,147 +0,0 @@ -golang doesn't work with ccache. In the current state, a lot of parsing -happens where it'll grab the first string in CC or LD and uses that for -its builds. When ccache is enabled, it results in trying to do builds -with just ccache. - -The brokeness is seen when building with apps that uses cgo, like docker. -To enable ccache to work, some string comparisons and changes to parsing -had to be made. - -Signed-off-by: Amy Fong - -Index: go/src/cmd/cgo/gcc.go -=================================================================== ---- go.orig/src/cmd/cgo/gcc.go 2014-06-18 17:26:26.000000000 -0700 -+++ go/src/cmd/cgo/gcc.go 2015-06-18 13:19:08.908877160 -0700 -@@ -712,6 +712,12 @@ - func (p *Package) gccBaseCmd() []string { - // Use $CC if set, since that's what the build uses. - if ret := strings.Fields(os.Getenv("CC")); len(ret) > 0 { -+ if strings.Contains(ret[0], "ccache") { -+ base_cc := ret[0] + " " + ret[1] -+ os.Setenv("CCACHE_CC", ret[1]) -+ ret[1] = base_cc -+ return ret[1:] -+ } - return ret - } - // Try $GCC if set, since that's what we used to use. -Index: go/src/pkg/os/exec/lp_unix.go -=================================================================== ---- go.orig/src/pkg/os/exec/lp_unix.go 2014-06-18 17:26:25.000000000 -0700 -+++ go/src/pkg/os/exec/lp_unix.go 2015-06-18 13:19:29.464876331 -0700 -@@ -35,8 +35,14 @@ - // (only bypass the path if file begins with / or ./ or ../) - // but that would not match all the Unix shells. - -- if strings.Contains(file, "/") { -- err := findExecutable(file) -+ tmp := file -+ if strings.Contains(file, " ") { -+ exec_part := strings.Split(file, " ")[0] -+ tmp = exec_part -+ } -+ -+ if strings.Contains(tmp, "/") { -+ err := findExecutable(tmp) - if err == nil { - return file, nil - } -@@ -51,7 +57,7 @@ - // Unix shell semantics: path element "" means "." - dir = "." - } -- path := dir + "/" + file -+ path := dir + "/" + tmp - if err := findExecutable(path); err == nil { - return path, nil - } -Index: go/src/cmd/go/build.go -=================================================================== ---- go.orig/src/cmd/go/build.go 2014-06-18 17:26:26.000000000 -0700 -+++ go/src/cmd/go/build.go 2015-06-18 13:20:08.724874749 -0700 -@@ -2005,8 +2005,15 @@ - // strings returned are "gcc", "-I", objdir (and cuts them off). - - compiler := envList(envvar, defcmd) -- a := []string{compiler[0], "-I", objdir} -- a = append(a, compiler[1:]...) -+ -+ a := []string{compiler[0]} -+ if strings.Contains(compiler[0], "ccache") { -+ a = append(a, compiler[1], "-I", objdir) -+ a = append(a, compiler[2:]...) -+ } else { -+ a = append(a, "-I", objdir) -+ a = append(a, compiler[1:]...) -+ } - - // Definitely want -fPIC but on Windows gcc complains - // "-fPIC ignored for target (all code is position independent)" -Index: go/src/cmd/ld/lib.c -=================================================================== ---- go.orig/src/cmd/ld/lib.c 2014-06-18 17:26:27.000000000 -0700 -+++ go/src/cmd/ld/lib.c 2015-06-18 13:18:39.564878343 -0700 -@@ -552,7 +552,7 @@ - void - hostlink(void) - { -- char *p, **argv; -+ char *p, *q, **argv; - int c, i, w, n, argc, len; - Hostobj *h; - Biobuf *f; -@@ -577,6 +577,19 @@ - if(extld == nil) - extld = "gcc"; - argv[argc++] = extld; -+ -+ p = extldflags; -+ if (strstr(argv[0], "ccache") != NULL) { -+ while(p != nil) { -+ while(*p == ' ') -+ *p++ = '\0'; -+ if(*p == '\0') -+ break; -+ argv[argc++] = p; -+ p = strchr(p + 1, ' '); -+ break; -+ } -+ } - switch(thechar){ - case '8': - argv[argc++] = "-m32"; -@@ -629,12 +642,12 @@ - errorexit(); - } - Bseek(f, h->off, 0); -- p = smprint("%s/%06d.o", tmpdir, i); -- argv[argc++] = p; -- w = create(p, 1, 0775); -+ q = smprint("%s/%06d.o", tmpdir, i); -+ argv[argc++] = q; -+ w = create(q, 1, 0775); - if(w < 0) { - ctxt->cursym = S; -- diag("cannot create %s: %r", p); -+ diag("cannot create %s: %r", q); - errorexit(); - } - len = h->len; -@@ -646,7 +659,7 @@ - } - if(close(w) < 0) { - ctxt->cursym = S; -- diag("cannot write %s: %r", p); -+ diag("cannot write %s: %r", q); - errorexit(); - } - Bterm(f); -@@ -656,7 +669,6 @@ - for(i=0; i