laky Every X86 CPU supports a subset of all of the possible X86 Instructions. Over time, new instructions are added which perform certain operations more efficiently in hardware. For compatibility sake, all CPUs before AMD Zen and Intel Haswell are guaranteed to be compatible with all of the instructions available on the Core 2 series of CPUs. We compile all software on Solus with the Core 2 instruction sets for compatibility.
However, Intel submitted a change a few years back to ld
, which is responsible for determining which libraries are loaded when you run an application. This change allows ld
to use optimized libraries if they are available for your CPU. This allows us to compile some libraries a second time, but for compatibility with the newer instructions included with Haswell CPUs. Conveniently, Zen 1 is compatible with the Haswell-supported instruction sets, and represents the first AMD CPU which is mostly compatible with an Intel CPU since Core 2. @joebonrichie added a further patch to ld
which allows these Haswell optimized libraries to also be used by Zen 1 or newer CPUs, even though they aren't detected normally as Haswell-compatible. In certain situations, this allows Zen-based AMD CPUs to perform much faster than when running the default Core 2 libraries.