Go
Test Log
1.15.7
https://deftly.net/patches/go-1.15.7.diff
| Arch | lang/go | Bulk | Tests |
|---|---|---|---|
| amd64 | y | OK | ALL TESTS PASSED |
| arm64 | y | Running | ALL TESTS PASSED |
| armv7 | y | - | Running |
| i386 | y | E=graphics/jbig2dec lang/rust graphics/lcms2 textproc/docbook-xsl | ALL TESTS PASSED |
1.16beta1
| Arch | lang/go | Bulk | Tests |
|---|---|---|---|
| amd64 | Y | E=sysutils/amazon-ssm-agent sysutils/fleetctl textproc/loccount lang/cython | FAIL cmd/compile/internal/logopt 6.767s, FAIL net/mail 0.073 |
| arm64 | |||
| mips64 | Y | FAIL net/mail 0.029s | |
| i386 | Y (needs GO386=softfloat, which isn't available on beta1) | ||
| arm | Y | FAIL cmd/trace 4.138s, FAIL net/mail 0.100s |
1.15
| Arch | go port build | Bulk | Apps | Tests |
|---|---|---|---|---|
| amd64 | Y | Y | Y | ALL TESTS PASSED |
| arm64 | Y | N | Y | Successive tests failed (same as before) |
| armv7 | Y | N | Y | ALL TESTS PASSED |
| i386 | - | - | - | - |
Issues
CANCELED Syncthing: sporadic crashes during tests
edd@ has run into an issue with a kqueue related crash with syncthing.
FIXED Race detector doesn't work
DONE Submit LLVM diff fo enable TSAN go stuff on OpenBSD
- D80469 Submitted!
- Landed! First commit to llvm \o/!
CANCELED Unable to compile PIE
- See PIE mode
Notes
go-* library removal
Since making the OpenBSD ports tree work with Go modules, we no longer need go-* libraries.
Last updated
| Removed | Library | Deps |
|---|---|---|
| [X] | devel/go-check-v1 | - |
| [ ] | devel/go-goptlib | net/obfs4proxy |
| [ ] | devel/go-sys | databases/influxdb devel/go-goptlib devel/go-tools mail/opensmtpd-filters/rspamd net/go-net net/obfs4proxy net/websocketd net/wireguard-go security/go-crypto security/go-ed25519 |
| [ ] | net/go-net | databases/influxdb devel/go-goptlib devel/go-tools net/obfs4proxy net/websocketd net/wireguard-go |
| [ ] | security/go-crypto | databases/influxdb devel/go-goptlib devel/go-tools net/go-net net/obfs4proxy net/websocketd net/wireguard-go security/go-ed25519 |
| [ ] | security/go-ed25519 | net/obfs4proxy |
| [ ] | security/go-siphash | net/obfs4proxy |
| [ ] | textproc/go-text | databases/influxdb devel/go-goptlib devel/go-tools net/go-net net/obfs4proxy net/websocketd net/wireguard-go |
| [X] | textproc/go-xlsx | textproc/xlsx2csv |
[X]xlsx2csv[X]mail sent[X]applied
[-]obfs4proxy[X]mail sent[ ]applied
[X]websocketd[X]mail sent[X]applied
[ ]wireguard-go (worth doing?) Talked with jasper@, will be removed come 6.8. He said it's removable now.[ ]mail sent[ ]applied
[ ]influxdb[ ]mail sent[ ]applied
[-]rspamd[X]mail sent (PR #37)[ ]applied
libc for syscalls
jsing@ is working on a change to make Go use OpenBSD's libc for syscalls.
- Last update on it was
- The issue for tracking is here: #36435
portgen
- Committed the Go portgen bits!
portgen issues
- FIXED
mod go graphseemingly not displaying all deps
A number of ports with large dependencies seem to need more dependencies than
mod go graphshows. For example:- github.com/gruntwork-io/terragrunt
- github.com/caddyserver/caddy/v2
What's interesting is that things build fine with
go buildoutside of the ports tree.- This was being caused by not properly getting a list of hard-deps. Switched to
calling
go list -m allto get a list of modules that are required (need .zip and .mod files).
PIE mode
Around I started working on PIE mode for Go amd64. Here is a diff to enable PIE on OpenBSD.
I got everything working:
- It is able to produce binaries.
- Tests pass.
However, about 50% of the time binaries produced with it die with a SIGSEGV.
- Sent a mail to h@ to see if anyone could help out. Worked a bit with jsing@, interestingly it works fine on single CPU machines.
Race detector
Requires a
race_${OS}_${ARCH}.sysofile produced via golang.org/x/build/cmd/racebuild.This tool requires gomote, and possibly some other bits, pulls down Go and LLVM, builds things and poops out a syso file.
- For
racebuildto work, LLVM compiler-rt/tsan/go and friends need to be updated to work with OpenBSD. Possibly similar to how it was done for NetBSD. - With this diff against LLVM and this diff against Go, I am able to test for
race conditions \o/ ! Running main() with
-racedisplays:
DONE Send in the diff to add race to OpenBSD \o/
==================
WARNING: DATA RACE
Write at 0x00c000072180 by goroutine 7:
runtime.mapassign_faststr()
/home/qbit/src/go/src/runtime/map_faststr.go:202 +0x0
main.main.func1()
/tmp/racy/main.go:9 +0x5d
Previous write at 0x00c000072180 by main goroutine:
runtime.mapassign_faststr()
/home/qbit/src/go/src/runtime/map_faststr.go:202 +0x0
main.main()
/tmp/racy/main.go:12 +0xcb
Goroutine 7 (running) created at:
main.main()
/tmp/racy/main.go:8 +0x9c
==================
Found 1 data race(s)
CANCELED Plugins
While looking at PIE mode - it seems like it wouldn't be too hard to make plugins work.
amd64
arm64
CANCELED Update port to be > 1.14
sparc64
There is currently a port of Go to sparc64 available here. It might be usable as a bootstrap for OpenBSD's port.
At the very least it will be a decent starting point.