SPDK compiles with -march=native
-march=native causes gcc to use opcodes according to whichever CPU happens to be installed in the build host, which can be different for every build. This makes it impossible to achieve a reproducible build.
Also, if the build host has a very new CPU, running the resulting binaries on older CPUs (of the same family, i.e. x86_64) could result in segmentation fault.