aboutsummaryrefslogtreecommitdiffstats
path: root/meta/classes/go.bbclass
diff options
context:
space:
mode:
authorMatt Madison <matt@madison.systems>2017-09-14 16:22:30 -0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-09-21 09:03:33 +0100
commit5de3de12c70f01753491c46b5622b0d273c3257b (patch)
tree2e5bb521fa96178d5f00efcb82fa640bacfced9f /meta/classes/go.bbclass
parente2171f14a2dbf630a926a6792f6e6355f80e18b1 (diff)
downloadopenembedded-core-contrib-5de3de12c70f01753491c46b5622b0d273c3257b.tar.gz
go.bbclass: set TMPDIR during compilation
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>
Diffstat (limited to 'meta/classes/go.bbclass')
-rw-r--r--meta/classes/go.bbclass6
1 files changed, 6 insertions, 0 deletions
diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
index 863b578e5c..e167c949ec 100644
--- a/meta/classes/go.bbclass
+++ b/meta/classes/go.bbclass
@@ -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}