<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>