<pre style='margin:0'>
Chris Jones (cjones051073) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/429ed8ef04b6623a0da1806c856af821cdb6a55d">https://github.com/macports/macports-ports/commit/429ed8ef04b6623a0da1806c856af821cdb6a55d</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 429ed8ef04b golang PG: Always wrap compiler commands, to enforce MP flags and provide diagnostic output
</span>429ed8ef04b is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 429ed8ef04b6623a0da1806c856af821cdb6a55d
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Sun Apr 18 11:22:23 2021 +0100

<span style='display:block; white-space:pre;color:#404040;'>    golang PG: Always wrap compiler commands, to enforce MP flags and provide diagnostic output
</span>---
 _resources/port1.0/group/golang-1.0.tcl | 68 ++++++++++++++++++++-------------
 1 file changed, 41 insertions(+), 27 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/golang-1.0.tcl b/_resources/port1.0/group/golang-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 87251946a04..5b7b5e906d1 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/golang-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/golang-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -149,11 +149,11 @@ set gopath              ${workpath}/gopath
</span> default worksrcdir      {gopath/src/${go.package}}
 
 set go_env {GOPATH=${gopath} GOARCH=${goarch} GOOS=${goos} GOPROXY=off GO111MODULE=off \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            CC=${configure.cc} CXX=${configure.cxx} FC=${configure.fc} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            "CGO_CFLAGS=${configure.cflags} [get_canonical_archflags cc]" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            "CGO_CXXFLAGS=${configure.cxxflags} [get_canonical_archflags cxx]" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            "CGO_LDFLAGS=${configure.cflags} ${configure.ldflags} [get_canonical_archflags ld]" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            "GO_LDFLAGS=-extldflags='${configure.ldflags} [get_canonical_archflags ld]'" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            CC=${configure.cc} CXX=${configure.cxx} FC=${configure.fc} OBJC=${configure.objc} OBJCXX=${configure.objcxx} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           "CGO_CFLAGS=${configure.cflags} [get_canonical_archflags cc]" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           "CGO_CXXFLAGS=${configure.cxxflags} [get_canonical_archflags cxx]" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           "CGO_LDFLAGS=${configure.cflags} ${configure.ldflags} [get_canonical_archflags ld]" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           "GO_LDFLAGS=-extldflags='${configure.ldflags} [get_canonical_archflags ld]'" }
</span> 
 default build.cmd     {${go.bin} build}
 default build.args      ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -170,30 +170,44 @@ default configure.env ${go_env}
</span> proc go.append_env {} {
     global configure.cc configure.cxx configure.ldflags configure.cflags configure.cxxflags
     global os.major build.env workpath
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Following options make sure link options, including those for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # legacy macOS support, are correctly passed.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if { ${os.major} <= [option legacysupport.newest_darwin_requires_legacy] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Create a wrapper script around CC,CXX command to enforce use of flags required for legacy support
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Note, go annoyingly uses CC for both building and linking, and thus in order to get it to correctly
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # link to the legacy support library, the ldflags need to be added to the cc and ccx wrappers.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # To then prevent 'clang linker input unused' errors we must append -Wno-error at the end.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        post-extract {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set flags "${configure.ldflags} \$\{\@\//-static/\} -Wno-error"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            system "echo '#!/bin/bash'                                                                    >  ${workpath}/go_cc_wrap"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            system "echo 'exec ${configure.cc} ${configure.cflags} [get_canonical_archflags cc] ${flags}' >> ${workpath}/go_cc_wrap"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            system "chmod +x ${workpath}/go_cc_wrap"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            system "echo '#!/bin/bash'                                                                        >  ${workpath}/go_cxx_wrap"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            system "echo 'exec ${configure.cxx} ${configure.cxxflags} [get_canonical_archflags cxx] ${flags}' >> ${workpath}/go_cxx_wrap"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            system "chmod +x ${workpath}/go_cxx_wrap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Create a wrapper scripts around compiler commands to enforce use of MacPorts flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # and to aid use of MacPorts legacysupport library as required.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Remove '-static' from compilation options
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set flags "\$\{\@\//-static/\}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if { ${os.major} <= [option legacysupport.newest_darwin_requires_legacy] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Note, go annoyingly uses CC for both building and linking, and thus in order to get it to correctly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # link to the legacy support library, the ldflags need to be added to the cc and ccx wrappers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # To then prevent 'clang linker input unused' errors we must append -Wno-error at the end.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set flags "${configure.ldflags} ${flags} -Wno-error"
</span>         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        build.env-append     "GO_EXTLINK_ENABLED=1" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                             "BOOT_GO_LDFLAGS=-extldflags='${configure.ldflags}'" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                             "CC=${workpath}/go_cc_wrap" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                             "CXX=${workpath}/go_cxx_wrap"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.env-append ${build.env}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        test.env-append      ${build.env}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ui_debug "Set Build/Test Env ${build.env}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system "echo '#!/bin/bash'                                                                       >  ${workpath}/go_cc_wrap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system "echo 'CMD=\"${configure.cc} ${configure.cflags} [get_canonical_archflags cc] ${flags}\"' >> ${workpath}/go_cc_wrap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system "echo 'echo \${CMD} ; exec \${CMD}'                                                       >> ${workpath}/go_cc_wrap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system "chmod +x ${workpath}/go_cc_wrap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system "echo '#!/bin/bash'                                                                           >  ${workpath}/go_cxx_wrap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system "echo 'CMD=\"${configure.cxx} ${configure.cxxflags} [get_canonical_archflags cxx] ${flags}\"' >> ${workpath}/go_cxx_wrap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system "echo 'echo \${CMD} ; exec \${CMD}'                                                           >> ${workpath}/go_cxx_wrap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system "chmod +x ${workpath}/go_cxx_wrap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system "echo '#!/bin/bash'                                                                              >  ${workpath}/go_objc_wrap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system "echo 'CMD=\"${configure.objc} ${configure.objcflags} [get_canonical_archflags objc] ${flags}\"' >> ${workpath}/go_objc_wrap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system "echo 'echo \${CMD} ; exec \${CMD}'                                                              >> ${workpath}/go_objc_wrap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system "chmod +x ${workpath}/go_cc_wrap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system "echo '#!/bin/bash'                                                                                    >  ${workpath}/go_objcxx_wrap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system "echo 'CMD=\"${configure.objcxx} ${configure.objcxxflags} [get_canonical_archflags objcxx] ${flags}\"' >> ${workpath}/go_objcxx_wrap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system "echo 'echo \${CMD} ; exec \${CMD}'                                                                    >> ${workpath}/go_objcxx_wrap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system "chmod +x ${workpath}/go_cxx_wrap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    build.env-append      "CC=${workpath}/go_cc_wrap" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                          "CXX=${workpath}/go_cxx_wrap" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                          "OBJC=${workpath}/go_objc_wrap" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                          "OBJCXX=${workpath}/go_objcxx_wrap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { ${os.major} <= [option legacysupport.newest_darwin_requires_legacy] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        build.env-append  "GO_EXTLINK_ENABLED=1" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                          "BOOT_GO_LDFLAGS=-extldflags='${configure.ldflags}'"
</span>     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.env-append ${build.env}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    test.env-append      ${build.env}
</span> }
 port::register_callback go.append_env
 
</pre><pre style='margin:0'>

</pre>