Temporary patch until oe-core picks up the patch upstream.

https://lists.openembedded.org/g/openembedded-core/message/173973

Signed-off-by: Ryan Eatmon <[email protected]>
---
 .../go/go-cross-canadian_%.bbappend           |   3 +
 .../recipes-devtools/go/go-cross_%.bbappend   |   3 +
 .../go/go-crosssdk_%.bbappend                 |   3 +
 .../recipes-devtools/go/go-native_%.bbappend  |   3 +
 .../recipes-devtools/go/go-patch.inc          |   6 +
 .../recipes-devtools/go/go-runtime_%.bbappend |   3 +
 .../go/go/0001-panic-fix.patch                | 175 ++++++++++++++++++
 .../recipes-devtools/go/go_%.bbappend         |   3 +
 8 files changed, 199 insertions(+)
 create mode 100644 
meta-arago-distro/recipes-devtools/go/go-cross-canadian_%.bbappend
 create mode 100644 meta-arago-distro/recipes-devtools/go/go-cross_%.bbappend
 create mode 100644 meta-arago-distro/recipes-devtools/go/go-crosssdk_%.bbappend
 create mode 100644 meta-arago-distro/recipes-devtools/go/go-native_%.bbappend
 create mode 100644 meta-arago-distro/recipes-devtools/go/go-patch.inc
 create mode 100644 meta-arago-distro/recipes-devtools/go/go-runtime_%.bbappend
 create mode 100644 
meta-arago-distro/recipes-devtools/go/go/0001-panic-fix.patch
 create mode 100644 meta-arago-distro/recipes-devtools/go/go_%.bbappend

