Re: Softfloat on i386
David Brownlee <[email protected]>
| Newsgroups | gmane.os.netbsd.devel.packages |
|---|---|
| Message-ID | <CAGN_6paprSkTCQRQ42AArWYO5odxhKJG6JvHLpMeiXXu5XHzmg@mail.gmail.com> |
On Thu, 15 Jan 2026 at 02:04, Taylor R Campbell <[email protected]> wrote: > > > Date: Tue, 13 Jan 2026 10:37:20 +0000 > > From: David Brownlee <[email protected]> > > > > It also affects a wide range of embedded 586 class CPUs, such as the > > Geode LX, as used in the PC Engines ALIX series. > > > > While these are obsolete by modern standards, all 32 bit x86 CPUs are > > obsolete by modern standards. > > > > As such, I'd like to call for defaulting pkgsrc/lang/go to softfloat > > for NetBSD/i386. Having NetBSD provided go packages just coredump > > without apparent reason on a supported platform is a particularly bad > > look. > > I suggest you draft a PKG_OPTION for it first! Then, once it is shown > to work, we can discuss whether to flip it on by default (which is > probably a reasonable choice if it works). OK, so my test case for go breaking on non SSE2 capable x86 machines is the NetBSD/i386 wireguard-go binary, which is happy on a cpu with SSE2 but immediately chokes on a 586 embedded machine (waves at a PCEngines ALIX). Adding "GOOPT+= GO386=softfloat" and building a fresh go bootstrap (go14 -> go118 -> go120 -> go122 -> go125) in the build for wireguard-go That is, the following packages should have it (technically 123 and 124 are not used in a default build, but it should apply in case anyone tries to build them for a specific reason) - go120 - go122 - go123 - go124 - go125 And specifically *not* for the the following, which are used in the bootstrap build but do not support GO386=softfloat and error out on build if provided - go14 - go118 So... is this an options.mk for every go version >= 120, or something in go/version.mk (which seems better, but would be a little fussy as it is included before any go package sets its version, though PKGPATH could be checked?) Thanks David