summaryrefslogtreecommitdiffstats
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:05:50 +0100
commite1fd36cd6d0c6c70e498980678a71ba042063571 (patch)
tree123deaa9a78976f7019f2199c51d2f9eda2cddce
parent6590c03808c0c6728c6fa914c6bfecf72de1e95a (diff)
downloadpoky-e1fd36cd6d0c6c70e498980678a71ba042063571.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. (From OE-Core rev: 5de3de12c70f01753491c46b5622b0d273c3257b) 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> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-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/"
61 61
62B = "${WORKDIR}/build" 62B = "${WORKDIR}/build"
63export GOPATH = "${B}" 63export GOPATH = "${B}"
64GO_TMPDIR ?= "${WORKDIR}/go-tmp"
65GO_TMPDIR[vardepvalue] = ""
64 66
65python go_do_unpack() { 67python go_do_unpack() {
66 src_uri = (d.getVar('SRC_URI') or "").split() 68 src_uri = (d.getVar('SRC_URI') or "").split()
@@ -97,14 +99,17 @@ go_do_configure() {
97} 99}
98 100
99go_do_compile() { 101go_do_compile() {
102 export TMPDIR="${GO_TMPDIR}"
100 ${GO} env 103 ${GO} env
101 if [ -n "${GO_INSTALL}" ]; then 104 if [ -n "${GO_INSTALL}" ]; then
102 ${GO} install ${GO_LINKSHARED} ${GOBUILDFLAGS} `go_list_packages` 105 ${GO} install ${GO_LINKSHARED} ${GOBUILDFLAGS} `go_list_packages`
103 fi 106 fi
104} 107}
108do_compile[dirs] =+ "${GO_TMPDIR}"
105do_compile[cleandirs] = "${B}/bin ${B}/pkg" 109do_compile[cleandirs] = "${B}/bin ${B}/pkg"
106 110
107do_compile_ptest() { 111do_compile_ptest() {
112 export TMPDIR="${GO_TMPDIR}"
108 rm -f ${B}/.go_compiled_tests.list 113 rm -f ${B}/.go_compiled_tests.list
109 go_list_package_tests | while read pkg; do 114 go_list_package_tests | while read pkg; do
110 cd ${B}/src/$pkg 115 cd ${B}/src/$pkg
@@ -113,6 +118,7 @@ do_compile_ptest() {
113 sed -e's,/\./,/,'>> ${B}/.go_compiled_tests.list 118 sed -e's,/\./,/,'>> ${B}/.go_compiled_tests.list
114 done 119 done
115} 120}
121do_compile_ptest_base[dirs] =+ "${GO_TMPDIR}"
116 122
117go_do_install() { 123go_do_install() {
118 install -d ${D}${libdir}/go/src/${GO_IMPORT} 124 install -d ${D}${libdir}/go/src/${GO_IMPORT}