https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85850
--- Comment #3 from Jürgen Reuter <juergen.reuter at desy dot de> --- Indeed, Janne is correct, this change in libcpp/system.h solves the problem, i.e. moving the <new> definition up: # diff -u system.h system.h.260425 --- system.h 2018-05-20 23:00:01.000000000 +0200 +++ system.h.260425 2018-05-20 22:55:27.000000000 +0200 @@ -370,10 +370,6 @@ #include "libiberty.h" #include "safe-ctype.h" -#ifdef __cplusplus -#include <new> -#endif - /* 1 if we have C99 designated initializers. ??? C99 designated initializers are not supported by most C++ @@ -442,6 +438,10 @@ /* Some compilers do not allow the use of unsigned char in bitfields. */ #define BOOL_BITFIELD unsigned int +#ifdef __cplusplus +#include <new> +#endif + /* Poison identifiers we do not want to use. */ #if (GCC_VERSION >= 3000) #undef calloc