I get this error for C++ test cases in Bison from CVS: ----------------------------------- In file included from /home/jdenny/bison/lib/stdint.h:71, from /usr/local/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/bits/postypes.h:49, from /usr/local/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/iosfwd:49, from /usr/local/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/bits/stl_algobase.h:69, from /usr/local/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/bits/char_traits.h:46, from /usr/local/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/string:46, from expect2.hh:43, from expect2.cc:59: /home/jdenny/bison/lib/inttypes.h:44:3: error: #error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to <bug-gnulib@gnu.org>."
% uname -a Linux slackware 2.6.13 #1 Sat Sep 3 21:11:20 PDT 2005 i686 unknown unknown GNU/Linux % g++ --version g++ (GCC) 4.1.0 Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. % echo '#include <inttypes.h>' > tmp.cc % g++ -E tmp.cc | grep inttypes.h # 1 "/usr/include/inttypes.h" 1 3 4 # 26 "/usr/include/inttypes.h" 3 4 # 27 "/usr/include/inttypes.h" 2 3 4 # 29 "/usr/include/inttypes.h" 2 3 4 # 274 "/usr/include/inttypes.h" 3 4 # 288 "/usr/include/inttypes.h" 3 4 # 459 "/usr/include/inttypes.h" 3 4 ----------------------------------- In Gnulib's lib/inttypes_.h, if I change all occurrences of INTTYPES_H to _INTTYPES_H, which is the macro used in /usr/include/inttypes.h, all Bison test cases pass again.