https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117952
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- "Currently, we use %rbx as REAL_PIC_OFFSET_TABLE_REGNUM on x86_64." That changed in GCC 5 and that is the point there. So -mcpu=native will only fails with stage1 but will work with stage 2/3. This means the target libraries compiled with stage1 will not work. The other way of fixing this is to use see if you have __has_include and then include cpuid.h and use the macros there instead of how it is done currently.