Here is an explanation for this problem which you can forward upstream
along with the patch.

In GCC 4.3, the C++ header dependencies have been cleaned up.  The
advantage of this is that programs will compile faster.  The downside
is that you actually need to directly #include everything you use (but
you really should do this anyway, otherwise your program won't work
with any compiler other than GCC).  Some background of this can be
found at http://gcc.gnu.org/PR28080

For the maintainer: You can reproduce this problem with gcc-snapshot
(20070326-1 or higher) from unstable. (Currently not available for
i386, but for amd64, powerpc and ia64.  I hope to have i386 binaries
in the archive in ~3 weeks.)  In any case, the patch I sent is tested.

I updated the patch because I noticed there's another problem in the
test directory.  main() takes int and char ** as its argument.  GCC 4.3
will produce an error if it's different.

There is one problem I left unfixed: test/SmartPtr/main.cpp still
fails to compile because -pedantic (which you use) turns a #warning
(which is GCC specific) into an error:

(sid)17604:[EMAIL PROTECTED]: ..ibloki-0.1.5/test/SmartPtr] g++ -Wall 
-Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic 
-g -O2 -I../../include -DNDEBUG  -c -o main.o main.cpp
main.cpp:50:2: error: #warning is a GCC extension

Please tell upstream about these problems.

--- include/loki/SafeFormat.h~  2007-04-05 07:26:23.000000000 +0000
+++ include/loki/SafeFormat.h   2007-04-05 07:26:34.000000000 +0000
@@ -22,6 +22,7 @@
 // $Header: /cvsroot/loki-lib/loki/include/loki/SafeFormat.h,v 1.25 2006/06/19 
12:39:08 syntheticpp Exp $

 

 #include <cstdio>

+#include <climits>

 #include <string>

 #include <stdexcept>

 #include <utility>

--- src/SmallObj.cpp~   2007-04-05 07:26:42.000000000 +0000
+++ src/SmallObj.cpp    2007-04-05 07:26:54.000000000 +0000
@@ -19,6 +19,7 @@
 #include <loki/SmallObj.h>

 

 #include <cassert>

+#include <climits>

 #include <vector>

 #include <bitset>

 

--- test/SmartPtr/main.cpp~     2007-04-05 07:33:42.000000000 +0000
+++ test/SmartPtr/main.cpp      2007-04-05 07:34:42.000000000 +0000
@@ -998,7 +998,7 @@
 

 // ----------------------------------------------------------------------------

 

-int main( unsigned int , const char * [] )

+int main( unsigned int , char * [] )

 {

 

     DoRefLinkTests();


-- 
Martin Michlmayr
http://www.cyrius.com/


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to