summaryrefslogtreecommitdiff
path: root/poky/meta/recipes-devtools/go/go-native_1.16.7.bb
diff options
context:
space:
mode:
authorJason M. Bills <jason.m.bills@intel.com>2022-01-06 23:59:39 +0300
committerJason M. Bills <jason.m.bills@intel.com>2022-01-06 23:59:39 +0300
commit32777eec25d2c527a62e5ffab90a3dfef35855aa (patch)
tree588a90a6fe9fb0b35c7ce23ea3bd79fa5151ccde /poky/meta/recipes-devtools/go/go-native_1.16.7.bb
parent61f1ca1b31a9a1108e9e7f71e47fdc19beb0490b (diff)
parent5cc2f81c5b66da00cad24e18b0d23442af060c3f (diff)
downloadopenbmc-32777eec25d2c527a62e5ffab90a3dfef35855aa.tar.xz
Merge tag '0.86' of firmware.bmc.openbmc.yocto.openbmc into update
Diffstat (limited to 'poky/meta/recipes-devtools/go/go-native_1.16.7.bb')
-rw-r--r--poky/meta/recipes-devtools/go/go-native_1.16.7.bb59
1 files changed, 59 insertions, 0 deletions
diff --git a/poky/meta/recipes-devtools/go/go-native_1.16.7.bb b/poky/meta/recipes-devtools/go/go-native_1.16.7.bb
new file mode 100644
index 000000000..ffe4ef352
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-native_1.16.7.bb
@@ -0,0 +1,59 @@
+# This recipe builds a native Go (written in Go) by first building an old Go 1.4
+# (written in C). However this old Go does not support all hosts platforms.
+
+require go-${PV}.inc
+
+inherit native
+
+SRC_URI:append = " https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz;name=bootstrap;subdir=go1.4"
+SRC_URI[bootstrap.sha256sum] = "f4ff5b5eb3a3cae1c993723f3eab519c5bae18866b5e5f96fe1102f0cb5c3e52"
+
+export GOOS = "${BUILD_GOOS}"
+export GOARCH = "${BUILD_GOARCH}"
+CC = "${@d.getVar('BUILD_CC').strip()}"
+
+GOMAKEARGS ?= "--no-banner"
+
+do_configure() {
+ cd ${WORKDIR}/go1.4/go/src
+ CGO_ENABLED=0 GOROOT=${WORKDIR}/go1.4/go ./make.bash
+}
+
+do_compile() {
+ export GOROOT_FINAL="${libdir_native}/go"
+ export GOROOT_BOOTSTRAP="${WORKDIR}/go1.4/go"
+
+ cd src
+ ./make.bash ${GOMAKEARGS}
+ cd ${B}
+}
+do_compile[dirs] =+ "${GOTMPDIR} ${B}/bin"
+do_compile[cleandirs] += "${GOTMPDIR} ${B}/bin"
+
+make_wrapper() {
+ rm -f ${D}${bindir}/$2$3
+ cat <<END >${D}${bindir}/$2$3
+#!/bin/bash
+here=\`dirname \$0\`
+export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}"
+\$here/../lib/go/bin/$1 "\$@"
+END
+ chmod +x ${D}${bindir}/$2
+}
+
+do_install() {
+ 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/src/; \
+ done)
+ find ${D}${libdir}/go/src -depth -type d -name testdata -exec rm -rf {} \;
+ install -d ${D}${bindir} ${D}${libdir}/go/bin
+ for f in ${B}/bin/*
+ do
+ base=`basename $f`
+ install -m755 $f ${D}${libdir}/go/bin
+ make_wrapper $base $base
+ done
+}