autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] AC_USE_SYSTEM_EXTENSIONS: port to recent ISO C


From: Paul Eggert
Subject: [PATCH] AC_USE_SYSTEM_EXTENSIONS: port to recent ISO C
Date: Tue, 13 Sep 2016 18:29:10 -0700

* lib/autoconf/specific.m4 (AC_USE_SYSTEM_EXTENSIONS):
Also define __STDC_WANT_IEC_60559_BFP_EXT__,
__STDC_WANT_IEC_60559_FUNCS_EXT__, and __STDC_WANT_LIB_EXT2__.
* NEWS, doc/autoconf.texi (Posix Variants):
Document this.  Also, document other changes in this area
that were not properly documented before.
---
 NEWS                     |  5 +++--
 doc/autoconf.texi        | 49 ++++++++++++++++++++++++++++++++++++------------
 lib/autoconf/specific.m4 | 17 ++++++++++++++++-
 3 files changed, 56 insertions(+), 15 deletions(-)

diff --git a/NEWS b/NEWS
index 5f05ad6..43918bb 100644
--- a/NEWS
+++ b/NEWS
@@ -58,8 +58,9 @@ GNU Autoconf NEWS - User visible changes.
   by default it no longer warns about Bison extensions.  Add -Wyacc to
   YFLAGS to enable these warnings.
 
-- AC_USE_SYSTEM_EXTENSIONS now enables more system extensions on HP-UX,
-  MINIX 3, and OS X.
+- 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.
 
 - 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 ddbeddf..d3ccf19 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -8588,15 +8588,21 @@ extensions to C, as well as platform extensions not 
defined by Posix.
 @anchor{AC_USE_SYSTEM_EXTENSIONS}
 @defmac AC_USE_SYSTEM_EXTENSIONS
 @acindex{USE_SYSTEM_EXTENSIONS}
address@hidden _ALL_SOURCE
 @cvindex _GNU_SOURCE
address@hidden _ALL_SOURCE
address@hidden _DARWIN_C_SOURCE
 @cvindex _MINIX
address@hidden _NETBSD_SOURCE
 @cvindex _POSIX_1_SOURCE
 @cvindex _POSIX_PTHREAD_SEMANTICS
 @cvindex _POSIX_SOURCE
 @cvindex _TANDEM_SOURCE
address@hidden _XOPEN_SOURCE
 @cvindex __EXTENSIONS__
-This macro was introduced in Autoconf 2.60.  If possible, enable
address@hidden __STDC_WANT_IEC_60559_BFP_EXT__
address@hidden __STDC_WANT_IEC_60559_FUNCS_EXT__
address@hidden __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
 called before any macros that run the C compiler.  The following
@@ -8605,22 +8611,41 @@ preprocessor macros are defined where appropriate:
 @table @code
 @item _GNU_SOURCE
 Enable extensions on GNU/Linux.
address@hidden __EXTENSIONS__
-Enable general extensions on Solaris.
address@hidden _POSIX_PTHREAD_SEMANTICS
-Enable threading extensions on Solaris.
address@hidden _TANDEM_SOURCE
-Enable extensions for the HP NonStop platform.
 @item _ALL_SOURCE
 Enable extensions for AIX 3, and for Interix.
address@hidden _POSIX_SOURCE
-Enable Posix functions for Minix.
address@hidden _POSIX_1_SOURCE
-Enable additional Posix functions for Minix.
address@hidden _DARWIN_C_SOURCE
+Enable extensions for macOS.
 @item _MINIX
 Identify Minix platform.  This particular preprocessor macro is
 obsolescent, and may be removed in a future release of Autoconf.
address@hidden _NETBSD_SOURCE
+Enable NetBSD-related extensions for Minix.
address@hidden _POSIX_1_SOURCE
+Enable additional Posix functions for Minix.
address@hidden _POSIX_PTHREAD_SEMANTICS
+Enable threading extensions on Solaris.
address@hidden _POSIX_SOURCE
+Enable Posix functions for Minix.
address@hidden _TANDEM_SOURCE
+Enable extensions for the HP NonStop platform.
address@hidden _XOPEN_SOURCE
+Enable X/Open extensions for HP-UX.
address@hidden __EXTENSIONS__
+Enable general extensions on Solaris.
address@hidden __STDC_WANT_IEC_60559_BFP_EXT__
+Enable extensions specified by ISO/IEC TS 18661-1:2014.
address@hidden __STDC_WANT_IEC_60559_FUNCS_EXT__
+Enable extensions specified by ISO/IEC TS 18661-4:2015.
address@hidden __STDC_WANT_LIB_EXT2__
+Enable extensions specified by ISO/IEC TR 24731-2:2010.
 @end table
+
+The macro @code{__STDC_WANT_LIB_EXT1__} is not defined, as C11 Annex K
+is problematic.  See: O'Donell C, Sebor M.
address@hidden://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.
 @end defmac
 
 
diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
index e665b90..ad77be8 100644
--- a/lib/autoconf/specific.m4
+++ b/lib/autoconf/specific.m4
@@ -387,7 +387,7 @@ dnl configure.ac when using autoheader 2.62.
 #ifndef _ALL_SOURCE
 # undef _ALL_SOURCE
 #endif
-/* Enable general extensions on OS X.  */
+/* Enable general extensions on macOS.  */
 #ifndef _DARWIN_C_SOURCE
 # undef _DARWIN_C_SOURCE
 #endif
@@ -399,6 +399,18 @@ 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-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-4:2015.  */
+#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
+# undef __STDC_WANT_IEC_60559_FUNCS_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 on HP NonStop.  */
 #ifndef _TANDEM_SOURCE
 # undef _TANDEM_SOURCE
@@ -428,6 +440,9 @@ 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_BFP_EXT__])
+  AC_DEFINE([__STDC_WANT_IEC_60559_FUNCS_EXT__])
+  AC_DEFINE([__STDC_WANT_LIB_EXT2__])
   AC_DEFINE([_TANDEM_SOURCE])
   AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined],
     [ac_cv_should_define__xopen_source],
-- 
2.7.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]