<pre style='margin:0'>
Mihai Moldovan (Ionic) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/5dc4f124115020ac2813ecc9fb83a5b4d0061dc0">https://github.com/macports/macports-ports/commit/5dc4f124115020ac2813ecc9fb83a5b4d0061dc0</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 5dc4f124115020ac2813ecc9fb83a5b4d0061dc0
</span>Author: Mihai Moldovan <ionic@ionic.de>
AuthorDate: Mon Jan 25 20:36:04 2021 +0100

<span style='display:block; white-space:pre;color:#404040;'>    lang/go: add bootstrap/build debugging possibilities to old system section, but keep them disabled.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    This stuff can be REALLY useful for maintainers when debugging
</span><span style='display:block; white-space:pre;color:#404040;'>    bootstrapping/build issues, though.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    These debugging capabilities could be handy for all systems, but likely
</span><span style='display:block; white-space:pre;color:#404040;'>    not universally needed.
</span>---
 lang/go/Portfile                                   | 14 +++++++++
 lang/go/files/patch-build-show-commands.diff       | 11 ++++++++
 ...patch-go-internal-buildid-and-gc-fix-debug.diff | 33 ++++++++++++++++++++++
 3 files changed, 58 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/go/Portfile b/lang/go/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 970d7a64b11..77596343a81 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/go/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/go/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -79,10 +79,24 @@ if {${os.platform} eq "darwin" && ${os.major} <= ${legacysupport.newest_darwin_r
</span>     # that's the case, they won't need it anyway, so just patch it out.
     patchfiles-append   patch-cgo-drop-no-nullability-completeness.diff
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Fix building with the -x flag ("show all commands as they are executed"),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # useful for debugging of the bootstrapping process.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Only needed for debugging the build/bootstrapping process.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # FIXME: report this as a bug and have it or a better version of it upstreamed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #patchfiles-append   patch-go-internal-buildid-and-gc-fix-debug.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Show all commands while building packages and only build one package at a time in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # the last bootstrapping step.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Only needed for debugging the build/bootstrapping process.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #patchfiles-append   patch-build-show-commands.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     build.env-append    "GO_EXTLINK_ENABLED=1" \
                         "GO_LDFLAGS=\"-extldflags=${configure.ldflags}\"" \
                         "BOOT_GO_LDFLAGS=-extldflags=${configure.ldflags}"
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Might be useful while debugging issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #build.args          "-v=3"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     notes-append [subst {
                     go had to be specially patched and built to work on your platform.
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/go/files/patch-build-show-commands.diff b/lang/go/files/patch-build-show-commands.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..ead533dbef9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/go/files/patch-build-show-commands.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/cmd/dist/build.go.old      2021-01-24 14:30:24.000000000 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/cmd/dist/build.go  2021-01-24 14:36:48.000000000 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1404,7 +1404,7 @@ func cmdbootstrap() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           // Skip the cmd tools for js/wasm. They're not usable.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           targets = targets[:1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  goInstall(goBootstrap, targets...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  goInstall(goBootstrap, append([]string{"-p=1", "-x"}, targets...)...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   checkNotStale(goBootstrap, targets...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   checkNotStale(cmdGo, targets...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if debug {
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/go/files/patch-go-internal-buildid-and-gc-fix-debug.diff b/lang/go/files/patch-go-internal-buildid-and-gc-fix-debug.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..7cade83317f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/go/files/patch-go-internal-buildid-and-gc-fix-debug.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,33 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/cmd/go/internal/work/buildid.go.old        2021-01-25 20:27:56.000000000 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/cmd/go/internal/work/buildid.go    2021-01-25 20:28:20.000000000 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -617,7 +617,11 @@ func (b *Builder) flushOutput(a *Action)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ func (b *Builder) updateBuildID(a *Action, target string, rewrite bool) error {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if cfg.BuildX || cfg.BuildN {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if rewrite {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  b.Showcmd("", "%s # internal", joinUnambiguously(str.StringList(base.Tool("buildid"), "-w", target)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  if strings.Contains(os.Args[0], "go_bootstrap") {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          b.Showcmd("", "%s # internal", joinUnambiguously(str.StringList(base.Tool("go_bootstrap"), "tool", "buildid", "-w", target)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          b.Showcmd("", "%s # internal", joinUnambiguously(str.StringList(base.Tool("buildid"), "-w", target)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if cfg.BuildN {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   return nil
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/cmd/go/internal/work/gc.go.old     2021-01-25 20:27:56.000000000 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/cmd/go/internal/work/gc.go 2021-01-25 20:28:20.000000000 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -365,7 +365,14 @@ func (gcToolchain) pack(b *Builder, a *A
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   p := a.Package
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if cfg.BuildN || cfg.BuildX {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          cmdline := str.StringList(base.Tool("pack"), "r", absAfile, absOfiles)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cmdline := str.StringList("r", absAfile, absOfiles)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          var toolPath []string
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if strings.Contains(os.Args[0], "go_bootstrap") {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  toolPath = str.StringList(base.Tool("go_bootstrap"), "tool", "pack")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  toolPath = str.StringList(base.Tool("pack"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cmdline = append(toolPath, cmdline...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           b.Showcmd(p.Dir, "%s # internal", joinUnambiguously(cmdline))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if cfg.BuildN {
</span></pre><pre style='margin:0'>

</pre>