[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
- [PATCH] AC_USE_SYSTEM_EXTENSIONS: port to recent ISO C,
Paul Eggert <=