mirror of
https://github.com/xcat2/xcat-dep.git
synced 2026-10-17 17:20:31 +00:00
6cfa286039
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>