diff options
author | Matt Madison <matt@madison.systems> | 2017-09-12 09:50:19 -0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-09-12 23:51:37 +0100 |
commit | 9dc9d457fb9a456bc18c7789b91f40e1f6a999fe (patch) | |
tree | 4ffda72d7482a69dd1e423ba682ddfcdb86dc111 | |
parent | b40f42e69de47af4f627432e284038c645efbaec (diff) | |
download | openembedded-core-9dc9d457fb9a456bc18c7789b91f40e1f6a999fe.tar.gz openembedded-core-9dc9d457fb9a456bc18c7789b91f40e1f6a999fe.tar.bz2 openembedded-core-9dc9d457fb9a456bc18c7789b91f40e1f6a999fe.zip |
go-native: remove dependency on go-bootstrap-native
The go1.4 toolchain is only required for bootstrapping
go-native, and should not be used for anything else,
so build it as part of the go-native build. This way,
we don't have to carry around its built artifacts in
the native sysroot.
The go-cross and target toolchains can then just depend
on go-native, using that for their 'bootstrap' toolchain.
Also removed some unnecessary package-related noexec
settings, since native recipes inherit nopackages.
Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/recipes-devtools/go/go-1.8.inc | 4 | ||||
-rw-r--r-- | meta/recipes-devtools/go/go-common.inc | 2 | ||||
-rw-r--r-- | meta/recipes-devtools/go/go-native.inc | 48 | ||||
-rw-r--r-- | meta/recipes-devtools/go/go-native_1.8.bb | 1 | ||||
-rw-r--r-- | meta/recipes-devtools/go/go.inc | 4 |
5 files changed, 32 insertions, 27 deletions
diff --git a/meta/recipes-devtools/go/go-1.8.inc b/meta/recipes-devtools/go/go-1.8.inc index 3690f310bd..bfb26de01d 100644 --- a/meta/recipes-devtools/go/go-1.8.inc +++ b/meta/recipes-devtools/go/go-1.8.inc @@ -15,5 +15,5 @@ SRC_URI += "\ file://split-host-and-target-build.patch \ file://gotooldir.patch \ " -SRC_URI[md5sum] = "64e9380e07bba907e26a00cf5fcbe77e" -SRC_URI[sha256sum] = "5f5dea2447e7dcfdc50fa6b94c512e58bfba5673c039259fd843f68829d99fa6" +SRC_URI[main.md5sum] = "64e9380e07bba907e26a00cf5fcbe77e" +SRC_URI[main.sha256sum] = "5f5dea2447e7dcfdc50fa6b94c512e58bfba5673c039259fd843f68829d99fa6" diff --git a/meta/recipes-devtools/go/go-common.inc b/meta/recipes-devtools/go/go-common.inc index f74b8b7650..ce1eb86812 100644 --- a/meta/recipes-devtools/go/go-common.inc +++ b/meta/recipes-devtools/go/go-common.inc @@ -14,7 +14,7 @@ LICENSE = "BSD-3-Clause" inherit goarch -SRC_URI = "http://golang.org/dl/go${PV}.src.tar.gz" +SRC_URI = "http://golang.org/dl/go${PV}.src.tar.gz;name=main" S = "${WORKDIR}/go" B = "${S}" diff --git a/meta/recipes-devtools/go/go-native.inc b/meta/recipes-devtools/go/go-native.inc index c21f8fda78..9eb2b3211f 100644 --- a/meta/recipes-devtools/go/go-native.inc +++ b/meta/recipes-devtools/go/go-native.inc @@ -1,16 +1,28 @@ +# Use immediate assingment here to get the original (/usr/lib) +# instead of the one rewritten by native.bbclass. +nonstaging_libdir := "${libdir}" + inherit native -BOOTSTRAP ?= "" +SRC_URI_append = " http://golang.org/dl/go1.4.3.src.tar.gz;name=bootstrap;subdir=go1.4" +SRC_URI[bootstrap.md5sum] = "dfb604511115dd402a77a553a5923a04" +SRC_URI[bootstrap.sha256sum] = "9947fc705b0b841b5938c48b22dc33e9647ec0752bae66e50278df4f23f64959" + export GOOS = "${BUILD_GOOS}" export GOARCH = "${BUILD_GOARCH}" -export GOROOT_FINAL = "${STAGING_LIBDIR_NATIVE}/go${BOOTSTRAP}" -export GOROOT_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/go1.4" +CC = "${@d.getVar('BUILD_CC', True).strip()}" + export CGO_ENABLED = "1" -do_configure[noexec] = "1" +do_configure() { + cd ${WORKDIR}/go1.4/go/src + CGO_ENABLED=0 GOROOT=${WORKDIR}/go1.4/go ./make.bash +} do_compile() { export GOBIN="${B}/bin" + export GOROOT_FINAL="${nonstaging_libdir}/go" + export GOROOT_BOOTSTRAP="${WORKDIR}/go1.4/go" rm -rf ${GOBIN} mkdir ${GOBIN} @@ -18,7 +30,7 @@ do_compile() { mkdir -p ${WORKDIR}/build-tmp cd src - CGO_ENABLED=0 ./make.bash --host-only + ./make.bash --host-only } make_wrapper() { @@ -26,31 +38,25 @@ make_wrapper() { cat <<END >${D}${bindir}/$2$3 #!/bin/bash here=\`dirname \$0\` -export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go$3\`}" -\$here/../lib/go$3/bin/$1 "\$@" +export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}" +\$here/../lib/go/bin/$1 "\$@" END - chmod +x ${D}${bindir}/$2$3 + chmod +x ${D}${bindir}/$2 } do_install() { - install -d ${D}${libdir}/go${BOOTSTRAP} - cp -a ${B}/pkg ${D}${libdir}/go${BOOTSTRAP}/ - install -d ${D}${libdir}/go${BOOTSTRAP}/src + install -d ${D}${libdir}/go + cp --preserve=mode,timestamps -R ${B}/pkg ${D}${libdir}/go/ + install -d ${D}${libdir}/go/src (cd ${S}/src; for d in *; do \ - [ -d $d ] && cp -a ${S}/src/$d ${D}${libdir}/go${BOOTSTRAP}/src/; \ + [ -d $d ] && cp -a ${S}/src/$d ${D}${libdir}/go/src/; \ done) - install -d ${D}${bindir} ${D}${libdir}/go${BOOTSTRAP}/bin + install -d ${D}${bindir} ${D}${libdir}/go/bin for f in ${B}/bin/* do base=`basename $f` - install -m755 $f ${D}${libdir}/go${BOOTSTRAP}/bin - make_wrapper $base $base ${BOOTSTRAP} + install -m755 $f ${D}${libdir}/go/bin + make_wrapper $base $base done } - -do_package[noexec] = "1" -do_packagedata[noexec] = "1" -do_package_write_ipk[noexec] = "1" -do_package_write_deb[noexec] = "1" -do_package_write_rpm[noexec] = "1" diff --git a/meta/recipes-devtools/go/go-native_1.8.bb b/meta/recipes-devtools/go/go-native_1.8.bb index 182fca27a0..bbf3c0dd73 100644 --- a/meta/recipes-devtools/go/go-native_1.8.bb +++ b/meta/recipes-devtools/go/go-native_1.8.bb @@ -1,3 +1,2 @@ require ${PN}.inc require go-${PV}.inc -DEPENDS += "go-bootstrap-native" diff --git a/meta/recipes-devtools/go/go.inc b/meta/recipes-devtools/go/go.inc index 52abbebd7e..9efbd275bd 100644 --- a/meta/recipes-devtools/go/go.inc +++ b/meta/recipes-devtools/go/go.inc @@ -1,5 +1,5 @@ inherit goarch -DEPENDS += "go-bootstrap-native" +DEPENDS += "go-native" # libgcc is required for the target specific libraries to build # properly, but apparently not for go-cross and, more importantly, @@ -17,7 +17,7 @@ export GOHOSTARCH = "${BUILD_GOARCH}" export GOOS = "${TARGET_GOOS}" export GOARCH = "${TARGET_GOARCH}" export GOARM = "${TARGET_GOARM}" -export GOROOT_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/go1.4" +export GOROOT_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/go" export GOROOT_FINAL = "${libdir}/go" export CGO_ENABLED = "1" export CC_FOR_TARGET = "${CC}" |