[meta-virtualization] [PATCH 2/7] Backport go-cross: fix the bug of cross building error

Amy Fong amy.fong at windriver.com
Tue Oct 6 11:41:10 PDT 2015


submitted to upstream https://github.com/errordeveloper/oe-meta-go

    go-cross: fix the bug of cross building error

    When a package's recipe inherit "cross" bbclass, its CC and CXX are defined
    as the host native gcc and g++ instead of the host cross toolchain, fot this
    case, CC_FOR_TARGET and CXX_FOR_TARGET should be defined the same with CC and
    CXX, instead they are should be define as host cross toolchain's CC and CXX,
    otherwise, it will build failed for target arm architecture as below:

    | # Building packages and commands for linux/arm.
    | + CC='gcc '
    | + bitbake_build/tmp/work/x86_64-wrs-linux-gnueabi/go-cross/1.4-r0/go/pkg/tool/linux_amd64/go_bootstrap install -ccflags '' -gcflags '' -ldflags '' -v std
    | runtime
    | errors
    | sync/atomic
    | unicode
    | unicode/utf8
    | math
    | sort
    | encoding
    | unicode/utf16
    | container/list
    | crypto/subtle
    | runtime/cgo
    | container/ring
    | image/color
    | runtime/race
    | # runtime/cgo
    | gcc: error: unrecognized command line option '-marm'

    Signed-off-by: fupan li <fupan.li at windriver.com>

Signed-off-by: Amy Fong <amy.fong at windriver.com>
---
 recipes-devtools/go-cross/go-cross_1.3.bb | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/recipes-devtools/go-cross/go-cross_1.3.bb b/recipes-devtools/go-cross/go-cross_1.3.bb
index 8723142..9ecc295 100644
--- a/recipes-devtools/go-cross/go-cross_1.3.bb
+++ b/recipes-devtools/go-cross/go-cross_1.3.bb
@@ -5,6 +5,8 @@ DESCRIPTION = "\
 HOMEPAGE = "https://golang.org/"
 LICENSE = "BSD-3-Clause"
 
+DEPENDS = "virtual/${TARGET_PREFIX}gcc"
+
 SRC_URI = "http://golang.org/dl/go${PV}.src.tar.gz"
 
 S = "${WORKDIR}/go/"
@@ -44,8 +46,8 @@ do_compile() {
 	## TODO: consider setting GO_EXTLINK_ENABLED
 
 	export CC="${BUILD_CC}"
-	export CC_FOR_TARGET="${CC}"
-	export CXX_FOR_TARGET="${CXX}"
+	export CC_FOR_TARGET="${TARGET_PREFIX}gcc ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}"
+	export CXX_FOR_TARGET="${TARGET_PREFIX}g++ ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}"
 	export GO_CCFLAGS="${HOST_CFLAGS}"
 	export GO_LDFLAGS="${HOST_LDFLAGS}"
 
-- 
2.5.3



More information about the meta-virtualization mailing list