https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113019
--- Comment #3 from ultrafine at gmx dot com --- Yeah, I'm looking forward to being able to compile this way: -march=x86-64 -mextra-arch=x86-64-v3 And do _nothing_ else and get a single binary. And then at runtime the appropriate code for the detected uArch gets executed. --- Comment #4 from ultrafine at gmx dot com --- To make it simple Linux distros seemingly want to be able to compile a single binary (application or shared library) which has two distinct code paths for different flavours of the x86-64 arch to extract maximum performance from it regardless of the CPU it's being executed on.