Bug#462426: FTBFS with GCC 4.3: missing #includes
Martin Michlmayr
tbm at cyrius.com
Thu Jan 24 19:32:52 UTC 2008
Package: warzone2100
Version: 2.1.0~0.svn3330-1
Severity: important
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 warzone2100_2.1.0~0.svn3330-1 on em64t by sbuild/amd64 0.53
...
> make[1]: Entering directory `/build/tbm/warzone2100-2.1.0~0.svn3330/build_tools'
> Making all in autorevision
> make[2]: Entering directory `/build/tbm/warzone2100-2.1.0~0.svn3330/build_tools/autorevision'
> x86_64-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../.. -I../.. -g -O2 -MT autorevision.o -MD -MP -MF .deps/autorevision.Tpo -c -o autorevision.o autorevision.cpp
> autorevision.cpp: In function 'int main(int, char**)':
> autorevision.cpp:218: error: 'strcmp' was not declared in this scope
> autorevision.cpp: In member function 'virtual bool RevSVNQuery::extractRevision(RevisionInformation&)':
> autorevision.cpp:365: error: 'strlen' was not declared in this scope
> autorevision.cpp:371: error: 'strlen' was not declared in this scope
> autorevision.cpp:375: error: 'strlen' was not declared in this scope
> autorevision.cpp:381: error: 'strlen' was not declared in this scope
> autorevision.cpp: In member function 'virtual bool RevFileParse::extractRevision(RevisionInformation&)':
> autorevision.cpp:428: error: 'strlen' was not declared in this scope
> autorevision.cpp: In member function 'virtual bool RevConfigFile::extractRevision(RevisionInformation&)':
> autorevision.cpp:451: error: 'strlen' was not declared in this scope
> make[2]: *** [autorevision.o] Error 1
> make[2]: Leaving directory `/build/tbm/warzone2100-2.1.0~0.svn3330/build_tools/autorevision'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/build/tbm/warzone2100-2.1.0~0.svn3330/build_tools'
> make[1]: Entering directory `/build/tbm/warzone2100-2.1.0~0.svn3330/win32'
> make[1]: Nothing to be done for `all'.
> make[1]: Leaving directory `/build/tbm/warzone2100-2.1.0~0.svn3330/win32'
Another problem is that the build doesn't fail even though it fails to
compile this file!
--
Martin Michlmayr
http://www.cyrius.com/
More information about the Pkg-games-devel
mailing list