Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build-support/go16/PKGBUILD110
-rw-r--r--build-support/go16/go-x87.patch28
2 files changed, 138 insertions, 0 deletions
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 <foxboron@archlinux.org>
+# Contributor: Daniel Martí <mvdan@mvdan.cc>
+# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
+# Contributor: Alexander F. Rødseth <xyproto@archlinux.org>
+# Contributor: Pierre Neidhardt <ambrevar@gmail.com>
+# Contributor: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Rémy Oudompheng <remy@archlinux.org>
+# Contributor: Andres Perera <andres87p gmail>
+# Contributor: Matthew Bauer <mjbauer95@gmail.com>
+# Contributor: Christian Himpel <chressie@gmail.com>
+# Contributor: Mike Rosset <mike.rosset@gmail.com>
+# Contributor: Daniel YC Lin <dlin.tw@gmail.com>
+# Contributor: John Luebs <jkluebs@gmail.com>
+
+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