[Debian-med-packaging] Bug#455269: FTBFS with GCC 4.3: missing #includes

Martin Michlmayr tbm at cyrius.com
Sun Dec 9 16:49:45 UTC 2007


Package: proda
Version: 1.0-3
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://www.cyrius.com/journal/2007/05/10#gcc-4.3-include

You can reproduce this problem with gcc-snapshot from unstable.  Note
that Red Hat, Novell and Ubuntu have done some work getting packages
to build with GCC 4.3 so there might be patches floating around
somewhere.  I suggest you talk to your upstream.

> Automatic build of proda_1.0-3 on em64t by sbuild/amd64 0.53
...
> make[1]: Entering directory `/build/tbm/proda-1.0'
> g++ -Wall -g -O2   -c -o AlignedFragment.o AlignedFragment.cc
> In file included from AlignedFragment.cc:5:
> AlignedFragment.h:21: error: 'FILE' has not been declared
> AlignedFragment.cc: In member function 'void AlignedFragment::Prune()':
> AlignedFragment.cc:190: error: 'memcpy' was not declared in this scope
> AlignedFragment.cc: In member function 'int AlignedFragment::ProcessRepeat(AVECT&, int)':
> AlignedFragment.cc:242: error: no matching function for call to 'AlignedFragment::Print(_IO_FILE*&)'
> AlignedFragment.h:21: note: candidates are: void AlignedFragment::Print(int*)
> AlignedFragment.cc:249: error: no matching function for call to 'AlignedFragment::Print(_IO_FILE*&)'
> AlignedFragment.h:21: note: candidates are: void AlignedFragment::Print(int*)
> AlignedFragment.cc: At global scope:
> AlignedFragment.cc:271: error: prototype for 'void AlignedFragment::Print(FILE*)' does not match any in class 'AlignedFragment'
> AlignedFragment.h:21: error: candidate is: void AlignedFragment::Print(int*)
> make[1]: *** [AlignedFragment.o] Error 1
> make[1]: Leaving directory `/build/tbm/proda-1.0'
> make: *** [build-stamp] Error 2

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





More information about the Debian-med-packaging mailing list