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

Otavio Salvador otavio.salvador at ossystems.com.br
Tue Nov 14 17:20:31 UTC 2017


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



More information about the Openembedded-core mailing list