pkgsrc-Users archive

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

Re: Failure to build go on some 32bit port-i386 machines



On Tue, Apr 30, 2024 at 12:52:55AM +0200, Alexander Schreiber wrote:
> On Mon, Apr 29, 2024 at 04:14:52PM -0500, Jonathan A. Kollasch wrote:
> > On Mon, Apr 29, 2024 at 10:04:26PM +0200, Alexander Schreiber wrote:
> > > Hi,
> > > 
> > > I've been trying to build node_exporter-1.7.0nb3 on an Alix machine
> > > running port-i386 (CPU is an AMD Geode LX, i586 class, 32 bit), but with
> > > no success. Building node_exporter requires building go121-1.21.8 which
> > > requires go118-1.18.10nb1 which requires go14-1.4.3nb15. On the Alix,
> > > building go118 reliably dies with SIGILL. The prebuilt node_exporter
> > > package fetched via pkgin also has it's executable die with SIGILL
> > > on early startup (internal Go setup according to the core dump).
> > > 
> > > To narrow things down a little and because I don't have the hardware
> > > to test, I ran qemu with various Intel 32 bit CPU emulation targets:
> > >  - i486: go14 dies with SIGILL in build
> > >  - pentium: go118 dies with SIGILL in build
> > >  - pentium3: go118 dies with SIGLL in build
> > >  - n270: successfull build of node_exporter with all go-versions
> > >    needed
> > > 
> > > It looks like Go by now needs a sufficiently new 32 bit Intel (the n270
> > > is the newest 32bit Intel CPU qemu seems to support) just to build.
> > > 
> > > Does pkgsrc have a mechanism to signal:
> > >  - package is expected to build on arch ${arch-foo} (e.g. i386)
> > >  - but know not to build on CPUs X, Y, Z?
> > > 
> > > I suspect there isn't such a thing?
> > > 
> > > Also: NetBSD (10.0) _itself_ seems to be perfectly happy on that Alix,
> > > it's just go that is ... particular.
> > > 
> > > Kind regards,
> > >            Alex.
> > > -- 
> > > "Opportunity is missed by most people because it is dressed in overalls and
> > >  looks like work."                                      -- Thomas A. Edison
> > 
> > https://github.com/prometheus/node_exporter/issues/1568
> 
> I've kicked off a build with the env-vars in that bug, will report
> results.

Set env-vars:
  export GOARCH=386
  export GO386=387

and did make install for node_exporter. During the go118 build, that
got as far as:

 ----- snip -----

Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
runtime
runtime/internal/sys
internal/abi
internal/bytealg
internal/goos
internal/cpu
internal/goarch
runtime/internal/atomic
runtime/internal/math
internal/goexperiment
unsupported setting GO386=387. Consider using GO386=softfloat instead.

go tool dist: FAILED: /usr/pkgobj/lang/go118/work/go/pkg/tool/netbsd_386/compile -std -pack -o /tmp/go-tool-dist-551671284/internal/goarch/_go_.a -p internal/goarch -importcfg /tmp/go-tool-dist-551671284/internal/goarch/importcfg /usr/pkgobj/lang/go118/work/go/src/internal/goarch/goarch.go /usr/pkgounsupported setting GO386=387. Consider using GO386=softfloat instead.

 ----- snip -----

I'm going to try that, even though it feels kinda silly given that this
CPU very much _does_ have an integrated FPU.

Kind regards,
           Alex.
-- 
"Opportunity is missed by most people because it is dressed in overalls and
 looks like work."                                      -- Thomas A. Edison


Home | Main Index | Thread Index | Old Index