blob: 9c1f435d5302837cd37bd4e621d72844bae665ab [file] [log] [blame]
From daaca7f74f94d6a7a51d571156d5fbaba5ef9a87 Mon Sep 17 00:00:00 2001
From: Zack Weinberg <zackw@panix.com>
Date: Sun, 2 Apr 2023 21:03:30 -0400
Subject: [PATCH 11/29] Make AC_PROG_GCC_TRADITIONAL a compatibility alias for
AC_PROG_CC.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This macro is one of the last remaining internal uses of AC_EGREP_CPP.
It has only ever done anything useful with GCC, and GCC dropped
support for ‘traditional’ compilation in version 3.3 (released 2003)
so I do not think it is worth trying to preserve.
* lib/autoconf/c.m4 (AC_PROG_GCC_TRADITIONAL): Make into a
compatibility alias for AC_PROG_CC, similar to AC_PROG_CC_STDC.
* lib/autoconf/general.m4 (AC_EGREP_CPP): Remove stale comment.
* doc/autoconf.texi, NEWS: Document this change.
* tests/mktests.pl: Exclude AC_PROG_GCC_TRADITIONAL from
autoupdate tests.
Upstream-Status: Backport
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
NEWS | 7 +++++++
doc/autoconf.texi | 29 ++++++++++++++---------------
lib/autoconf/c.m4 | 30 ++++++------------------------
lib/autoconf/general.m4 | 2 --
tests/mktests.pl | 2 +-
5 files changed, 28 insertions(+), 42 deletions(-)
diff --git a/NEWS b/NEWS
index 6a106f155..53c57ff59 100644
--- a/NEWS
+++ b/NEWS
@@ -81,6 +81,13 @@ GNU Autoconf NEWS - User visible changes.
with plain apostrophes instead of the older GNU style `like this'
with grave accent and apostrophe.
+*** AC_PROG_GCC_TRADITIONAL no longer does anything.
+
+ This macro has had no useful effect since GCC dropped support for
+ traditional-mode compilation in version 3.3 (released in 2003), and
+ the systems that needed it are also long obsolete. It is now a
+ compatibility synonym for AC_PROG_CC.
+
** Notable bug fixes
*** Autoconf caches now use finer-grained timestamps.
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index 8db64d8bb..037c8055f 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -7764,20 +7764,6 @@ This macro is obsolescent, as current C compilers support prototypes.
New programs need not use this macro.
@end defmac
-@anchor{AC_PROG_GCC_TRADITIONAL}
-@defmac AC_PROG_GCC_TRADITIONAL
-@acindex{PROG_GCC_TRADITIONAL}
-@ovindex CC
-Add @option{-traditional} to output variable @code{CC} if using a
-GNU C compiler and @code{ioctl} does not work properly without
-@option{-traditional}. That usually happens when the fixed header files
-have not been installed on an old system.
-
-This macro is obsolescent, since current versions of the GNU C
-compiler fix the header files automatically when installed.
-@end defmac
-
-
@node C++ Compiler
@subsection C++ Compiler Characteristics
@@ -23986,7 +23972,8 @@ These days portable programs should use @code{waitpid}, not
@defmac AC_GCC_TRADITIONAL
@acindex{GCC_TRADITIONAL}
-Replaced by @code{AC_PROG_GCC_TRADITIONAL} (@pxref{AC_PROG_GCC_TRADITIONAL}).
+Replaced by @code{AC_PROG_GCC_TRADITIONAL} (@pxref{AC_PROG_GCC_TRADITIONAL}),
+which is itself obsolete.
@end defmac
@defmac AC_GETGROUPS_T
@@ -24369,6 +24356,18 @@ Now done by @code{AC_PROG_CC} (@pxref{AC_PROG_CC}).
Now done by @code{AC_PROG_CC} (@pxref{AC_PROG_CC}).
@end defmac
+@anchor{AC_PROG_GCC_TRADITIONAL}
+@defmac AC_PROG_GCC_TRADITIONAL
+@acindex{PROG_GCC_TRADITIONAL}
+Used to put GCC into ``traditional'' (pre-ISO C) compilation mode,
+on systems with headers that did not work correctly with a
+standard-compliant compiler. GCC has not supported traditional
+compilation in many years, and all of the systems that required this are
+long obsolete themselves. This macro is now a compatibility synonym for
+@code{AC_PROG_CC} (@pxref{AC_PROG_CC}).
+
+@end defmac
+
@defmac AC_PROGRAMS_CHECK
@acindex{PROGRAMS_CHECK}
Replaced by @code{AC_CHECK_PROGS} (@pxref{AC_CHECK_PROGS}).
diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4
index fef6c516d..33648b5b9 100644
--- a/lib/autoconf/c.m4
+++ b/lib/autoconf/c.m4
@@ -551,30 +551,6 @@ fi[]dnl
])# _AC_PROG_CC_G
-# AC_PROG_GCC_TRADITIONAL
-# -----------------------
-AC_DEFUN([AC_PROG_GCC_TRADITIONAL],
-[AC_REQUIRE([AC_PROG_CC])dnl
-if test $ac_cv_c_compiler_gnu = yes; then
- AC_CACHE_CHECK(whether $CC needs -traditional,
- ac_cv_prog_gcc_traditional,
-[ ac_pattern="Autoconf.*'x'"
- AC_EGREP_CPP($ac_pattern, [#include <sgtty.h>
-Autoconf TIOCGETP],
- ac_cv_prog_gcc_traditional=yes, ac_cv_prog_gcc_traditional=no)
-
- if test $ac_cv_prog_gcc_traditional = no; then
- AC_EGREP_CPP($ac_pattern, [#include <termio.h>
-Autoconf TCGETA],
- ac_cv_prog_gcc_traditional=yes)
- fi])
- if test $ac_cv_prog_gcc_traditional = yes; then
- CC="$CC -traditional"
- fi
-fi
-])# AC_PROG_GCC_TRADITIONAL
-
-
# AC_PROG_CC_C_O
# --------------
AC_DEFUN([AC_PROG_CC_C_O],
@@ -1675,6 +1651,12 @@ AU_DEFUN([AC_PROG_CC_STDC],
[$0 is obsolete; use AC_PROG_CC]
)
+# AC_PROG_GCC_TRADITIONAL
+# -----------------------
+AU_DEFUN([AC_PROG_GCC_TRADITIONAL],
+ [AC_REQUIRE([AC_PROG_CC])],
+ [$0 is obsolete; use AC_PROG_CC]
+)
# AC_C_BACKSLASH_A
# ----------------
diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4
index ecda0a51c..47d896d54 100644
--- a/lib/autoconf/general.m4
+++ b/lib/autoconf/general.m4
@@ -2766,8 +2766,6 @@ AU_DEFUN([AC_TRY_CPP],
# AC_EGREP_CPP(PATTERN, PROGRAM,
# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
# ------------------------------------------------------
-# Because this macro is used by AC_PROG_GCC_TRADITIONAL, which must
-# come early, it is not included in AC_BEFORE checks.
AC_DEFUN([AC_EGREP_CPP],
[AC_LANG_PREPROC_REQUIRE()dnl
AC_REQUIRE([_AC_PROG_EGREP_TRADITIONAL])dnl
diff --git a/tests/mktests.pl b/tests/mktests.pl
index effed0bca..81f63586c 100644
--- a/tests/mktests.pl
+++ b/tests/mktests.pl
@@ -112,7 +112,7 @@ my @ac_exclude_list = (
# Check all AU_DEFUN'ed macros with AT_CHECK_AU_MACRO, except these.
my @au_exclude_list = (
# Empty.
- qr/^AC_(C_CROSS|PROG_CC_(C[89]9|STDC))$/,
+ qr/^AC_(C_CROSS|PROG_(CC_(C[89]9|STDC)|GCC_TRADITIONAL))$/,
# Use AC_REQUIRE.
qr/^AC_(CYGWIN|MINGW32|EMXOS2)$/,
--
2.41.0