5635cb5e57
GCC 11+ on Intel CI runners (Skylake-X, Ice Lake, Sapphire Rapids) emits AVX-512/AVX10 instructions for std::string / memcpy inlining that crash with SIGILL on AMD EPYC and older Intel without those extensions. Root cause: libstdc++ is statically linked into the binary, so the build host's instruction set becomes a hard runtime requirement. The CI binary crashed immediately on DNS2/DNS3 (AMD EPYC Milan) with: traps: trianglesd[...] trap invalid opcode ip:...e432 error:0 in trianglesd[...+af3000] Disassembly of the crash site (file offset 0x15b432): 62 f1 7f 08 6f 41 ff vmovdqu8 -0x10(%rcx), %xmm0 This is an AVX10/AVX-512 instruction emitted inside std::basic_string::basic_string (statically linked libstdc++). Fix: -march=x86-64-v2 -mtune=generic for all Linux x86_64 builds. v2 baseline (SSE4.2 + POPCNT + CMPXCHG16B) is from 2009 Nehalem and supported on every x86_64 CPU we ship to. Override-able via -DCMAKE_X86_64_BASELINE=OFF if a CPU-specific build is needed.