https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66319
--- Comment #3 from John David Anglin <danglin at gcc dot gnu.org> --- _HPUX_SOURCE is predefined for c++. This results in _INCLUDE_XOPEN_SOURCE_EXTENDED being defined but _XOPEN_SOURCE_EXTENDED is not predefined (see hunk in comment #1). This behavior dates back to this patch: https://gcc.gnu.org/ml/gcc-patches/2005-05/msg00589.html The HP-UX "ftw.h" header appears to be inconsistent in its use of the two defines, but I don't know the history. It seems _XOPEN_SOURCE and _XOPEN_SOURCE_EXTENDED need to be predefined when _HPUX_SOURCE is predefined for consistency with current standards. This will happen with current hpux compilers as long as flag_iso is not set, so I think gnu++98 will work.