On 2019/11/15 03:02, Ted Unangst wrote: > Stuart Henderson wrote: > > This runs OK on an i386 with more CPU features; most likely it wants > > SSE or similar which the Geode LX in your net5501 doesn't have. (Go has > > runtime cpuid checks for most of the SSE variants but I think not for > > the original SSE which it probably just assumes is available). > > One clue would be if the disassembly has instructions referencing > > registers X0..X15 which are just used for SSE. > > go will autodetect 387 or sse2 based on the host. > > https://golang.org/doc/install/source#environment
On 2019/11/18 21:50, [email protected] wrote: > I think I may have found the problem: > https://github.com/golang/go/issues/20009#issuecomment-294437962 > > It looks like the ports machines building Go probably have SSE/SSE2, so > the resulting binary expects those to be present. > > I'm not sure what can be done short of building Go on my Soekris… I > can't fault anyone for using a more "modern" CPU when building the ports > tree for distribution. Oh, so the autodetect is like -mtune=auto in C compilers? yeuuw. I suppose we can do this (plus bump REVISION on all the go ports that build on i386 to trigger rebuilds). I don't see there being *all* that much point in having i386 packages if they don't run on soekris/alix... Thoughts? (+cc jsing) Index: Makefile =================================================================== RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.75 diff -u -p -r1.75 Makefile --- Makefile 24 Oct 2019 16:22:07 -0000 1.75 +++ Makefile 18 Nov 2019 21:56:56 -0000 @@ -55,6 +55,9 @@ GOARCH = arm64 GOARCH = 386 .endif +# don't use SSE on i386 +MAKE_ENV += GO386=387 + .for arch in ${BIN_BOOTSTRAP_GOARCHS} SUPDISTFILES += go-openbsd-${arch}-bootstrap-${BIN_BOOTSTRAP_VERSION}${EXTRACT_SUFX}:0 Index: go.port.mk =================================================================== RCS file: /cvs/ports/lang/go/go.port.mk,v retrieving revision 1.26 diff -u -p -r1.26 go.port.mk --- go.port.mk 6 Oct 2019 15:37:15 -0000 1.26 +++ go.port.mk 18 Nov 2019 21:56:56 -0000 @@ -33,7 +33,10 @@ MODGO_TYPE ?= bin MODGO_WORKSPACE ?= ${WRKDIR}/go MODGO_GOCACHE ?= ${WRKDIR}/go-cache MODGO_GOPATH ?= ${MODGO_WORKSPACE}:${MODGO_PACKAGE_PATH} -MAKE_ENV += GOCACHE="${MODGO_GOCACHE}" GOPATH="${MODGO_GOPATH}" GO111MODULE=off +MAKE_ENV += GOCACHE="${MODGO_GOCACHE}" \ + GOPATH="${MODGO_GOPATH}" \ + GO111MODULE=off \ + GO386=387 # ports are not allowed to fetch from the network at build time; point # GOPROXY at an unreachable host so that failures are also visible to # developers who don't have PORTS_PRIVSEP and a "deny .. _pbuild" PF rule.
