From d0ef47396d1ea7c67b27898f6d0401cbcef45281 Mon Sep 17 00:00:00 2001 From: Amy Fong Date: Tue, 6 Oct 2015 14:41:13 -0400 Subject: Enable go-cross 1.3 to coexist with later versions Since we need go 1.3 to co-exist with later versions (ie 1.4), package go-cross_1.3 as go-cross-1.3_1.3. go 1.3 will be installed to a different path than go-cross, this requires go packages needing go 1.3 to set its PATH to: export PATH=${STAGING_BINDIR_NATIVE}/${HOST_SYS}/go-1.3:$PATH Signed-off-by: Amy Fong Signed-off-by: Bruce Ashfield --- recipes-containers/docker/docker_git.bb | 4 +- recipes-devtools/go-cross/go-cross-1.3_1.3.bb | 72 +++++++++++++++++++++++++++ recipes-devtools/go-cross/go-cross_1.3.bb | 71 -------------------------- 3 files changed, 75 insertions(+), 72 deletions(-) create mode 100644 recipes-devtools/go-cross/go-cross-1.3_1.3.bb delete mode 100644 recipes-devtools/go-cross/go-cross_1.3.bb diff --git a/recipes-containers/docker/docker_git.bb b/recipes-containers/docker/docker_git.bb index 46714fef..69c45ae3 100644 --- a/recipes-containers/docker/docker_git.bb +++ b/recipes-containers/docker/docker_git.bb @@ -37,7 +37,7 @@ S = "${WORKDIR}/git" DOCKER_VERSION = "1.6.2" PV = "${DOCKER_VERSION}+git${SRCREV}" -DEPENDS = "go-cross \ +DEPENDS = "go-cross-1.3 \ go-cli \ go-pty \ go-context \ @@ -66,6 +66,8 @@ do_configure() { } do_compile() { + export PATH=${STAGING_BINDIR_NATIVE}/${HOST_SYS}/go-1.3:$PATH + export GOARCH="${TARGET_ARCH}" # supported amd64, 386, arm if [ "${TARGET_ARCH}" = "x86_64" ]; then diff --git a/recipes-devtools/go-cross/go-cross-1.3_1.3.bb b/recipes-devtools/go-cross/go-cross-1.3_1.3.bb new file mode 100644 index 00000000..775e28f3 --- /dev/null +++ b/recipes-devtools/go-cross/go-cross-1.3_1.3.bb @@ -0,0 +1,72 @@ +DESCRIPTION = "\ + Go is an open source programming language that makes it easy to build simple, \ + reliable, and efficient software. \ + " +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/" + +inherit cross + +LIC_FILES_CHKSUM = "file://LICENSE;md5=591778525c869cdde0ab5a1bf283cd81" +SRC_URI[md5sum] = "4b66d7249554181c314f139ea78920b1" +SRC_URI[sha256sum] = "eb983e6c5b2b9838f482c5442b1ac1856f610f2b21f3c123b3fedb48ffc35382" + +SRC_URI += "\ + file://bsd_svid_source.patch \ + file://ccache.patch \ + file://0001-cmd-ld-set-alignment-for-the-.rel.plt-section-on-32-.patch \ + " + +do_compile() { + ## Setting `$GOBIN` doesn't do any good, looks like it ends up copying binaries there. + export GOROOT_FINAL="${SYSROOT}${libdir}/go-1.3" + + export GOHOSTOS="linux" + export GOOS="linux" + + export GOARCH="${TARGET_ARCH}" + # golang only support 386, amd64 and arm architecture. + if [ "${TARGET_ARCH}" = "x86_64" ]; then + export GOARCH="amd64" + elif [ "${TARGET_ARCH}" = "i586" ]; then + export GOARCH="386" + fi + if [ "${TARGET_ARCH}" = "arm" ] + then + if [ `echo ${TUNE_PKGARCH} | cut -c 1-7` = "cortexa" ] + then + echo GOARM 7 + export GOARM="7" + fi + fi + + export CGO_ENABLED="1" + ## TODO: consider setting GO_EXTLINK_ENABLED + + export CC="${BUILD_CC}" + 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}" + + cd src && ./make.bash +} + +do_install() { + ## It should be okay to ignore `${WORKDIR}/go/bin/linux_arm`... + ## Also `gofmt` is not needed right now. + install -d "${D}${bindir}/go-1.3" + install -m 0755 "${WORKDIR}/go/bin/go" "${D}${bindir}/go-1.3/" + install -d "${D}${libdir}/go-1.3" + + ## TODO: use `install` instead of `cp` + for dir in include lib pkg src test + do cp -a "${WORKDIR}/go/${dir}" "${D}${libdir}/go-1.3/" + done +} diff --git a/recipes-devtools/go-cross/go-cross_1.3.bb b/recipes-devtools/go-cross/go-cross_1.3.bb deleted file mode 100644 index 1fb48700..00000000 --- a/recipes-devtools/go-cross/go-cross_1.3.bb +++ /dev/null @@ -1,71 +0,0 @@ -DESCRIPTION = "\ - Go is an open source programming language that makes it easy to build simple, \ - reliable, and efficient software. \ - " -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/" - -inherit cross - -LIC_FILES_CHKSUM = "file://LICENSE;md5=591778525c869cdde0ab5a1bf283cd81" -SRC_URI[md5sum] = "4b66d7249554181c314f139ea78920b1" -SRC_URI[sha256sum] = "eb983e6c5b2b9838f482c5442b1ac1856f610f2b21f3c123b3fedb48ffc35382" - -SRC_URI += "\ - file://bsd_svid_source.patch \ - file://ccache.patch \ - file://0001-cmd-ld-set-alignment-for-the-.rel.plt-section-on-32-.patch \ - " - -do_compile() { - ## Setting `$GOBIN` doesn't do any good, looks like it ends up copying binaries there. - export GOROOT_FINAL="${SYSROOT}${libdir}/go" - - export GOHOSTOS="linux" - export GOOS="linux" - - export GOARCH="${TARGET_ARCH}" - # golang only support 386, amd64 and arm architecture. - if [ "${TARGET_ARCH}" = "x86_64" ]; then - export GOARCH="amd64" - elif [ "${TARGET_ARCH}" = "i586" ]; then - export GOARCH="386" - fi - if [ "${TARGET_ARCH}" = "arm" ] - then - if [ `echo ${TUNE_PKGARCH} | cut -c 1-7` = "cortexa" ] - then - echo GOARM 7 - export GOARM="7" - fi - fi - - export CGO_ENABLED="1" - ## TODO: consider setting GO_EXTLINK_ENABLED - - export CC="${BUILD_CC}" - 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}" - - cd src && ./make.bash -} - -do_install() { - ## It should be okay to ignore `${WORKDIR}/go/bin/linux_arm`... - ## Also `gofmt` is not needed right now. - install -d "${D}${bindir}" - install -m 0755 "${WORKDIR}/go/bin/go" "${D}${bindir}" - install -d "${D}${libdir}/go" - ## TODO: use `install` instead of `cp` - for dir in include lib pkg src test - do cp -a "${WORKDIR}/go/${dir}" "${D}${libdir}/go/" - done -} -- cgit v1.2.3-54-g00ecf