Backport go-cross: fix the bug of cross building error

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@windriver.com>

Signed-off-by: Amy Fong <amy.fong@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
This commit is contained in:
Amy Fong 2015-10-06 14:41:10 -04:00 committed by Bruce Ashfield
parent ac2adfb169
commit 7360250a0f

View File

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