From 5535bf618edef4170c1da5f6a2d8296c142fe042 Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Wed, 5 Apr 2023 09:22:04 +0200 Subject: added go16 to build-support --- build-support/go16/PKGBUILD | 110 ++++++++++++++++++++++++++++++++++++++++ build-support/go16/go-x87.patch | 28 ++++++++++ 2 files changed, 138 insertions(+) create mode 100644 build-support/go16/PKGBUILD create mode 100644 build-support/go16/go-x87.patch diff --git a/build-support/go16/PKGBUILD b/build-support/go16/PKGBUILD new file mode 100644 index 00000000..5d1fc7d4 --- /dev/null +++ b/build-support/go16/PKGBUILD @@ -0,0 +1,110 @@ +# Maintainer: Morten Linderud +# Contributor: Daniel Martí +# Contributor: Bartłomiej Piotrowski +# Contributor: Alexander F. Rødseth +# Contributor: Pierre Neidhardt +# Contributor: Vesa Kaihlavirta +# Contributor: Rémy Oudompheng +# Contributor: Andres Perera +# Contributor: Matthew Bauer +# Contributor: Christian Himpel +# Contributor: Mike Rosset +# Contributor: Daniel YC Lin +# Contributor: John Luebs + +pkgname=go16 +_pkgname=go +epoch=2 +pkgver=1.16 +pkgrel=1 +pkgdesc='Core compiler tools for the Go programming language' +arch=(i486 i686 pentium4 x86_64) +url='https://golang.org/' +license=(BSD) +makedepends=(git go15) +replaces=(go-pie) +provides=(go-pie) +options=(!strip staticlibs) +source=(https://go.dev/dl/go${pkgver}.src.tar.gz{,.asc}) +validpgpkeys=('EB4C1BFD4F042F6DDDCCEC917721F63BD38B4796') +sha256sums=('7688063d55656105898f323d90a79a39c378d86fe89ae192eb3b7fc46347c95a' + 'SKIP') + +build() { + export GOARCH=amd64 + export GOAMD64=v1 # make sure we're building for the right x86-64 version + export GOROOT_FINAL=/usr/lib/go + export GOROOT_BOOTSTRAP=/usr/lib/go + + cd "$_pkgname/src" + ./make.bash -v +} + +check() { + export GO_TEST_TIMEOUT_SCALE=3 + + cd $_pkgname/src + ./run.bash --no-rebuild -v -v -v -k +} + +package() { + cd "$_pkgname" + + install -d "$pkgdir/usr/bin" "$pkgdir/usr/lib/go" "$pkgdir/usr/share/doc/go" \ + "$pkgdir/usr/lib/go/pkg/linux_amd64_"{dynlink,race} + + cp -a bin pkg src lib misc api test "$pkgdir/usr/lib/go" + # We can't strip all binaries and libraries, + # as that also strips some testdata directories and breaks the tests. + # Just strip the packaged binaries as a compromise. + strip $STRIP_BINARIES "$pkgdir/usr/lib/go"{/bin/*,/pkg/tool/*/*} + + cp -r doc/* "$pkgdir/usr/share/doc/go" + + ln -sf /usr/lib/go/bin/go "$pkgdir/usr/bin/go" + ln -sf /usr/lib/go/bin/gofmt "$pkgdir/usr/bin/gofmt" + ln -sf /usr/share/doc/go "$pkgdir/usr/lib/go/doc" + + install -Dm644 VERSION "$pkgdir/usr/lib/go/VERSION" + + rm -rf "$pkgdir/usr/lib/go/pkg/bootstrap" "$pkgdir/usr/lib/go/pkg/tool/*/api" + + # TODO: Figure out if really needed + rm -rf "$pkgdir"/usr/lib/go/pkg/obj/go-build + + install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} + +# vim: ts=2 sw=2 et +eval "$( + declare -f build | \ + sed ' + /install\( .*\)\? -race /d + ' + declare -f package_go-pie package | \ + sed ' + s,\(/linux_\)amd64\([_/]\),\1386\2,g + ' +)" + +eval "$( + declare -f build check _package \ + | sed ' + s/\(export GOARCH=\)amd64/\1386 / + ' +)" + +source+=('go-x87.patch') +sha256sums+=('8b124eaa7521bd0e3760b514829b1ecce3d3cd169f99c3629ff50b7769303802') +eval "$( + { + declare -f prepare || \ + printf 'prepare() { cd "$_pkgname" \n}\n' + } \ + | sed ' + $i patch -Np1 -i ../go-x87.patch + ' +)" + +# tests are failing, ignore them +unset check diff --git a/build-support/go16/go-x87.patch b/build-support/go16/go-x87.patch new file mode 100644 index 00000000..0c0a584b --- /dev/null +++ b/build-support/go16/go-x87.patch @@ -0,0 +1,28 @@ +diff -rauN go/src/buildall.bash go-x87-patch/src/buildall.bash +--- go/src/buildall.bash 2023-04-04 17:38:07.330008547 +0200 ++++ go-x87-patch/src/buildall.bash 2023-04-04 17:39:07.929938685 +0200 +@@ -37,6 +37,7 @@ + + gettargets() { + ../bin/go tool dist list | sed -e 's|/|-|' ++ echo linux-386-387 + echo linux-arm-arm5 + } + +@@ -63,11 +64,15 @@ + echo "### Building $target" + export GOOS=$(echo $target | sed 's/-.*//') + export GOARCH=$(echo $target | sed 's/.*-//') +- unset GOARM ++ unset GO386 GOARM + if [ "$GOARCH" = "arm5" ]; then + export GOARCH=arm + export GOARM=5 + fi ++ if [ "$GOARCH" = "387" ]; then ++ export GOARCH=386 ++ export GO386=387 ++ fi + + # Build and vet everything. + # cmd/go/internal/work/exec.go enables the same vet flags during go test of std cmd -- cgit v1.2.3-70-g09d2