Thanks, I installed the attached additional patch to Autoconf master and
plan to propagate this to Gnulib shortly.
From 0c416cdb46e719b68d8439a6e4436b50bf870176 Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email protected]>
Date: Thu, 15 Sep 2016 10:08:56 -0700
Subject: [PATCH] AC_USE_SYSTEM_EXTENSIONS: port to more ISO C TSes
* doc/autoconf.texi (C and Posix Variants): Rename from "Posix
Variants", and document updated behavior.
* lib/autoconf/specific.m4 (AC_USE_SYSTEM_EXTENSIONS): Also define
__STDC_WANT_IEC_60559_ATTRIBS_EXT__,
__STDC_WANT_IEC_60559_DFP_EXT__,
__STDC_WANT_IEC_60559_TYPES_EXT__, and
__STDC_WANT_MATH_SPEC_FUNCS__. From a suggestion by Joseph Myers in:
http://lists.gnu.org/archive/html/autoconf-patches/2016-09/msg00011.html
---
NEWS | 4 +--
doc/autoconf.texi | 65 +++++++++++++++++++++++++++++++-----------------
lib/autoconf/specific.m4 | 20 +++++++++++++++
3 files changed, 64 insertions(+), 25 deletions(-)
diff --git a/NEWS b/NEWS
index 43918bb..a4c53dd 100644
--- a/NEWS
+++ b/NEWS
@@ -59,8 +59,8 @@ GNU Autoconf NEWS - User visible changes.
YFLAGS to enable these warnings.
- AC_USE_SYSTEM_EXTENSIONS now enables more extensions on HP-UX,
- macOS, and MINIX, as well as on systems conforming to ISO/IEC TR
- 24731-2:2010, ISO/IEC TS 18661-1:2014, and ISO/IEC TS 18661-4:2015.
+ macOS, and MINIX, as well as on systems conforming to recent
+ ISO/IEC C technical reports and specifications.
- AC_CHECK_DECL and AC_CHECK_DECLS can now report missing declarations for
functions that are also Clang compiler builtins.
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index 4f041bd..36e1938 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -363,7 +363,7 @@ Existing Tests
* Types:: Types that might be missing
* Compilers and Preprocessors:: Checking for compiling programs
* System Services:: Operating system services
-* Posix Variants:: Special kludges for specific Posix variants
+* C and Posix Variants:: Kludges for C and Posix variants
* Erlang Libraries:: Checking for the existence of Erlang libraries
Common Behavior
@@ -3838,7 +3838,7 @@ Symbols}, for how to get those symbol definitions into your program.
* Types:: Types that might be missing
* Compilers and Preprocessors:: Checking for compiling programs
* System Services:: Operating system services
-* Posix Variants:: Special kludges for specific Posix variants
+* C and Posix Variants:: Kludges for C and Posix variants
* Erlang Libraries:: Checking for the existence of Erlang libraries
@end menu
@@ -8606,29 +8606,16 @@ system. If so, set the shell variable @code{ac_cv_sys_posix_termios} to
@samp{yes}. If not, set the variable to @samp{no}.
@end defmac
-@node Posix Variants
-@section Posix Variants
+@node C and Posix Variants
+@section C and Posix Variants
-The following macro makes it possible to use features of Posix that are
-extensions to C, as well as platform extensions not defined by Posix.
+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.
@anchor{AC_USE_SYSTEM_EXTENSIONS}
@defmac AC_USE_SYSTEM_EXTENSIONS
@acindex{USE_SYSTEM_EXTENSIONS}
-@cvindex _GNU_SOURCE
-@cvindex _ALL_SOURCE
-@cvindex _DARWIN_C_SOURCE
-@cvindex _MINIX
-@cvindex _NETBSD_SOURCE
-@cvindex _POSIX_1_SOURCE
-@cvindex _POSIX_PTHREAD_SEMANTICS
-@cvindex _POSIX_SOURCE
-@cvindex _TANDEM_SOURCE
-@cvindex _XOPEN_SOURCE
-@cvindex __EXTENSIONS__
-@cvindex __STDC_WANT_IEC_60559_BFP_EXT__
-@cvindex __STDC_WANT_IEC_60559_FUNCS_EXT__
-@cvindex __STDC_WANT_LIB_EXT2__
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
@@ -8637,42 +8624,74 @@ preprocessor macros are defined where appropriate:
@table @code
@item _GNU_SOURCE
+@cvindex _GNU_SOURCE
Enable extensions on GNU/Linux.
@item _ALL_SOURCE
+@cvindex _ALL_SOURCE
Enable extensions for AIX 3, and for Interix.
@item _DARWIN_C_SOURCE
+@cvindex _DARWIN_C_SOURCE
Enable extensions for macOS.
@item _MINIX
+@cvindex _MINIX
Identify Minix platform. This particular preprocessor macro is
obsolescent, and may be removed in a future release of Autoconf.
@item _NETBSD_SOURCE
+@cvindex _NETBSD_SOURCE
Enable NetBSD-related extensions for Minix.
@item _POSIX_1_SOURCE
+@cvindex _POSIX_1_SOURCE
Enable additional Posix functions for Minix.
@item _POSIX_PTHREAD_SEMANTICS
+@cvindex _POSIX_PTHREAD_SEMANTICS
Enable threading extensions on Solaris.
@item _POSIX_SOURCE
+@cvindex _POSIX_SOURCE
Enable Posix functions for Minix.
@item _TANDEM_SOURCE
+@cvindex _TANDEM_SOURCE
Enable extensions for the HP NonStop platform.
@item _XOPEN_SOURCE
+@cvindex _XOPEN_SOURCE
Enable X/Open extensions for HP-UX.
@item __EXTENSIONS__
+@cvindex __EXTENSIONS__
Enable general extensions on Solaris.
+@item __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+@cvindex __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+Enable extensions specified by ISO/IEC TS 18661-5:2014.
@item __STDC_WANT_IEC_60559_BFP_EXT__
+@cvindex __STDC_WANT_IEC_60559_BFP_EXT__
Enable extensions specified by ISO/IEC TS 18661-1:2014.
+@item __STDC_WANT_IEC_60559_DFP_EXT__
+@cvindex __STDC_WANT_IEC_60559_DFP_EXT__
+Enable extensions specified by ISO/IEC TS 18661-2:2015.
@item __STDC_WANT_IEC_60559_FUNCS_EXT__
+@cvindex __STDC_WANT_IEC_60559_FUNCS_EXT__
Enable extensions specified by ISO/IEC TS 18661-4:2015.
+@item __STDC_WANT_IEC_60559_TYPES_EXT__
+@cvindex __STDC_WANT_IEC_60559_TYPES_EXT__
+Enable extensions specified by ISO/IEC TS 18661-3:2015.
@item __STDC_WANT_LIB_EXT2__
+@cvindex __STDC_WANT_LIB_EXT2__
Enable extensions specified by ISO/IEC TR 24731-2:2010.
+@item __STDC_WANT_MATH_SPEC_FUNCS__
+@cvindex __STDC_WANT_MATH_SPEC_FUNCS__
+Enable extensions specified by ISO/IEC TR 24747:2009.
@end table
-The macro @code{__STDC_WANT_LIB_EXT1__} is not defined, as C11 Annex K
-is problematic. See: O'Donell C, Sebor M.
+@cvindex __STDC_WANT_DEC_FP__
+The C preprocessor macro @code{__STDC_WANT_DEC_FP__} is not defined.
+ISO/IEC TR 24732:2009 was superseded by ISO/IEC TS 18661-2:2015.
+
+@cvindex __STDC_WANT_LIB_EXT1__
+The C preprocessor macro @code{__STDC_WANT_LIB_EXT1__} is not defined,
+as C11 Annex K is problematic. See: O'Donell C, Sebor M.
@uref{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1967.htm, Field
Experience With Annex K---Bounds Checking Interfaces}.
-This macro was introduced in Autoconf 2.60.
+The Autoconf macro @code{AC_USE_SYSTEM_EXTENSIONS} was introduced in
+Autoconf 2.60.
@end defmac
diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
index ad77be8..db47fbb 100644
--- a/lib/autoconf/specific.m4
+++ b/lib/autoconf/specific.m4
@@ -399,18 +399,34 @@ dnl configure.ac when using autoheader 2.62.
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#endif
+/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */
+#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+# undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+#endif
/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */
#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
# undef __STDC_WANT_IEC_60559_BFP_EXT__
#endif
+/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */
+#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
+# undef __STDC_WANT_IEC_60559_DFP_EXT__
+#endif
/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */
#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
# undef __STDC_WANT_IEC_60559_FUNCS_EXT__
#endif
+/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */
+#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
+# undef __STDC_WANT_IEC_60559_TYPES_EXT__
+#endif
/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */
#ifndef __STDC_WANT_LIB_EXT2__
# undef __STDC_WANT_LIB_EXT2__
#endif
+/* Enable extensions specified by ISO/IEC TR 24747:2009. */
+#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
+# undef __STDC_WANT_MATH_SPEC_FUNCS__
+#endif
/* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE
# undef _TANDEM_SOURCE
@@ -440,9 +456,13 @@ dnl configure.ac when using autoheader 2.62.
AC_DEFINE([_DARWIN_C_SOURCE])
AC_DEFINE([_GNU_SOURCE])
AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
+ AC_DEFINE([__STDC_WANT_IEC_60559_ATTRIBS_EXT__])
AC_DEFINE([__STDC_WANT_IEC_60559_BFP_EXT__])
+ AC_DEFINE([__STDC_WANT_IEC_60559_DFP_EXT__])
AC_DEFINE([__STDC_WANT_IEC_60559_FUNCS_EXT__])
+ AC_DEFINE([__STDC_WANT_IEC_60559_TYPES_EXT__])
AC_DEFINE([__STDC_WANT_LIB_EXT2__])
+ AC_DEFINE([__STDC_WANT_MATH_SPEC_FUNCS__])
AC_DEFINE([_TANDEM_SOURCE])
AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined],
[ac_cv_should_define__xopen_source],
--
2.7.4