I'm not sure if this is a packaging issue or a Spack core issue, but we've found some packages that don't respect the assigned CPU architecture target. With gromacs and libceed, as specced below, targeting x86_64_v3, the binaries end up with symbols that should only be present with AVX-512 compatibility enabled (this was the case on the machine where these were built, but that shouldn't matter). We need need to be able to install these from the binary repo and run on a ZEN2. They instead give 'illegal instruction' errors on that architecture.
spack find -dvl gromacs
-- linux-ubuntu24.04-x86_64_v3 / %c,cxx=gcc@13.3.0 --------------
2zq2kv3 gromacs@2026.1~cp2k+cuda~cufftmp~cycle_subcounters~double+gmxapi~heffte+hwloc~intel_provided_gcc~ipo~itt~mdrun_only+mpi+nblib~nosuffix~nvshmem~opencl+openmp~relaxed_double_precision+shared~sycl build_system=cmake build_type=Release cuda_arch:=80 generator=make openmp_max_threads=none
k3pbdgj cmake@3.31.11~doc+ncurses+ownlibs~qtgui build_system=generic build_type=Release
lnn2jzl curl@8.18.0~gssapi~ldap~libidn2~librtmp~libssh~libssh2+nghttp2 build_system=autotools libs:=shared,static tls:=openssl
f3ioizb nghttp2@1.67.1 build_system=autotools
jv7fosj diffutils@3.12 build_system=autotools
g3gqygu openssl@3.6.1~docs+shared build_system=generic certs=mozilla
sghkyxj ca-certificates-mozilla@2026-03-19 build_system=generic
gixftjv perl@5.42.0+cpanm+opcode+open+shared+threads build_system=generic
halbeor berkeley-db@18.1.40+cxx~docs+stl build_system=autotools patches:=26090f4,b231fcc
fdeyzed bzip2@1.0.8~debug~pic+shared build_system=generic
ix4abkw gdbm@1.26 build_system=autotools
r67tgvx readline@8.3 build_system=autotools patches:=21f0a03
4zop7nq ncurses@6.6~symlinks+termlib abi=none build_system=autotools patches:=7a351bc
fp3yliw zlib-ng@2.3.3+compat+new_strategies+opt+pic+shared build_system=autotools
gaqs4ab compiler-wrapper@1.0 build_system=generic
irnmc53 cuda@12.9.1~allow-unsupported-compilers~dev build_system=generic
cias5wd fftw@3.3.11+mpi~openmp~pfft_patches+shared build_system=autotools precision:=double,float
mob5yjf gcc@13.3.0+binutils+bootstrap~graphite+libsanitizer~mold~nvptx~piclibs~profiled~strip build_system=autotools build_type=RelWithDebInfo languages:='c,c++,fortran'
dwcz77v gcc-runtime@13.3.0 build_system=generic
jj453jr glibc@2.39 build_system=autotools
27tbysx gmake@4.4.1~guile build_system=generic
ptficeo hwloc@2.13.0~cairo~cuda~gl~level_zero~libudev+libxml2~nvml~opencl+pci~rocm build_system=autotools libs:=shared,static patches:=b4db98b
tsg6jbt libpciaccess@0.17 build_system=autotools
p7bulzn util-macros@1.20.2 build_system=autotools
tpadtin libxml2@2.15.1+pic~python+shared build_system=autotools
ckvl7de libiconv@1.18 build_system=autotools libs:=shared,static
g6zrvo4 xz@5.8.3~pic build_system=autotools libs:=shared,static
2bzx5cg mpich@4.3.2~argobots~cuda+fortran~hwloc+hydra~level_zero+libxml2+pci~rocm+romio~slurm~vci~verbs~wrapperrpath~xpmem build_system=autotools datatype-engine=auto device:=ch4 netmod:=ofi pmi=default
dkhrs2e openblas@0.3.32~bignuma~consistent_fpcsr+dynamic_dispatch+fortran~ilp64+locking+pic+shared~static build_system=makefile symbol_suffix=none threads=openmp
3a4iwvp pkgconf@2.5.1 build_system=autotools
==> 1 installed package
objdump -d $(spack location -i gromacs)/lib/libgromacs_mpi.so | grep -m5 -E 'zmm|k[0-7],|vpternlog|vpermt2|evex'
1165371: 62 f1 7d 48 ef c0 vpxord %zmm0,%zmm0,%zmm0
1165377: 62 f1 7c 48 28 c8 vmovaps %zmm0,%zmm1
116537d: 62 f1 7c 48 28 d0 vmovaps %zmm0,%zmm2
1165383: 62 f1 7c 48 28 d8 vmovaps %zmm0,%zmm3
1165389: 62 f1 7c 48 28 e0 vmovaps %zmm0,%zmm4
spack find -dvl libceed
-- linux-ubuntu24.04-x86_64_v3 / %c,cxx,fortran=gcc@13.3.0 ------
c5q3fsg libceed@0.12.0+cuda~debug~libxsmm~magma~occa~openmp~rocm+shared build_system=makefile commit=4018a20a98d451fac24765d3ddb936861647ce8d cuda_arch:=80
gaqs4ab compiler-wrapper@1.0 build_system=generic
irnmc53 cuda@12.9.1~allow-unsupported-compilers~dev build_system=generic
mob5yjf gcc@13.3.0+binutils+bootstrap~graphite+libsanitizer~mold~nvptx~piclibs~profiled~strip build_system=autotools build_type=RelWithDebInfo languages:='c,c++,fortran'
dwcz77v gcc-runtime@13.3.0 build_system=generic
jj453jr glibc@2.39 build_system=autotools
27tbysx gmake@4.4.1~guile build_system=generic
==> 1 installed package
objdump -d $(spack location -i gromacs)/lib/libgromacs_mpi.so | grep -m5 -E 'zmm|k[0-7],|vpternlog|vpermt2|e^Cx'
root@edf5642e5c2c:/# ^C
root@edf5642e5c2c:/# objdump -d $(spack location -i libceed)/lib/libceed.so | grep -m5 -E 'zmm|k[0-7],|vpternlog|vpermt2|evex'
11250: 62 f1 fd 48 10 bc 30 vmovupd 0x8(%rax,%rsi,1),%zmm7
1125b: 62 f1 c5 48 59 3c 31 vmulpd (%rcx,%rsi,1),%zmm7,%zmm7
11284: 62 f3 fd 48 1b f9 01 vextractf64x4 $0x1,%zmm7,%ymm1
11412: 62 f2 fd 48 19 f0 vbroadcastsd %xmm0,%zmm6
11420: 62 f1 fd 48 10 8c 30 vmovupd 0x8(%rax,%rsi,1),%zmm1
spack debug report
* **Spack:** 1.1.1 (https://github.com/spack/spack/commit/2e2169d5282d166f63e3ee4db8d4446c43cefa8a)
* **Builtin repo:** https://github.com/spack/spack-packages/commit/cb2b3bc26f9f4ff9d5ef261dda60e395cb88aa04
* **Python:** 3.12.12
* **Platform:** linux-ubuntu24.04-zen2
@eugeneswalker @jedbrown @jeremylt @tzanio @v-dobrev @eirrgang @junghans @mabraham
I'm not sure if this is a packaging issue or a Spack core issue, but we've found some packages that don't respect the assigned CPU architecture target. With gromacs and libceed, as specced below, targeting x86_64_v3, the binaries end up with symbols that should only be present with AVX-512 compatibility enabled (this was the case on the machine where these were built, but that shouldn't matter). We need need to be able to install these from the binary repo and run on a ZEN2. They instead give 'illegal instruction' errors on that architecture.
@eugeneswalker @jedbrown @jeremylt @tzanio @v-dobrev @eirrgang @junghans @mabraham