]> code.ossystems Code Review - openembedded-core.git/commitdiff
go-native: remove dependency on go-bootstrap-native
authorMatt Madison <matt@madison.systems>
Tue, 12 Sep 2017 12:50:19 +0000 (09:50 -0300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 12 Sep 2017 22:51:37 +0000 (23:51 +0100)
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>
meta/recipes-devtools/go/go-1.8.inc
meta/recipes-devtools/go/go-common.inc
meta/recipes-devtools/go/go-native.inc
meta/recipes-devtools/go/go-native_1.8.bb
meta/recipes-devtools/go/go.inc

index 3690f310bde37f9994edd403da4c807ad35e9c95..bfb26de01d580b18773f6c49636ba06585e12388 100644 (file)
@@ -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"
index f74b8b7650a5f2c2466d40d05ba6421310979779..ce1eb868128a38ed980a3c1cf0348b4bfe2abcc0 100644 (file)
@@ -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}"
 
index c21f8fda78382d38bcf0ab018c2d16dbfeeb069a..9eb2b3211fdcb1fddd672019ea6e93078f31564a 100644 (file)
@@ -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"
index 182fca27a05e712bfcfdc2a5f4719e58d6d26d24..bbf3c0dd737026a61bcdb28ff5fb7aa3dd6e9220 100644 (file)
@@ -1,3 +1,2 @@
 require ${PN}.inc
 require go-${PV}.inc
-DEPENDS += "go-bootstrap-native"
index 52abbebd7e27cb4284cabc3911b6765a39ba1be1..9efbd275bdc821699c53b1eece437be4a7db0c32 100644 (file)
@@ -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}"