Bug#462051: FTBFS with GCC 4.3: missing #includes

Martin Michlmayr tbm at cyrius.com
Tue Jan 22 07:40:31 UTC 2008


Package: boinc-app-seti
Version: 5.13+cvs20060510-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://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 boinc-app-seti_5.13+cvs20060510-3 on em64t by sbuild/amd64 0.53
...
> ../db/xml_util.h:342: warning: 'n_pads' may be used uninitialized in this function
> g++ -DHAVE_CONFIG_H -I. -I. -I..  -g -Wall -O2 -I/usr/include -I/usr/include/openssl  -fPIC -DPIC -DHAVE_CONFIG_H  -g -Wall -O2 -I/usr/include -I/usr/include/openssl -DHAVE_CONFIG_H -DTEXT_UI -DNDEBUG -DCLIENT -I../db -I/usr/share/boinc-dev/api -I/usr/share/boinc-dev/lib  -pthread   -g -Wall -O2 -I/usr/include -I/usr/include/openssl -c -o seti_boinc-sqlrow.o `test -f '../db/sqlrow.cpp' || echo './'`../db/sqlrow.cpp
> In file included from ../db/sqlrow.h:27,
>                  from ../db/sqlrow.cpp:25:
> ../db/xml_util.h: In function 'std::string base64_encode(const T*, size_t)':
> ../db/xml_util.h:268: warning: array subscript has type 'char'
> ../db/xml_util.h: In function 'std::vector<T, std::allocator<_CharT> > base64_decode(const char*, size_t)':
> ../db/xml_util.h:295: error: there are no arguments to 'strchr' that depend on a template parameter, so a declaration of 'strchr' must be available
> ../db/xml_util.h:295: error: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
> ../db/xml_util.h:296: error: there are no arguments to 'strchr' that depend on a template parameter, so a declaration of 'strchr' must be available
> ../db/xml_util.h:297: error: there are no arguments to 'strlen' that depend on a template parameter, so a declaration of 'strlen' must be available
> ../db/xml_util.h: In function 'std::string base85_encode(const T*, size_t)':
> ../db/xml_util.h:362: warning: array subscript has type 'char'
> ../db/xml_util.h:371: error: there are no arguments to 'strlen' that depend on a template parameter, so a declaration of 'strlen' must be available
> ../db/xml_util.h: In function 'std::vector<T, std::allocator<_CharT> > base85_decode(const char*, size_t)':
> ../db/xml_util.h:390: error: there are no arguments to 'strchr' that depend on a template parameter, so a declaration of 'strchr' must be available
> ../db/xml_util.h:391: error: there are no arguments to 'strchr' that depend on a template parameter, so a declaration of 'strchr' must be available
> ../db/xml_util.h:392: error: there are no arguments to 'strlen' that depend on a template parameter, so a declaration of 'strlen' must be available
> ../db/xml_util.h: In function 'std::vector<T, std::allocator<_CharT> > x_setiathome_decode(const char*, size_t)':
> ../db/xml_util.h:493: error: there are no arguments to 'strchr' that depend on a template parameter, so a declaration of 'strchr' must be available
> ../db/xml_util.h:494: error: there are no arguments to 'strchr' that depend on a template parameter, so a declaration of 'strchr' must be available
> ../db/xml_util.h:495: error: there are no arguments to 'strlen' that depend on a template parameter, so a declaration of 'strlen' must be available
> ../db/xml_util.h:505: error: there are no arguments to 'memcpy' that depend on a template parameter, so a declaration of 'memcpy' must be available
> ../db/xml_util.h: In function 'std::vector<T, std::allocator<_CharT> > quoted_printable_decode(const char*, size_t)':
> ../db/xml_util.h:548: error: there are no arguments to 'strlen' that depend on a template parameter, so a declaration of 'strlen' must be available
> ../db/xml_util.h: In function 'std::vector<T, std::allocator<_CharT> > x_xml_entity_decode(const char*, size_t)':
> ../db/xml_util.h:667: error: there are no arguments to 'strlen' that depend on a template parameter, so a declaration of 'strlen' must be available
> ../db/xml_util.h:675: error: there are no arguments to 'strncmp' that depend on a template parameter, so a declaration of 'strncmp' must be available
> ../db/xml_util.h:676: error: there are no arguments to 'strchr' that depend on a template parameter, so a declaration of 'strchr' must be available
> ../db/xml_util.h: In function 'std::vector<T, std::allocator<_CharT> > x_xml_cdata_decode(const char*, size_t)':
> ../db/xml_util.h:779: error: there are no arguments to 'strlen' that depend on a template parameter, so a declaration of 'strlen' must be available
> ../db/xml_util.h:786: error: there are no arguments to 'strncmp' that depend on a template parameter, so a declaration of 'strncmp' must be available
> ../db/xml_util.h:794: error: there are no arguments to 'strncmp' that depend on a template parameter, so a declaration of 'strncmp' must be available
> ../db/xml_util.h:795: error: there are no arguments to 'strchr' that depend on a template parameter, so a declaration of 'strchr' must be available
> ../db/xml_util.h: In function 'std::vector<T, std::allocator<_CharT> > xml_decode_string(const char*, size_t, const char*)':
> ../db/xml_util.h:826: error: there are no arguments to 'strlen' that depend on a template parameter, so a declaration of 'strlen' must be available
> ../db/xml_util.h: In function 'std::vector<T, std::allocator<_CharT> > xml_decode_field(const std::string&, const char*)':
> ../db/xml_util.h:872: error: there are no arguments to 'strlen' that depend on a template parameter, so a declaration of 'strlen' must be available
> ../db/xml_util.h:873: error: there are no arguments to 'strlen' that depend on a template parameter, so a declaration of 'strlen' must be available
> ../db/sqlrow.cpp: In member function 'std::vector<std::string*, std::allocator<std::string*> > SQL_ROW::parse_row(std::string&)':
> ../db/sqlrow.cpp:161: warning: unused variable 's_end'
> make[3]: *** [seti_boinc-sqlrow.o] Error 1
> make[3]: Leaving directory `/build/tbm/boinc-app-seti-5.13+cvs20060510/client'

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





More information about the pkg-boinc-devel mailing list