https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78336
--- Comment #3 from David Edelsohn <dje at gcc dot gnu.org> --- So the problem is the reference to ASM_OUTPUT_DEF in rs6000_asm_weaken_decl, despite the fact that the function never will be called on Darwin. Previously the ASM_WEAKEN_DECL macro was protected by RS6000_WEAK and now the function -- with the reference to ASM_OUTPUT_DEF -- is defined regardless. The solutions include: 1) Bracket rs6000_asm_weaken_decl with #if RS6000_WEAK to match the previous logic. 2) Bracket rs6000_asm_weaken_decl with #ifdef ASM_OUTPUT_DEF. 3) Bracket the call to ASM_OUTPUT_DEF with #ifdef ASM_OUTPUT_DEF. 4) Create a no-op definition of ASM_OUTPUT_DEF on Darwin in darwin.h, similar to xcoff.h.