<div dir="ltr">I had a hunch that was the problem this morning after looking again at the patch set.  Thanks for confirming.<div><br></div><div>Ross</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 17 November 2017 at 15:49, Matt Madison <span dir="ltr">&lt;<a href="mailto:matt@madison.systems" target="_blank">matt@madison.systems</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Thu, Nov 16, 2017 at 3:29 PM, Matt Madison &lt;matt@madison.systems&gt; wrote:<br>
&gt; On Thu, Nov 16, 2017 at 12:29 PM, Burton, Ross &lt;<a href="mailto:ross.burton@intel.com">ross.burton@intel.com</a>&gt; wrote:<br>
&gt;&gt; Looks like this is failing on some of our autobuilders, such as<br>
&gt;&gt; <a href="https://autobuilder.yocto.io/builders/nightly-musl-x86-64/builds/58/steps/BuildImages/logs/stdio" rel="noreferrer" target="_blank">https://autobuilder.yocto.io/<wbr>builders/nightly-musl-x86-64/<wbr>builds/58/steps/BuildImages/<wbr>logs/stdio</a><br>
&gt;<br>
&gt; I&#39;m looking into it.<br>
<br>
</span>OK, from my testing, it&#39;s not this patch that&#39;s causing the build<br>
failures, it&#39;s Khem&#39;s &quot;go: Fix build with PIE on musl&quot; patch.<br>
<br>
The added patch there that changes the default buildmode to &#39;pie&#39; is<br>
causing the external linker to be used for building go_bootstrap and<br>
target Go compiler and forcing inclusion of the cgo runtime. It will<br>
take some recipe modifications and another patch to Go&#39;s make.bash to<br>
deal with this, but I&#39;m not sure that this particular patch is even a<br>
good idea.  Making PIE builds work with musl is OK, but the additional<br>
buildmode default change is too much.<br>
<span class="HOEnZb"><font color="#888888"><br>
-Matt<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
&gt;<br>
&gt; Thanks,<br>
&gt; -Matt<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; | cmd/go/internal/vet<br>
&gt;&gt; | # cmd/api<br>
&gt;&gt; |<br>
&gt;&gt; /home/pokybuild/yocto-<wbr>autobuilder/yocto-worker/<wbr>nightly-musl-x86-64/build/<wbr>build/tmp/work/core2-64-poky-<wbr>linux-musl/go/1.9-r0/go/src/<wbr>host-tools/link:<br>
&gt;&gt; running x86_64-poky-linux-musl-gcc failed: exit status 1<br>
&gt;&gt; |<br>
&gt;&gt; /home/pokybuild/yocto-<wbr>autobuilder/yocto-worker/<wbr>nightly-musl-x86-64/build/<wbr>build/tmp/work/core2-64-poky-<wbr>linux-musl/go/1.9-r0/build-<wbr>tmp/go-link-213113620/000000.<wbr>o:<br>
&gt;&gt; In function `vfprintf&#39;:<br>
&gt;&gt; | /usr/include/x86_64-linux-gnu/<wbr>bits/stdio2.h:127: undefined reference to<br>
&gt;&gt; `__vfprintf_chk&#39;<br>
&gt;&gt; |<br>
&gt;&gt; /home/pokybuild/yocto-<wbr>autobuilder/yocto-worker/<wbr>nightly-musl-x86-64/build/<wbr>build/tmp/work/core2-64-poky-<wbr>linux-musl/go/1.9-r0/build-<wbr>tmp/go-link-213113620/000000.<wbr>o:<br>
&gt;&gt; In function `fprintf&#39;:<br>
&gt;&gt; | /usr/include/x86_64-linux-gnu/<wbr>bits/stdio2.h:97: undefined reference to<br>
&gt;&gt; `__fprintf_chk&#39;<br>
&gt;&gt; | collect2: error: ld returned 1 exit status<br>
&gt;&gt;<br>
&gt;&gt; It&#39;s running x86-64-poky-linux-musl-gcc but using headers from /usr, which<br>
&gt;&gt; looks wrong.<br>
&gt;&gt;<br>
&gt;&gt; Ross<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On 14 November 2017 at 17:21, Matt Madison &lt;matt@madison.systems&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Yes, drat it, v3 should fix that.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thanks,<br>
&gt;&gt;&gt; -Matt<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Tue, Nov 14, 2017 at 9:20 AM, Otavio Salvador<br>
&gt;&gt;&gt; &lt;<a href="mailto:otavio.salvador@ossystems.com.br">otavio.salvador@ossystems.<wbr>com.br</a>&gt; wrote:<br>
&gt;&gt;&gt; &gt; Hello Matt,<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; A minor thing:<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Upstream-Status: Pending<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; On Tue, Nov 14, 2017 at 3:18 PM, Matt Madison &lt;matt@madison.systems&gt;<br>
&gt;&gt;&gt; &gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt; For cross-canadian builds, we were accidentally using<br>
&gt;&gt;&gt; &gt;&gt; the crosssdk C compiler when building the Go compiler<br>
&gt;&gt;&gt; &gt;&gt; bootstrap.  Add a patch to the make script to let us<br>
&gt;&gt;&gt; &gt;&gt; use BUILD_CC, and prepend do_compile to set it in<br>
&gt;&gt;&gt; &gt;&gt; the local environment to ensure that the trailing<br>
&gt;&gt;&gt; &gt;&gt; blank gets stripped, since that confuses Go.<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; [YOCTO #12341]<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Signed-off-by: Matt Madison &lt;matt@madison.systems&gt;<br>
&gt;&gt;&gt; &gt;&gt; ---<br>
&gt;&gt;&gt; &gt;&gt;  meta/recipes-devtools/go/go-1.<wbr>9.inc                |  1 +<br>
&gt;&gt;&gt; &gt;&gt;  ...verride-CC-when-building-<wbr>dist-and-go_boot.patch | 43<br>
&gt;&gt;&gt; &gt;&gt; ++++++++++++++++++++++<br>
&gt;&gt;&gt; &gt;&gt;  meta/recipes-devtools/go/go-<wbr>common.inc             |  4 ++<br>
&gt;&gt;&gt; &gt;&gt;  3 files changed, 48 insertions(+)<br>
&gt;&gt;&gt; &gt;&gt;  create mode 100644<br>
&gt;&gt;&gt; &gt;&gt; meta/recipes-devtools/go/go-1.<wbr>9/0010-make.bash-override-CC-<wbr>when-building-dist-and-go_<wbr>boot.patch<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; diff --git a/meta/recipes-devtools/go/go-<wbr>1.9.inc<br>
&gt;&gt;&gt; &gt;&gt; b/meta/recipes-devtools/go/go-<wbr>1.9.inc<br>
&gt;&gt;&gt; &gt;&gt; index 65adaa8..1dbb5ef 100644<br>
&gt;&gt;&gt; &gt;&gt; --- a/meta/recipes-devtools/go/go-<wbr>1.9.inc<br>
&gt;&gt;&gt; &gt;&gt; +++ b/meta/recipes-devtools/go/go-<wbr>1.9.inc<br>
&gt;&gt;&gt; &gt;&gt; @@ -15,6 +15,7 @@ SRC_URI += &quot;\<br>
&gt;&gt;&gt; &gt;&gt;          file://0007-ld-add-soname-to-<wbr>shareable-objects.patch \<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; file://0008-make.bash-add-<wbr>GOHOSTxx-indirection-for-<wbr>cross-canadia.patch \<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; file://0009-cmd-go-buildmode-<wbr>pie-forces-external-linking-<wbr>mode-on.patch \<br>
&gt;&gt;&gt; &gt;&gt; +<br>
&gt;&gt;&gt; &gt;&gt; file://0010-make.bash-<wbr>override-CC-when-building-<wbr>dist-and-go_boot.patch \<br>
&gt;&gt;&gt; &gt;&gt;  &quot;<br>
&gt;&gt;&gt; &gt;&gt;  SRC_URI[main.md5sum] = &quot;<wbr>da2d44ea384076efec43ee1f8b7d45<wbr>d2&quot;<br>
&gt;&gt;&gt; &gt;&gt;  SRC_URI[main.sha256sum] =<br>
&gt;&gt;&gt; &gt;&gt; &quot;<wbr>a4ab229028ed167ba1986825751463<wbr>605264e44868362ca8e7accc8be057<wbr>e993&quot;<br>
&gt;&gt;&gt; &gt;&gt; diff --git<br>
&gt;&gt;&gt; &gt;&gt; a/meta/recipes-devtools/go/go-<wbr>1.9/0010-make.bash-override-<wbr>CC-when-building-dist-and-go_<wbr>boot.patch<br>
&gt;&gt;&gt; &gt;&gt; b/meta/recipes-devtools/go/go-<wbr>1.9/0010-make.bash-override-<wbr>CC-when-building-dist-and-go_<wbr>boot.patch<br>
&gt;&gt;&gt; &gt;&gt; new file mode 100644<br>
&gt;&gt;&gt; &gt;&gt; index 0000000..94ea197<br>
&gt;&gt;&gt; &gt;&gt; --- /dev/null<br>
&gt;&gt;&gt; &gt;&gt; +++<br>
&gt;&gt;&gt; &gt;&gt; b/meta/recipes-devtools/go/go-<wbr>1.9/0010-make.bash-override-<wbr>CC-when-building-dist-and-go_<wbr>boot.patch<br>
&gt;&gt;&gt; &gt;&gt; @@ -0,0 +1,43 @@<br>
&gt;&gt;&gt; &gt;&gt; +From 36787fbf0e0a6298ba1038bbbae526<wbr>654597eee4 Mon Sep 17 00:00:00 2001<br>
&gt;&gt;&gt; &gt;&gt; +From: Matt Madison &lt;matt@madison.systems&gt;<br>
&gt;&gt;&gt; &gt;&gt; +Date: Tue, 14 Nov 2017 07:38:42 -0800<br>
&gt;&gt;&gt; &gt;&gt; +Subject: [PATCH 10/10] make.bash: override CC when building dist and<br>
&gt;&gt;&gt; &gt;&gt; + go_bootstrap<br>
&gt;&gt;&gt; &gt;&gt; +<br>
&gt;&gt;&gt; &gt;&gt; +For cross-canadian builds, dist and go_bootstrap<br>
&gt;&gt;&gt; &gt;&gt; +run on the build host, so CC needs to point to the<br>
&gt;&gt;&gt; &gt;&gt; +build host&#39;s C compiler.  Add a BUILD_CC environment<br>
&gt;&gt;&gt; &gt;&gt; +for this, falling back to $CC if not present.<br>
&gt;&gt;&gt; &gt;&gt; +<br>
&gt;&gt;&gt; &gt;&gt; +Upstream-Status: pending<br>
&gt;&gt;&gt; &gt;&gt; +<br>
&gt;&gt;&gt; &gt;&gt; +Signed-off-by: Matt Madison &lt;matt@madison.systems&gt;<br>
&gt;&gt;&gt; &gt;&gt; +---<br>
&gt;&gt;&gt; &gt;&gt; + src/make.bash | 4 ++--<br>
&gt;&gt;&gt; &gt;&gt; + 1 file changed, 2 insertions(+), 2 deletions(-)<br>
&gt;&gt;&gt; &gt;&gt; +<br>
&gt;&gt;&gt; &gt;&gt; +diff --git a/src/make.bash b/src/make.bash<br>
&gt;&gt;&gt; &gt;&gt; +index 0bdadc6..f199349 100755<br>
&gt;&gt;&gt; &gt;&gt; +--- a/src/make.bash<br>
&gt;&gt;&gt; &gt;&gt; ++++ b/src/make.bash<br>
&gt;&gt;&gt; &gt;&gt; +@@ -131,7 +131,7 @@ if [ &quot;$GOROOT_BOOTSTRAP&quot; = &quot;$GOROOT&quot; ]; then<br>
&gt;&gt;&gt; &gt;&gt; +       exit 1<br>
&gt;&gt;&gt; &gt;&gt; + fi<br>
&gt;&gt;&gt; &gt;&gt; + rm -f cmd/dist/dist<br>
&gt;&gt;&gt; &gt;&gt; +-GOROOT=&quot;$GOROOT_BOOTSTRAP&quot; GOOS=&quot;&quot; GOARCH=&quot;&quot;<br>
&gt;&gt;&gt; &gt;&gt; &quot;$GOROOT_BOOTSTRAP/bin/go&quot; build -o cmd/dist/dist ./cmd/dist<br>
&gt;&gt;&gt; &gt;&gt; ++CC=${BUILD_CC:-${CC}} GOROOT=&quot;$GOROOT_BOOTSTRAP&quot; GOOS=&quot;&quot; GOARCH=&quot;&quot;<br>
&gt;&gt;&gt; &gt;&gt; &quot;$GOROOT_BOOTSTRAP/bin/go&quot; build -o cmd/dist/dist ./cmd/dist<br>
&gt;&gt;&gt; &gt;&gt; +<br>
&gt;&gt;&gt; &gt;&gt; + # -e doesn&#39;t propagate out of eval, so check success by hand.<br>
&gt;&gt;&gt; &gt;&gt; + eval $(./cmd/dist/dist env -p || echo FAIL=true)<br>
&gt;&gt;&gt; &gt;&gt; +@@ -167,7 +167,7 @@ elif [ &quot;$1&quot; = &quot;--host-only&quot; ]; then<br>
&gt;&gt;&gt; &gt;&gt; + fi<br>
&gt;&gt;&gt; &gt;&gt; +<br>
&gt;&gt;&gt; &gt;&gt; + if [ &quot;$do_host_build&quot; = &quot;yes&quot; ]; then<br>
&gt;&gt;&gt; &gt;&gt; +-      ./cmd/dist/dist bootstrap $buildall $GO_DISTFLAGS -v # builds<br>
&gt;&gt;&gt; &gt;&gt; go_bootstrap<br>
&gt;&gt;&gt; &gt;&gt; ++      CC=${BUILD_CC:-${CC}} ./cmd/dist/dist bootstrap $buildall<br>
&gt;&gt;&gt; &gt;&gt; $GO_DISTFLAGS -v # builds go_bootstrap<br>
&gt;&gt;&gt; &gt;&gt; +       # Delay move of dist tool to now, because bootstrap may clear<br>
&gt;&gt;&gt; &gt;&gt; tool directory.<br>
&gt;&gt;&gt; &gt;&gt; +       mv cmd/dist/dist &quot;$GOTOOLDIR&quot;/dist<br>
&gt;&gt;&gt; &gt;&gt; +       echo<br>
&gt;&gt;&gt; &gt;&gt; +--<br>
&gt;&gt;&gt; &gt;&gt; +2.7.4<br>
&gt;&gt;&gt; &gt;&gt; +<br>
&gt;&gt;&gt; &gt;&gt; diff --git a/meta/recipes-devtools/go/go-<wbr>common.inc<br>
&gt;&gt;&gt; &gt;&gt; b/meta/recipes-devtools/go/go-<wbr>common.inc<br>
&gt;&gt;&gt; &gt;&gt; index ce1eb86..9af6873 100644<br>
&gt;&gt;&gt; &gt;&gt; --- a/meta/recipes-devtools/go/go-<wbr>common.inc<br>
&gt;&gt;&gt; &gt;&gt; +++ b/meta/recipes-devtools/go/go-<wbr>common.inc<br>
&gt;&gt;&gt; &gt;&gt; @@ -20,3 +20,7 @@ B = &quot;${S}&quot;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;  INHIBIT_PACKAGE_DEBUG_SPLIT = &quot;1&quot;<br>
&gt;&gt;&gt; &gt;&gt;  SSTATE_SCAN_CMD = &quot;true&quot;<br>
&gt;&gt;&gt; &gt;&gt; +<br>
&gt;&gt;&gt; &gt;&gt; +do_compile_prepend() {<br>
&gt;&gt;&gt; &gt;&gt; +       BUILD_CC=${BUILD_CC}<br>
&gt;&gt;&gt; &gt;&gt; +}<br>
&gt;&gt;&gt; &gt;&gt; --<br>
&gt;&gt;&gt; &gt;&gt; 2.7.4<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; --<br>
&gt;&gt;&gt; &gt;&gt; ______________________________<wbr>_________________<br>
&gt;&gt;&gt; &gt;&gt; Openembedded-core mailing list<br>
&gt;&gt;&gt; &gt;&gt; <a href="mailto:Openembedded-core@lists.openembedded.org">Openembedded-core@lists.<wbr>openembedded.org</a><br>
&gt;&gt;&gt; &gt;&gt; <a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.org/<wbr>mailman/listinfo/openembedded-<wbr>core</a><br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; --<br>
&gt;&gt;&gt; &gt; Otavio Salvador                             O.S. Systems<br>
&gt;&gt;&gt; &gt; <a href="http://www.ossystems.com.br" rel="noreferrer" target="_blank">http://www.ossystems.com.br</a>        <a href="http://code.ossystems.com.br" rel="noreferrer" target="_blank">http://code.ossystems.com.br</a><br>
&gt;&gt;&gt; &gt; Mobile: <a href="tel:%2B55%20%2853%29%209981-7854" value="+555399817854">+55 (53) 9981-7854</a>            Mobile: <a href="tel:%2B1%20%28347%29%20903-9750" value="+13479039750">+1 (347) 903-9750</a><br>
&gt;&gt;&gt; --<br>
&gt;&gt;&gt; ______________________________<wbr>_________________<br>
&gt;&gt;&gt; Openembedded-core mailing list<br>
&gt;&gt;&gt; <a href="mailto:Openembedded-core@lists.openembedded.org">Openembedded-core@lists.<wbr>openembedded.org</a><br>
&gt;&gt;&gt; <a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.org/<wbr>mailman/listinfo/openembedded-<wbr>core</a><br>
</div></div></blockquote></div><br></div>