https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63793
--- Comment #12 from Iain Sandoe <iains at gcc dot gnu.org> --- caveat: I have not examined this bug… .. but I have the following patch in my Q (solves a problem when GAS is the assembler). This should not fire unless the configuration says that the assembler supports gotoff in data (which GAS does, of course) Otherwise, I'm not aware of any darwin-specific support for mcmodel= .. no-one has had time to look at it ... .. if the patch makes a difference, look for a config error. --- gcc_assert (!TARGET_64BIT); #endif /* We can't use @GOTOFF for text labels on VxWorks; see gotoff_operand. */ if (TARGET_64BIT || TARGET_VXWORKS_RTP) fprintf (file, "%s%s%d-%s%d\n", directive, LPREFIX, value, LPREFIX, rel); - else if (HAVE_AS_GOTOFF_IN_DATA) - fprintf (file, ASM_LONG "%s%d@GOTOFF\n", LPREFIX, value); #if TARGET_MACHO else if (TARGET_MACHO) { fprintf (file, ASM_LONG "%s%d-", LPREFIX, value); machopic_output_function_base_name (file); putc ('\n', file); } #endif + else if (HAVE_AS_GOTOFF_IN_DATA) + fprintf (file, ASM_LONG "%s%d@GOTOFF\n", LPREFIX, value); else asm_fprintf (file, ASM_LONG "%U%s+[.-%s%d]\n", GOT_SYMBOL_NAME, LPREFIX, value); } /* Generate either "mov $0, reg" or "xor reg, reg", as appropriate