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

Matt Madison matt at madison.systems
Thu Nov 16 23:29:23 UTC 2017


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.

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] =
>> >> "a4ab229028ed167ba1986825751463605264e44868362ca8e7accc8be057e993"
>> >> 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



More information about the Openembedded-core mailing list