Next: , Previous: , Up: Existing Tests   [Contents][Index]


5.12 C and Posix Variants

The following macro makes it possible to use C language and library extensions defined by the C standards committee, features of Posix that are extensions to C, and platform extensions not defined by Posix.

Macro: AC_USE_SYSTEM_EXTENSIONS

If possible, enable extensions to C or Posix on hosts that normally disable the extensions, typically due to standards-conformance namespace issues. This should be called before any macros that run the C compiler. Also, when using this macro in concert with AC_CONFIG_HEADERS, be sure that config.h is included before any system header.

The following preprocessor macros are defined unconditionally:

_ALL_SOURCE

Enable extensions on AIX 3 and Interix.

_DARWIN_C_SOURCE

Enable extensions on macOS.

_GNU_SOURCE

Enable extensions on GNU systems.

_NETBSD_SOURCE

Enable general extensions on NetBSD. Enable NetBSD compatibility extensions on Minix.

_OPENBSD_SOURCE

Enable OpenBSD compatibility extensions on NetBSD. Oddly enough, this does nothing on OpenBSD.

_POSIX_PTHREAD_SEMANTICS

Enable Posix-compatible threading on Solaris.

__STDC_WANT_IEC_60559_ATTRIBS_EXT__

Enable extensions specified by ISO/IEC TS 18661-5:2014.

__STDC_WANT_IEC_60559_BFP_EXT__

Enable extensions specified by ISO/IEC TS 18661-1:2014.

__STDC_WANT_IEC_60559_DFP_EXT__

Enable extensions specified by ISO/IEC TS 18661-2:2015.

__STDC_WANT_IEC_60559_FUNCS_EXT__

Enable extensions specified by ISO/IEC TS 18661-4:2015.

__STDC_WANT_IEC_60559_TYPES_EXT__

Enable extensions specified by ISO/IEC TS 18661-3:2015.

__STDC_WANT_LIB_EXT2__

Enable extensions specified by ISO/IEC TR 24731-2:2010.

__STDC_WANT_MATH_SPEC_FUNCS__

Enable extensions specified by ISO/IEC 24747:2009.

_TANDEM_SOURCE

Enable extensions on HP NonStop systems.

The following preprocessor macros are defined only when necessary; they enable access to extensions on some operating systems but disable extensions on other operating systems.

__EXTENSIONS__

Enable general extensions on Solaris. This macro is defined only if the headers included by AC_INCLUDES_DEFAULT (see Default Includes) work correctly with it defined.

_MINIX
_POSIX_SOURCE
_POSIX_1_SOURCE

Defined only on MINIX. _POSIX_SOURCE and _POSIX_1_SOURCE are needed to enable a number of POSIX features on this OS. _MINIX does not affect the system headers’ behavior; future versions of Autoconf may stop defining it. Programs that need to recognize Minix should use AC_CANONICAL_HOST.

_XOPEN_SOURCE

Defined (with value 500) only if needed to make wchar.h declare mbstate_t. This is known to be necessary on some versions of HP/UX.

The C preprocessor macro __STDC_WANT_DEC_FP__ is not defined. ISO/IEC TR 24732:2009 was superseded by ISO/IEC TS 18661-2:2015.

The C preprocessor macro __STDC_WANT_LIB_EXT1__ is not defined, as C11 Annex K is problematic. See: O’Donell C, Sebor M. Field Experience With Annex K—Bounds Checking Interfaces.

The Autoconf macro AC_USE_SYSTEM_EXTENSIONS was introduced in Autoconf 2.60.


Next: Erlang Libraries, Previous: System Services, Up: Existing Tests   [Contents][Index]