Another of Nelson H. F. Beebe's test found a compiler
(intel-icc8-8.1-033 on GNU/Linux 2.4.18) where compiling
calc++-scanner.cc failed as follows:
/usr/include/pthread.h(163): error: expected a ")"
extern int pthread_create (pthread_t *__restrict __thread,
^
Tracking it through how GCC works on my host, it appears that
"#include <string>" includes char_traits.h, which includes
bits/stl_algobase.h, which includes iosfwd, which includes
bits/c++io.h, which includes bits/gthr.h, which includes
bits/gthr-default.h, which includes pthread.h -- or at least that's
how it works if I understand it aright (I'm not a C++ expert, thank
goodness), and my guess is that icc doesn't support __restrict but
tries to pretend to be GCC so fools the glibc header into using
__restrict.
I installed this to attempt to work around the problem.
2006-02-01 Paul Eggert <[EMAIL PROTECTED]>
Work around portability problems summarized by Nelson H. F. Beebe in
<http://lists.gnu.org/archive/html/bug-bison/2005-09/msg00021.html>.
* m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check
that '#include <string>' works.
--- m4/cxx.m4 20 Jan 2006 01:59:30 -0000 1.5
+++ m4/cxx.m4 2 Feb 2006 07:33:13 -0000 1.6
@@ -29,6 +29,7 @@ AC_DEFUN([BISON_TEST_FOR_WORKING_CXX_COM
[AC_LANG_PROGRAM(
[#include <cstdlib>
#include <iostream>
+ #include <string>
using namespace std;],
[std::cerr << "";
cout << "";])],