From 0dbb860924fc157880b52d8e08bad3c6c6b019b8 Mon Sep 17 00:00:00 2001 From: Matt Madison Date: Tue, 14 Nov 2017 09:20:15 -0800 Subject: go: ensure use of BUILD_CC when building bootstrap tools 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 Signed-off-by: Ross Burton --- 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 60292651df..7f12241dc1 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_append_libc-musl = " file://set-external-linker.patch" 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 0000000000..83fd78c3d7 --- /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 21d83dd9499e5be30eea28dd7034d1ea2a01c838 Mon Sep 17 00:00:00 2001 +From: Matt Madison +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 +--- + 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 ce1eb86812..9af68738a6 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} +} -- cgit 1.2.3-korg