http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52495
--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> 2012-08-17 01:13:29 UTC --- I also run into this. The bug is in rs6000.h: #ifdef HAVE_GAS_WEAK #define RS6000_WEAK 1 #else #define RS6000_WEAK 0 #endif #if RS6000_WEAK /* Used in lieu of ASM_WEAKEN_LABEL. */ #define ASM_WEAKEN_DECL(FILE, DECL, NAME, VAL) \ do \ { \ fputs ("\t.weak\t", (FILE)); \ RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \ if ((DECL) && TREE_CODE (DECL) == FUNCTION_DECL \ && DEFAULT_ABI == ABI_AIX && DOT_SYMBOLS) \ { \ if (TARGET_XCOFF) .. ASM_WEAKEN_DECL is used unconditionally.