1 From daaca7f74f94d6a7a51d571156d5fbaba5ef9a87 Mon Sep 17 00:00:00 2001
2 From: Zack Weinberg <zackw@panix.com>
3 Date: Sun, 2 Apr 2023 21:03:30 -0400
4 Subject: [PATCH 11/29] Make AC_PROG_GCC_TRADITIONAL a compatibility alias for
7 Content-Type: text/plain; charset=UTF-8
8 Content-Transfer-Encoding: 8bit
10 This macro is one of the last remaining internal uses of AC_EGREP_CPP.
11 It has only ever done anything useful with GCC, and GCC dropped
12 support for ‘traditional’ compilation in version 3.3 (released 2003)
13 so I do not think it is worth trying to preserve.
15 * lib/autoconf/c.m4 (AC_PROG_GCC_TRADITIONAL): Make into a
16 compatibility alias for AC_PROG_CC, similar to AC_PROG_CC_STDC.
17 * lib/autoconf/general.m4 (AC_EGREP_CPP): Remove stale comment.
18 * doc/autoconf.texi, NEWS: Document this change.
19 * tests/mktests.pl: Exclude AC_PROG_GCC_TRADITIONAL from
22 Upstream-Status: Backport
23 Signed-off-by: Khem Raj <raj.khem@gmail.com>
26 doc/autoconf.texi | 29 ++++++++++++++---------------
27 lib/autoconf/c.m4 | 30 ++++++------------------------
28 lib/autoconf/general.m4 | 2 --
29 tests/mktests.pl | 2 +-
30 5 files changed, 28 insertions(+), 42 deletions(-)
32 diff --git a/NEWS b/NEWS
33 index 6a106f155..53c57ff59 100644
36 @@ -81,6 +81,13 @@ GNU Autoconf NEWS - User visible changes.
37 with plain apostrophes instead of the older GNU style `like this'
38 with grave accent and apostrophe.
40 +*** AC_PROG_GCC_TRADITIONAL no longer does anything.
42 + This macro has had no useful effect since GCC dropped support for
43 + traditional-mode compilation in version 3.3 (released in 2003), and
44 + the systems that needed it are also long obsolete. It is now a
45 + compatibility synonym for AC_PROG_CC.
49 *** Autoconf caches now use finer-grained timestamps.
50 diff --git a/doc/autoconf.texi b/doc/autoconf.texi
51 index 8db64d8bb..037c8055f 100644
52 --- a/doc/autoconf.texi
53 +++ b/doc/autoconf.texi
54 @@ -7764,20 +7764,6 @@ This macro is obsolescent, as current C compilers support prototypes.
55 New programs need not use this macro.
58 -@anchor{AC_PROG_GCC_TRADITIONAL}
59 -@defmac AC_PROG_GCC_TRADITIONAL
60 -@acindex{PROG_GCC_TRADITIONAL}
62 -Add @option{-traditional} to output variable @code{CC} if using a
63 -GNU C compiler and @code{ioctl} does not work properly without
64 -@option{-traditional}. That usually happens when the fixed header files
65 -have not been installed on an old system.
67 -This macro is obsolescent, since current versions of the GNU C
68 -compiler fix the header files automatically when installed.
73 @subsection C++ Compiler Characteristics
75 @@ -23986,7 +23972,8 @@ These days portable programs should use @code{waitpid}, not
77 @defmac AC_GCC_TRADITIONAL
78 @acindex{GCC_TRADITIONAL}
79 -Replaced by @code{AC_PROG_GCC_TRADITIONAL} (@pxref{AC_PROG_GCC_TRADITIONAL}).
80 +Replaced by @code{AC_PROG_GCC_TRADITIONAL} (@pxref{AC_PROG_GCC_TRADITIONAL}),
81 +which is itself obsolete.
84 @defmac AC_GETGROUPS_T
85 @@ -24369,6 +24356,18 @@ Now done by @code{AC_PROG_CC} (@pxref{AC_PROG_CC}).
86 Now done by @code{AC_PROG_CC} (@pxref{AC_PROG_CC}).
89 +@anchor{AC_PROG_GCC_TRADITIONAL}
90 +@defmac AC_PROG_GCC_TRADITIONAL
91 +@acindex{PROG_GCC_TRADITIONAL}
92 +Used to put GCC into ``traditional'' (pre-ISO C) compilation mode,
93 +on systems with headers that did not work correctly with a
94 +standard-compliant compiler. GCC has not supported traditional
95 +compilation in many years, and all of the systems that required this are
96 +long obsolete themselves. This macro is now a compatibility synonym for
97 +@code{AC_PROG_CC} (@pxref{AC_PROG_CC}).
101 @defmac AC_PROGRAMS_CHECK
102 @acindex{PROGRAMS_CHECK}
103 Replaced by @code{AC_CHECK_PROGS} (@pxref{AC_CHECK_PROGS}).
104 diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4
105 index fef6c516d..33648b5b9 100644
106 --- a/lib/autoconf/c.m4
107 +++ b/lib/autoconf/c.m4
108 @@ -551,30 +551,6 @@ fi[]dnl
112 -# AC_PROG_GCC_TRADITIONAL
113 -# -----------------------
114 -AC_DEFUN([AC_PROG_GCC_TRADITIONAL],
115 -[AC_REQUIRE([AC_PROG_CC])dnl
116 -if test $ac_cv_c_compiler_gnu = yes; then
117 - AC_CACHE_CHECK(whether $CC needs -traditional,
118 - ac_cv_prog_gcc_traditional,
119 -[ ac_pattern="Autoconf.*'x'"
120 - AC_EGREP_CPP($ac_pattern, [#include <sgtty.h>
122 - ac_cv_prog_gcc_traditional=yes, ac_cv_prog_gcc_traditional=no)
124 - if test $ac_cv_prog_gcc_traditional = no; then
125 - AC_EGREP_CPP($ac_pattern, [#include <termio.h>
127 - ac_cv_prog_gcc_traditional=yes)
129 - if test $ac_cv_prog_gcc_traditional = yes; then
130 - CC="$CC -traditional"
133 -])# AC_PROG_GCC_TRADITIONAL
138 AC_DEFUN([AC_PROG_CC_C_O],
139 @@ -1675,6 +1651,12 @@ AU_DEFUN([AC_PROG_CC_STDC],
140 [$0 is obsolete; use AC_PROG_CC]
143 +# AC_PROG_GCC_TRADITIONAL
144 +# -----------------------
145 +AU_DEFUN([AC_PROG_GCC_TRADITIONAL],
146 + [AC_REQUIRE([AC_PROG_CC])],
147 + [$0 is obsolete; use AC_PROG_CC]
152 diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4
153 index ecda0a51c..47d896d54 100644
154 --- a/lib/autoconf/general.m4
155 +++ b/lib/autoconf/general.m4
156 @@ -2766,8 +2766,6 @@ AU_DEFUN([AC_TRY_CPP],
157 # AC_EGREP_CPP(PATTERN, PROGRAM,
158 # [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
159 # ------------------------------------------------------
160 -# Because this macro is used by AC_PROG_GCC_TRADITIONAL, which must
161 -# come early, it is not included in AC_BEFORE checks.
162 AC_DEFUN([AC_EGREP_CPP],
163 [AC_LANG_PREPROC_REQUIRE()dnl
164 AC_REQUIRE([_AC_PROG_EGREP_TRADITIONAL])dnl
165 diff --git a/tests/mktests.pl b/tests/mktests.pl
166 index effed0bca..81f63586c 100644
167 --- a/tests/mktests.pl
168 +++ b/tests/mktests.pl
169 @@ -112,7 +112,7 @@ my @ac_exclude_list = (
170 # Check all AU_DEFUN'ed macros with AT_CHECK_AU_MACRO, except these.
171 my @au_exclude_list = (
173 - qr/^AC_(C_CROSS|PROG_CC_(C[89]9|STDC))$/,
174 + qr/^AC_(C_CROSS|PROG_(CC_(C[89]9|STDC)|GCC_TRADITIONAL))$/,
177 qr/^AC_(CYGWIN|MINGW32|EMXOS2)$/,