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