2
0
mirror of https://github.com/xcat2/xcat-dep.git synced 2026-10-17 17:20:31 +00:00
Files
xcat-dep/goconserver/debian
Daniel Hilst 6cfa286039 fix(xcat-dep): goconserver is built for x86-64-v3 and SIGILLs on an older node
One x86_64 goconserver binary is published for rh8, rh9 and rh10. `go version
-m` on it reports `build GOAMD64=v3`, and objdump counts 1731 v3-only
instructions. An Ivy Bridge node has AVX but no AVX2, BMI2 or FMA, so
goconserver stops with SIGILL and the xCAT console does not start.

No site asked for v3. goconserver/mockbuild.pl exported GOFLAGS, GOTOOLCHAIN
and CGO_ENABLED only, so the compile took the chroot default. EL10 raises its
platform baseline to x86-64-v3 and bakes GOAMD64=v3 into its golang, and the
el10 chroot is where that one binary is built.

Every site that compiles goconserver now sets GOAMD64=v1: the in-chroot
%build, the host cross-compile, the Debian build script and debian/rules. v1
and not v2, because the same rpm is published for rh8, whose own baseline is
plain x86-64. /proc/cpuinfo on rome01, xcat-master and xcat-master-ub reports
AMD EPYC 7H12 with avx2, bmi2 and fma on all three, so no lab host can
reproduce a SIGILL and the setting cannot be left to the builder.

The generated spec gains a %check, and debian/rules a gate, that read GOAMD64
out of the binaries that are about to be packaged.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-10-07 00:41:52 -03:00
..