Some early releases of AIX 6 include a malloc.h header with an incorrect use of "builtin" keyword:
#ifdef __cplusplus extern "C" { extern "builtin" char *__alloca (size_t); # define alloca __alloca } #endif /* def __cplusplus */ GCC is not too happy about this. Now that GCC mainline and 4.7 use C++ for bootstrap, this breaks bootstrap on a narrow range of AIX 6 systems. The following patch applies the same fix to the header file that IBM applied in its own update. Okay for trunk, 4.7 and 4.6? Thanks, David * inclhack.def (aix_malloc): New. * fixincl.x: Regenerate. * tests/base/malloc.h [AIX_MALLOC_CHECK]: New. Index: inclhack.def =================================================================== --- inclhack.def (revision 185739) +++ inclhack.def (working copy) @@ -370,6 +370,19 @@ }; /* + * malloc.h on AIX6 uses XLC++ specific builtin syntax + */ +fix = { + hackname = aix_malloc; + mach = "*-*-aix*"; + files = "malloc.h"; + select = "#ifdef __cplusplus"; + c_fix = format; + c_fix_arg = "#if (defined(__cplusplus) && defined(__IBMCPP__))"; + test_text = "#ifdef __cplusplus"; +}; + +/* * net/if_arp.h defines a variable fc_softc instead of adding a * typedef for the struct on AIX 5.2, 5.3, 6.1 and 7.1 */