tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Softfloat on i386



On Thu, 15 Jan 2026 at 02:04, Taylor R Campbell <riastradh%netbsd.org@localhost> wrote:
>
> > Date: Tue, 13 Jan 2026 10:37:20 +0000
> > From: David Brownlee <abs%absd.org@localhost>
> >
> > 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


Home | Main Index | Thread Index | Old Index