Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/extra/go/PKGBUILD
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2023-05-22 20:18:50 +0200
committerErich Eckner <git@eckner.net>2023-05-22 20:18:50 +0200
commite74cde76c104df82b120a7b13964cb786da8f565 (patch)
tree39967e24037929c04aaf79922aa260b437a60a5e /extra/go/PKGBUILD
parent73e1d3b448cc583ab38cae4d61a26f313fad946b (diff)
community -> extra
Diffstat (limited to 'extra/go/PKGBUILD')
-rw-r--r--extra/go/PKGBUILD52
1 files changed, 52 insertions, 0 deletions
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')