https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117165
--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> --- >From i386-builtin.def: /* 80387 (for use internally for atomic compound assignment). */ BDESC (0, 0, CODE_FOR_fnstenv, "__builtin_ia32_fnstenv", IX86_BUILTIN_FNSTENV, UNKNOWN, (int) VOID_FTYPE_PVOID) BDESC (0, 0, CODE_FOR_fldenv, "__builtin_ia32_fldenv", IX86_BUILTIN_FLDENV, UNKNOWN, (int) VOID_FTYPE_PCVOID) BDESC (0, 0, CODE_FOR_fnstsw, "__builtin_ia32_fnstsw", IX86_BUILTIN_FNSTSW, UNKNOWN, (int) USHORT_FTYPE_VOID) BDESC (0, 0, CODE_FOR_fnclex, "__builtin_ia32_fnclex", IX86_BUILTIN_FNCLEX, UNKNOWN, (int) VOID_FTYPE_VOID) So, these builtins should not be used, let alone without 80387. We are deep into the "Doctor, it hurts when I do that..." area.