On Thu, Jan 01, 2026 at 09:30:54AM +1300, Lloyd Parkes wrote:
> > In PR 59871, the submitter is asking for all Go on i386 to be switched
> > to softfloat, so that the resulting binaries run in a 486.
> >
> > Is that a reasonable request? Are pkgsrc binary packages supposed to
> > run on 486 processors?
> >
> > Or should it be an option?
> >
> An actual Intel 486 supports hardfloat, although the built in FPU might not
> be feature rich enough for some modern compilers (speculation). The Intel
> 486SX is a specially cut down 486 with no hardfloat and I've seen that
> implemented by CPU clone makers.
>
> I wouldn't object to softfloat being a pkgsrc option for 486SX users.
The problem is that go is a compiler and it apparently only supports
codegen for either (a) sse2 and newer or (b) softfloat. This means
there's a range of non-486SX (and non-486) machines where the only
working option is softfloat.
Given the performance cost of softfloat and that we're talking about
very old machines at this point, i don't think it should be the
default for "i386" (as in 32-bit x86), but it should be an option and
somewhere in the setup docs we should tell people to set it if they're
using such hardware. (Also it might be worth making go builds fail if
it's not set when on such a machine.)
This does to some extent raise the question of what the intended
purpose of the 32-bit x86 binary builds is these days...
As always, save compile time for slower machine(s) .. Or provide big packages you realistically can only build on much faster hardware.
Emulators, also. 86Box does not go above pentium-2, but does have much richer selection of video/audio/network cards compared to qemu or Bochs.
Even qemu not always have kvm/nvmm capable host, so more advanced processor it forced to emulate - whole experience also will be slower.