mirror of
https://git.yoctoproject.org/poky
synced 2026-07-16 03:47:03 +00:00
c009c20ef2
go1.16.15 (released 2022-03-03) includes a security fix to the regexp/syntax package, as well as bug fixes to the compiler, runtime, the go command, and to the net package. See the Go 1.16.15 milestone on our issue tracker for detai ls. (From OE-Core rev: 3462c7680137a9ef5f683161d39caf19f87a932a) Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com> Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
60 lines
1.6 KiB
BlitzBasic
60 lines
1.6 KiB
BlitzBasic
# 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
|
|
}
|