diff --git a/meta-arago-distro/recipes-devtools/go/go-cross-canadian_%.bbappend 
b/meta-arago-distro/recipes-devtools/go/go-cross-canadian_%.bbappend
new file mode 100644
index 00000000..56e50fcc
--- /dev/null
+++ b/meta-arago-distro/recipes-devtools/go/go-cross-canadian_%.bbappend
@@ -0,0 +1,3 @@
+
+require go-patch.inc
+
diff --git a/meta-arago-distro/recipes-devtools/go/go-cross_%.bbappend 
b/meta-arago-distro/recipes-devtools/go/go-cross_%.bbappend
new file mode 100644
index 00000000..56e50fcc
--- /dev/null
+++ b/meta-arago-distro/recipes-devtools/go/go-cross_%.bbappend
@@ -0,0 +1,3 @@
+
+require go-patch.inc
+
diff --git a/meta-arago-distro/recipes-devtools/go/go-crosssdk_%.bbappend 
b/meta-arago-distro/recipes-devtools/go/go-crosssdk_%.bbappend
new file mode 100644
index 00000000..56e50fcc
--- /dev/null
+++ b/meta-arago-distro/recipes-devtools/go/go-crosssdk_%.bbappend
@@ -0,0 +1,3 @@
+
+require go-patch.inc
+
diff --git a/meta-arago-distro/recipes-devtools/go/go-native_%.bbappend 
b/meta-arago-distro/recipes-devtools/go/go-native_%.bbappend
new file mode 100644
index 00000000..56e50fcc
--- /dev/null
+++ b/meta-arago-distro/recipes-devtools/go/go-native_%.bbappend
@@ -0,0 +1,3 @@
+
+require go-patch.inc
+
diff --git a/meta-arago-distro/recipes-devtools/go/go-patch.inc 
b/meta-arago-distro/recipes-devtools/go/go-patch.inc
new file mode 100644
index 00000000..402759bf
--- /dev/null
+++ b/meta-arago-distro/recipes-devtools/go/go-patch.inc
@@ -0,0 +1,6 @@
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/go:"
+
+SRC_URI:remove = 
"file://0001-cmd-go-make-content-based-hash-generation-less-pedan.patch"
+SRC_URI:append = "file://0001-panic-fix.patch"
+
diff --git a/meta-arago-distro/recipes-devtools/go/go-runtime_%.bbappend 
b/meta-arago-distro/recipes-devtools/go/go-runtime_%.bbappend
new file mode 100644
index 00000000..56e50fcc
--- /dev/null
+++ b/meta-arago-distro/recipes-devtools/go/go-runtime_%.bbappend
@@ -0,0 +1,3 @@
+
+require go-patch.inc
+
diff --git a/meta-arago-distro/recipes-devtools/go/go/0001-panic-fix.patch 
b/meta-arago-distro/recipes-devtools/go/go/0001-panic-fix.patch
new file mode 100644
index 00000000..b9b4a2e9
--- /dev/null
+++ b/meta-arago-distro/recipes-devtools/go/go/0001-panic-fix.patch
@@ -0,0 +1,175 @@
+
+Temporary patch until oe-core picks up the patch.
+
+https://lists.openembedded.org/g/openembedded-core/message/173973
+
+Upstream-Status: Pending
+
+
+
+
+From fb22e586871cc6be0b7041e86d2daceee06ea568 Mon Sep 17 00:00:00 2001
+From: Khem Raj <[email protected]>
+Date: Mon, 28 Mar 2022 10:59:03 -0700
+Subject: [PATCH] cmd/go: make content-based hash generation less pedantic
+
+Go 1.10's build tool now uses content-based hashes to
+determine when something should be built or re-built.
+This same mechanism is used to maintain a built-artifact
+cache for speeding up builds.
+
+However, the hashes it generates include information that
+doesn't work well with OE, nor with using a shared runtime
+library.
+
+First, it embeds path names to source files, unless
+building within GOROOT.  This prevents the building
+of a package in GOPATH for later staging into GOROOT.
+
+This patch adds support for the environment variable
+GOPATH_OMIT_IN_ACTIONID.  If present, path name
+embedding is disabled.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Alex Kube <[email protected]>
+Signed-off-by: Matt Madison <[email protected]>
+Signed-off-by: Khem Raj <[email protected]>
+
+---
+ src/cmd/go/internal/envcmd/env.go |  2 +-
+ src/cmd/go/internal/work/exec.go  | 42 ++++++++++++++++++++++++-------
+ 2 files changed, 34 insertions(+), 10 deletions(-)
+
+diff --git a/src/cmd/go/internal/envcmd/env.go 
b/src/cmd/go/internal/envcmd/env.go
+index 81ee859..2db3898 100644
+--- a/src/cmd/go/internal/envcmd/env.go
++++ b/src/cmd/go/internal/envcmd/env.go
+@@ -176,7 +176,7 @@ func ExtraEnvVars() []cfg.EnvVar {
+ func ExtraEnvVarsCostly() []cfg.EnvVar {
+       b := work.NewBuilder("")
+ 
+-      cppflags, cflags, cxxflags, fflags, ldflags, err := 
b.CFlags(&load.Package{})
++      cppflags, cflags, cxxflags, fflags, ldflags, err := 
b.CFlags(&load.Package{}, false)
+       if err != nil {
+               // Should not happen - b.CFlags was given an empty package.
+               fmt.Fprintf(os.Stderr, "go: invalid cflags: %v\n", err)
+diff --git a/src/cmd/go/internal/work/exec.go 
b/src/cmd/go/internal/work/exec.go
+index c88b315..a06455c 100644
+--- a/src/cmd/go/internal/work/exec.go
++++ b/src/cmd/go/internal/work/exec.go
+@@ -213,6 +213,8 @@ func (b *Builder) Do(ctx context.Context, root *Action) {
+       writeActionGraph()
+ }
+ 
++var omitGopath = os.Getenv("GOPATH_OMIT_IN_ACTIONID") != ""
++
+ // buildActionID computes the action ID for a build action.
+ func (b *Builder) buildActionID(a *Action) cache.ActionID {
+       p := a.Package
+@@ -234,7 +236,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
+               if p.Module != nil {
+                       fmt.Fprintf(h, "module %s@%s\n", p.Module.Path, 
p.Module.Version)
+               }
+-      } else if p.Goroot {
++      } else if p.Goroot || omitGopath {
+               // The Go compiler always hides the exact value of $GOROOT
+               // when building things in GOROOT.
+               //
+@@ -266,9 +268,9 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
+       }
+       if len(p.CgoFiles)+len(p.SwigFiles)+len(p.SwigCXXFiles) > 0 {
+               fmt.Fprintf(h, "cgo %q\n", b.toolID("cgo"))
+-              cppflags, cflags, cxxflags, fflags, ldflags, _ := b.CFlags(p)
++              cppflags, cflags, cxxflags, fflags, ldflags, _ := b.CFlags(p, 
true)
+ 
+-              ccExe := b.ccExe()
++              ccExe := filterCompilerFlags(b.ccExe(), true)
+               fmt.Fprintf(h, "CC=%q %q %q %q\n", ccExe, cppflags, cflags, 
ldflags)
+               // Include the C compiler tool ID so that if the C
+               // compiler changes we rebuild the package.
+@@ -281,14 +283,14 @@ func (b *Builder) buildActionID(a *Action) 
cache.ActionID {
+                       }
+               }
+               if len(p.CXXFiles)+len(p.SwigCXXFiles) > 0 {
+-                      cxxExe := b.cxxExe()
++                      cxxExe := filterCompilerFlags(b.cxxExe(), true)
+                       fmt.Fprintf(h, "CXX=%q %q\n", cxxExe, cxxflags)
+                       if cxxID, err := b.gccToolID(cxxExe[0], "c++"); err == 
nil {
+                               fmt.Fprintf(h, "CXX ID=%q\n", cxxID)
+                       }
+               }
+               if len(p.FFiles) > 0 {
+-                      fcExe := b.fcExe()
++                      fcExe := filterCompilerFlags(b.fcExe(), true)
+                       fmt.Fprintf(h, "FC=%q %q\n", fcExe, fflags)
+                       if fcID, err := b.gccToolID(fcExe[0], "f95"); err == 
nil {
+                               fmt.Fprintf(h, "FC ID=%q\n", fcID)
+@@ -305,7 +307,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
+               }
+       }
+       if p.Internal.BuildInfo != "" {
+-              fmt.Fprintf(h, "modinfo %q\n", p.Internal.BuildInfo)
++              //fmt.Fprintf(h, "modinfo %q\n", p.Internal.BuildInfo)
+       }
+ 
+       // Configuration specific to compiler toolchain.
+@@ -2705,8 +2707,25 @@ func envList(key, def string) []string {
+       return args
+ }
+ 
++var filterFlags = os.Getenv("CGO_PEDANTIC") == ""
++
++func filterCompilerFlags(flags []string, keepfirst bool) []string {
++      var newflags []string
++   var realkeepfirst bool = keepfirst
++      if !filterFlags {
++              return flags
++      }
++      for _, flag := range flags {
++              if strings.HasPrefix(flag, "-m") || realkeepfirst {
++                      newflags = append(newflags, flag)
++           realkeepfirst = false
++              }
++      }
++      return newflags
++}
++
+ // CFlags returns the flags to use when invoking the C, C++ or Fortran 
compilers, or cgo.
+-func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, 
fflags, ldflags []string, err error) {
++func (b *Builder) CFlags(p *load.Package, filtered bool) (cppflags, cflags, 
cxxflags, fflags, ldflags []string, err error) {
+       defaults := "-g -O2"
+ 
+       if cppflags, err = buildFlags("CPPFLAGS", "", p.CgoCPPFLAGS, 
checkCompilerFlags); err != nil {
+@@ -2724,6 +2743,13 @@ func (b *Builder) CFlags(p *load.Package) (cppflags, 
cflags, cxxflags, fflags, l
+       if ldflags, err = buildFlags("LDFLAGS", defaults, p.CgoLDFLAGS, 
checkLinkerFlags); err != nil {
+               return
+       }
++      if filtered {
++              cppflags = filterCompilerFlags(cppflags, false)
++              cflags = filterCompilerFlags(cflags, false)
++              cxxflags = filterCompilerFlags(cxxflags, false)
++              fflags = filterCompilerFlags(fflags, false)
++              ldflags = filterCompilerFlags(ldflags, false)
++      }
+ 
+       return
+ }
+@@ -2739,7 +2765,7 @@ var cgoRe = lazyregexp.New(`[/\\:]`)
+ 
+ func (b *Builder) cgo(a *Action, cgoExe, objdir string, pcCFLAGS, pcLDFLAGS, 
cgofiles, gccfiles, gxxfiles, mfiles, ffiles []string) (outGo, outObj []string, 
err error) {
+       p := a.Package
+-      cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS, err := 
b.CFlags(p)
++      cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS, err := 
b.CFlags(p, false)
+       if err != nil {
+               return nil, nil, err
+       }
+@@ -3246,7 +3272,7 @@ func (b *Builder) swigIntSize(objdir string) (intsize 
string, err error) {
+ 
+ // Run SWIG on one SWIG input file.
+ func (b *Builder) swigOne(a *Action, p *load.Package, file, objdir string, 
pcCFLAGS []string, cxx bool, intgosize string) (outGo, outC string, err error) {
+-      cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _, err := b.CFlags(p)
++      cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _, err := b.CFlags(p, false)
+       if err != nil {
+               return "", "", err
+       }
diff --git a/meta-arago-distro/recipes-devtools/go/go_%.bbappend 
b/meta-arago-distro/recipes-devtools/go/go_%.bbappend
new file mode 100644
index 00000000..56e50fcc
--- /dev/null
+++ b/meta-arago-distro/recipes-devtools/go/go_%.bbappend
@@ -0,0 +1,3 @@
+
+require go-patch.inc
+
-- 
2.17.1



-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#14118): 
https://lists.yoctoproject.org/g/meta-arago/message/14118
Mute This Topic: https://lists.yoctoproject.org/mt/95350913/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-arago/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to