Rewrite find_cxx_header config configure.ac

With clang if the main file is <stdin>, the first non-main-file
dependency is not listed in the -MP output.  Although it was fixed
on clang-16 [1], this change adds portability for older version.

[1] ff9576f745

Reviewed-by: Fangrui Song <maskray@google.com>
This commit is contained in:
Adhemerval Zanella 2022-11-02 11:55:57 -03:00
parent d1d0162e50
commit 596183a1ee
2 changed files with 4 additions and 4 deletions

4
configure vendored
View File

@ -5669,8 +5669,8 @@ fi
# copy of those headers in Makerules.
if test -n "$CXX"; then
find_cxx_header () {
echo "#include <$1>" | $CXX -M -MP -x c++ - 2>/dev/null \
| sed -n "\,$1:,{s/:\$//;p}"
echo "#include <$1>" | $CXX -H -fsyntax-only -x c++ - 2>&1 \
| $AWK '$1 == "."{print $2}'
}
CXX_CSTDLIB_HEADER="$(find_cxx_header cstdlib)"
CXX_CMATH_HEADER="$(find_cxx_header cmath)"

View File

@ -1137,8 +1137,8 @@ AC_SUBST(CXX_SYSINCLUDES)
# copy of those headers in Makerules.
if test -n "$CXX"; then
find_cxx_header () {
echo "#include <$1>" | $CXX -M -MP -x c++ - 2>/dev/null \
| sed -n "\,$1:,{s/:\$//;p}"
echo "#include <$1>" | $CXX -H -fsyntax-only -x c++ - 2>&1 \
| $AWK '$1 == "."{print $2}'
}
CXX_CSTDLIB_HEADER="$(find_cxx_header cstdlib)"
CXX_CMATH_HEADER="$(find_cxx_header cmath)"