From e74cde76c104df82b120a7b13964cb786da8f565 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Mon, 22 May 2023 20:18:50 +0200 Subject: community -> extra --- extra/go/PKGBUILD | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ extra/go/go-x87.patch | 28 +++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 extra/go/PKGBUILD create mode 100644 extra/go/go-x87.patch (limited to 'extra/go') diff --git a/extra/go/PKGBUILD b/extra/go/PKGBUILD new file mode 100644 index 00000000..c4adc372 --- /dev/null +++ b/extra/go/PKGBUILD @@ -0,0 +1,52 @@ +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 / + ' +)" + +# 1.16 dropped non-SSE2 floating point operations, so we must +# use software floating points (see https://github.com/golang/go/issues/40255) +if [ "$CARCH" = 'i686' -o "$CARCH" = 'i486' ]; then + eval "$( + declare -f build \ + | sed ' + 2 a export GO386='softfloat' + ' + declare -f check \ + | sed ' + 2 a export GO386='softfloat' + ' + )" +fi + +# https://go-review.googlesource.com/c/go/+/257963 +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 + +# bootstrap via go17 +makedepends=(${makedepends[@]//go/}) +makedepends+=('go17') diff --git a/extra/go/go-x87.patch b/extra/go/go-x87.patch new file mode 100644 index 00000000..0c0a584b --- /dev/null +++ b/extra/go/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