[DebianGIS-dev] Bug#461673: FTBFS with GCC 4.3: missing #includes

2008-01-20 Thread Martin Michlmayr
Package: grass
Version: 6.2.3-1
Usertags: ftbfs-gcc-4.3

Your package fails to build with GCC 4.3.  Version 4.3 has not been
released yet but I'm building with a snapshot in order to find errors
and give people an advance warning.  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).  There's some more information about this at
http://gcc.gnu.org/gcc-4.3/porting_to.html

You can reproduce this problem with gcc-4.3 or gcc-snapshot from
unstable.

 Automatic build of grass_6.2.3-1 on em64t by sbuild/amd64 0.53
...
 main.cc:547:   instantiated from here
 ./IOStream/include/ami_stream.h:220: warning: deprecated conversion from 
 string constant to 'char*'
 c++ -c -I/build/tbm/grass-6.2.3/dist.x86_64-pc-linux-gnu/include  -g -O2   
 -I./IOStream/include -DUSER=\root\ -DNODATA_FIX -D_FILE_OFFSET_BITS=64
 -DPACKAGE=\grassmods\ -DELEV_FLOAT common.cc -o 
 OBJ.x86_64-pc-linux-gnu/FLOAT/common.o
 In file included from ./IOStream/include/ami.h:49,
  from common.h:49,
  from common.cc:55:
 ./IOStream/include/ami_stream.h: In constructor 
 'AMI_STREAMT::AMI_STREAM(const char*, AMI_stream_type)':
 ./IOStream/include/ami_stream.h:255: error: there are no arguments to 
 'strcpy' that depend on a template parameter, so a declaration of 'strcpy' 
 must be available
 ./IOStream/include/ami_stream.h:255: error: (if you use '-fpermissive', G++ 
 will accept your code, but allowing the use of an undeclared name is 
 deprecated)
 ./IOStream/include/ami_stream.h: In member function 'AMI_err 
 AMI_STREAMT::name(char**)':
 ./IOStream/include/ami_stream.h:363: error: there are no arguments to 
 'strlen' that depend on a template parameter, so a declaration of 'strlen' 
 must be available
 ./IOStream/include/ami_stream.h:364: error: there are no arguments to 
 'strcpy' that depend on a template parameter, so a declaration of 'strcpy' 
 must be available
 In file included from ./IOStream/include/ami_sort_impl.h:46,
  from ./IOStream/include/ami_sort.h:45,
  from ./IOStream/include/ami.h:55,
  from common.h:49,
  from common.cc:55:
 ./IOStream/include/mem_stream.h: In member function 'AMI_err 
 MEM_STREAMT::name(char**)':
 ./IOStream/include/mem_stream.h:111: error: there are no arguments to 
 'strlen' that depend on a template parameter, so a declaration of 'strlen' 
 must be available
 ./IOStream/include/mem_stream.h:112: error: there are no arguments to 
 'strcpy' that depend on a template parameter, so a declaration of 'strcpy' 
 must be available
 make[3]: *** [OBJ.x86_64-pc-linux-gnu/FLOAT/common.o] Error 1
 make[3]: Leaving directory `/build/tbm/grass-6.2.3/raster/r.terraflow'
 r.out.tiff

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



___
Pkg-grass-devel mailing list
Pkg-grass-devel@lists.alioth.debian.org
http://lists.alioth.debian.org/mailman/listinfo/pkg-grass-devel


[DebianGIS-dev] Bug#456089: pedwarnings no longer errors in GCC 4.3, but...

2008-01-20 Thread Martin Michlmayr
retitle 456089 FTBFS with GCC 4.3: missing #includes
thanks

I mentioned that GCC 4.3 converted a number of C++ warnings into
errors.  This change has now been reverted after a lot of
discussion.  I just compiled your package with the latest snapshot
of GCC 4.3 to see if it compiles with 4.3, but there is another issue:

 x86_64-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../../source/headers 
-I../../source/headers/geos -I../../source/headers -DGEOS_VERSION=2.2.3 -g -O2 
-MT DoubleBits.lo -MD -MP -MF .deps/DoubleBits.Tpo -c 
../index/quadtree/DoubleBits.cpp  -fPIC -DPIC -o .libs/DoubleBits.o
../index/quadtree/DoubleBits.cpp: In static member function 'static double 
geos::DoubleBits::powerOf2(int)':
../index/quadtree/DoubleBits.cpp:30: error: 'memcpy' was not declared in this 
scope
../index/quadtree/DoubleBits.cpp: In constructor 
'geos::DoubleBits::DoubleBits(double)':
../index/quadtree/DoubleBits.cpp:72: error: 'memcpy' was not declared in this 
scope
make[3]: *** [DoubleBits.lo] Error 1

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



___
Pkg-grass-devel mailing list
Pkg-grass-devel@lists.alioth.debian.org
http://lists.alioth.debian.org/mailman/listinfo/pkg-grass-devel