[OE-core] [PATCH v2] go: ensure use of BUILD_CC when building bootstrap tools

Burton, Ross ross.burton at intel.com
Wed Nov 22 21:11:43 UTC 2017


Yes, just marked it.  Thanks for the reminder.

Ross

On 22 November 2017 at 20:58, Matt Madison <matt at madison.systems> wrote:

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


More information about the Openembedded-core mailing list