Re: [PATCH] AC_USE_SYSTEM_EXTENSIONS: port to recent ISO C

Paul Eggert <[email protected]>
Newsgroups gmane.comp.sysutils.autoconf.patches
Organization UCLA Computer Science Department
Message-ID <[email protected]>
Thanks, I installed the attached additional patch to Autoconf master and 
plan to propagate this to Gnulib shortly.
0001-AC_USE_SYSTEM_EXTENSIONS-port-to-more-ISO-C-TSes.patch (application/x-patch, 8.6 KB)
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.