diff options
author | Zack Weinberg <zackw@panix.com> | 2020-09-10 12:10:41 -0400 |
---|---|---|
committer | Zack Weinberg <zackw@panix.com> | 2020-09-10 12:10:41 -0400 |
commit | b560f0a657be0ba69417d26589ffd93a26f62573 (patch) | |
tree | bccac8c77a244b43e9f165fe7d746ddc6ee925b0 /doc/autoconf.texi | |
parent | 14265094af1614d9e359550ca4a4939e590a5dba (diff) | |
download | autoconf-b560f0a657be0ba69417d26589ffd93a26f62573.tar.gz |
AC_PROG_*CPP: Try ‘cpp’ before ‘/lib/cpp’
All of the AC_PROG_*CPP macros fall back to ‘/lib/cpp’ if invoking the
relevant compiler with ‘-E’ doesn’t work. This is an obsolete
location to find the C preprocessor. Linux distributions tend to ship
a compatibility symlink, as do Solaris and AIX (as of the versions in the
GCC compile farm, anyway), but the BSDs no longer do.
The tests for this fallback are already expecting ‘cpp’ to be a
command findable via $PATH, so make the probe macros do the same
thing. (We still try ‘/lib/cpp’ if ‘cpp’ _isn’t_ in $PATH.)
* lib/autoconf/c.m4
(AC_PROG_CPP, AC_PROG_CXXCPP, AC_PROG_OBJCPP, AC_PROG_OBJCXXCPP):
If $CC / $CXX / $OBJC / $OBJCXX -E (respectively) does not run the
preprocessor, look for ‘cpp’ in $PATH before falling back to ‘/lib/cpp’.
* doc/autoconf.texi
(AC_PROG_CPP, AC_PROG_CXXCPP, AC_PROG_OBJCPP, AC_PROG_OBJCXXCPP):
Update to match.
Diffstat (limited to 'doc/autoconf.texi')
-rw-r--r-- | doc/autoconf.texi | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/doc/autoconf.texi b/doc/autoconf.texi index 43df8f32..4bd6e9e7 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -7371,7 +7371,9 @@ For the compiler @var{compiler}, this macro caches its result in the @evindex CPP @ovindex CPP Set output variable @code{CPP} to a command that runs the -C preprocessor. If @samp{$CC -E} doesn't work, @file{/lib/cpp} is used. +C preprocessor. If @samp{$CC -E} doesn't work, tries @code{cpp} and +@file{/lib/cpp}, in that order. + It is only portable to run @code{CPP} on files with a @file{.c} extension. @@ -7742,7 +7744,10 @@ C++, the @option{-std=gnu++@var{nn}} options may be used, but not the @evindex CXXCPP @ovindex CXXCPP Set output variable @code{CXXCPP} to a command that runs the C++ -preprocessor. If @samp{$CXX -E} doesn't work, @file{/lib/cpp} is used. +preprocessor. If @samp{$CXX -E} doesn't work, tries @code{cpp} and +@file{/lib/cpp}, in that order. Because of this fallback, @code{CXXCPP} +may or may not set C++-specific predefined macros (such as @code{__cplusplus}). + It is portable to run @code{CXXCPP} only on files with a @file{.c}, @file{.C}, @file{.cc}, or @file{.cpp} extension. @@ -7799,7 +7804,10 @@ compiler (@option{-O2} on systems where the compiler does not accept @evindex OBJCPP @ovindex OBJCPP Set output variable @code{OBJCPP} to a command that runs the Objective C -preprocessor. If @samp{$OBJC -E} doesn't work, @file{/lib/cpp} is used. +preprocessor. If @samp{$OBJC -E} doesn't work, tries @code{cpp} and +@file{/lib/cpp}, in that order. Because of this fallback, @code{CXXCPP} +may or may not set Objective-C-specific predefined macros (such as +@code{__OBJC__}). @end defmac @@ -7840,7 +7848,10 @@ compiler (@option{-O2} on systems where the compiler does not accept @evindex OBJCXXCPP @ovindex OBJCXXCPP Set output variable @code{OBJCXXCPP} to a command that runs the Objective C++ -preprocessor. If @samp{$OBJCXX -E} doesn't work, @file{/lib/cpp} is used. +preprocessor. If @samp{$OBJCXX -E} doesn't work, tries @code{cpp} and +@file{/lib/cpp}, in that order. Because of this fallback, @code{CXXCPP} +may or may not set Objective-C++-specific predefined macros (such as +@code{__cplusplus} and @code{__OBJC__}). @end defmac |