[meta-virtualization] [PATCH 5/7] Enable go-cross 1.3 to coexist with later versions
Amy Fong
amy.fong at windriver.com
Tue Oct 6 11:41:13 PDT 2015
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 <amy.fong at windriver.com>
---
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 aa125a3..165b319 100644
--- a/recipes-containers/docker/docker_git.bb
+++ b/recipes-containers/docker/docker_git.bb
@@ -36,7 +36,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 \
@@ -65,6 +65,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 0000000..775e28f
--- /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 1fb4870..0000000
--- 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
-}
--
2.5.3
More information about the meta-virtualization
mailing list