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]

(From OE-Core rev: 70278eb86bc5bcbe3fa53c62f971fa467f61e28f)

Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 0dbb860924fc157880b52d8e08bad3c6c6b019b8)
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Matt Madison
2017-12-06 09:17:03 -02:00
committed by Richard Purdie
parent 7030d5b4f9
commit 551d18e4b8
3 changed files with 48 additions and 0 deletions

View File

@@ -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"

View File

@@ -0,0 +1,43 @@
From 21d83dd9499e5be30eea28dd7034d1ea2a01c838 Mon Sep 17 00:00:00 2001
From: Matt Madison <matt@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@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

View File

@@ -20,3 +20,7 @@ B = "${S}"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
SSTATE_SCAN_CMD = "true"
do_compile_prepend() {
BUILD_CC=${BUILD_CC}
}