summary refs log tree commit diff
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2012-09-06 00:16:24 +1000
committerAllan McRae <allan@archlinux.org>2012-09-06 00:16:24 +1000
commitc4e85184d2ded3f6a259948098a0c297a9cf0be6 (patch)
treeb762d78d613fe19594b52dfbba31b2b8d6631b74
parenta0070b7e7054df5f2a8da0467f15496ef8a3662f (diff)
downloadglibc-c4e85184d2ded3f6a259948098a0c297a9cf0be6.tar.gz
glibc-c4e85184d2ded3f6a259948098a0c297a9cf0be6.tar.xz
glibc-c4e85184d2ded3f6a259948098a0c297a9cf0be6.zip
Improve C++ header location detection (bug 13966)
-rw-r--r--ChangeLog7
-rw-r--r--NEWS6
-rwxr-xr-xconfigure10
-rw-r--r--configure.in10
4 files changed, 18 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 73da793cfa..366b3b4f40 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2012-09-05  Allan McRae  <allan@archlinux.org>
+
+	[BS #13966]
+	* configure.in (CXX_SYSINCLUDES): Use compiler output to
+	determine header location.
+	* configure: Regenerated.
+
 2012-09-05  Andreas Schwab  <schwab@linux-m68k.org>
 
 	* stdlib/gen-tst-strtod-round.c (formats): Add Motorola extended
diff --git a/NEWS b/NEWS
index 9a58c6db21..4d32679095 100644
--- a/NEWS
+++ b/NEWS
@@ -10,9 +10,9 @@ Version 2.17
 * The following bugs are resolved with this release:
 
   3479, 5400, 6778, 6808, 9685, 9914, 11607, 13412, 13717, 13696, 13939,
-  14042, 14090, 14166, 14150, 14151, 14154, 14157, 14166, 14173, 14195,
-  14252, 14283, 14298, 14303, 14307, 14328, 14331, 14336, 14337, 14347,
-  14349, 14459, 14476, 14505, 14516, 14519, 14532, 14538
+  13966, 14042, 14090, 14166, 14150, 14151, 14154, 14157, 14166, 14173,
+  14195, 14252, 14283, 14298, 14303, 14307, 14328, 14331, 14336, 14337,
+  14347, 14349, 14459, 14476, 14505, 14516, 14519, 14532, 14538
 
 * Support for STT_GNU_IFUNC symbols added for s390 and s390x.
   Optimized versions of memcpy, memset, and memcmp added for System z10 and
diff --git a/configure b/configure
index 6718bee0da..d159ce0e7b 100755
--- a/configure
+++ b/configure
@@ -5345,13 +5345,11 @@ if test -n "$sysheaders"; then
     CXX_SYSINCLUDES=
     cxxversion=`$CXX -dumpversion 2>&5` &&
     cxxmachine=`$CXX -dumpmachine 2>&5` &&
-    for d in include "$cxxmachine/include"; do
-      i=../../../../$d/c++/$cxxversion
-      cxxheaders=`$CXX -print-file-name="$i"` &&
-      test "x$cxxheaders" != x && test "x$i" != "x$cxxheaders" &&
-      CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders \
+    cxxplus=`$CXX -print-prog-name=cc1plus`
+    cxxheaders=`$cxxplus -v /dev/null 2>&1 | sed -n '/ \//{p;q;}' | sed 's/ //'`
+    test "x$cxxheaders" != x && test "x$i" != "x$cxxheaders" &&
+    CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders \
 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
-    done
   fi
 fi
 
diff --git a/configure.in b/configure.in
index 7de4b093d4..a174646fab 100644
--- a/configure.in
+++ b/configure.in
@@ -975,13 +975,11 @@ if test -n "$sysheaders"; then
     CXX_SYSINCLUDES=
     cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
     cxxmachine=`$CXX -dumpmachine 2>&AS_MESSAGE_LOG_FD` &&
-    for d in include "$cxxmachine/include"; do
-      i=../../../../$d/c++/$cxxversion
-      cxxheaders=`$CXX -print-file-name="$i"` &&
-      test "x$cxxheaders" != x && test "x$i" != "x$cxxheaders" &&
-      CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders \
+    cxxplus=`$CXX -print-prog-name=cc1plus`
+    cxxheaders=`$cxxplus -v /dev/null 2>&1 | sed -n '/ \//{p;q;}' | sed 's/ //'`
+    test "x$cxxheaders" != x && test "x$i" != "x$cxxheaders" &&
+    CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders \
 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
-    done
   fi
 fi
 AC_SUBST(SYSINCLUDES)