https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117210
--- Comment #14 from Jonathan Wakely <redi at gcc dot gnu.org> --- Alternatively, we could just open code the conditions from sys/cdefs.h Both FreeBSD and DragonFlyBSD do: #if (__GNUC_PREREQ__(2, 0) && !defined(__STRICT_ANSI__)) || \ __STDC_VERSION__ >= 199901 #define __LONG_LONG_SUPPORTED #endif /* C++11 exposes a load of C99 stuff */ #if defined(__cplusplus) && __cplusplus >= 201103L #define __LONG_LONG_SUPPORTED This seems unlikely to change in future releases of those BSDs, so we could just use the same condition, i.e. !defined(__STRICT_ANSI__) || __cplusplus >= 201103L That would avoid including <sys/cdefs.h>. Although realistically, almost any compilation is going to end up including <sys/cdefs.h> eventually.