]> code.ossystems Code Review - openembedded-core.git/commitdiff
go.bbclass: set TMPDIR during compilation
authorMatt Madison <matt@madison.systems>
Thu, 14 Sep 2017 19:22:30 +0000 (16:22 -0300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 21 Sep 2017 08:03:33 +0000 (09:03 +0100)
The go build tool creates working directories under
$TMPDIR for all of its processing.  Create a directory
under ${WORKDIR} for this and point TMPDIR at it during
compilation, so that systems that have a relatively
small /tmp filesystems can still compile larger Go
packages.

Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/classes/go.bbclass

index 863b578e5c056eef5d616631e50a143522653845..e167c949ecedfda2ab750350b349691d8cf971d3 100644 (file)
@@ -61,6 +61,8 @@ GO_INSTALL_FILTEROUT ?= "${GO_IMPORT}/vendor/"
 
 B = "${WORKDIR}/build"
 export GOPATH = "${B}"
+GO_TMPDIR ?= "${WORKDIR}/go-tmp"
+GO_TMPDIR[vardepvalue] = ""
 
 python go_do_unpack() {
     src_uri = (d.getVar('SRC_URI') or "").split()
@@ -97,14 +99,17 @@ go_do_configure() {
 }
 
 go_do_compile() {
+       export TMPDIR="${GO_TMPDIR}"
        ${GO} env
        if [ -n "${GO_INSTALL}" ]; then
                ${GO} install ${GO_LINKSHARED} ${GOBUILDFLAGS} `go_list_packages`
        fi
 }
+do_compile[dirs] =+ "${GO_TMPDIR}"
 do_compile[cleandirs] = "${B}/bin ${B}/pkg"
 
 do_compile_ptest() {
+    export TMPDIR="${GO_TMPDIR}"
     rm -f ${B}/.go_compiled_tests.list
        go_list_package_tests | while read pkg; do
                cd ${B}/src/$pkg
@@ -113,6 +118,7 @@ do_compile_ptest() {
                        sed -e's,/\./,/,'>> ${B}/.go_compiled_tests.list
        done
 }
+do_compile_ptest_base[dirs] =+ "${GO_TMPDIR}"
 
 go_do_install() {
        install -d ${D}${libdir}/go/src/${GO_IMPORT}