Bug#455339: FTBFS with GCC 4.3: missing #includes
Martin Michlmayr
tbm at cyrius.com
Sun Dec 9 18:44:00 UTC 2007
Package: libparagui1.1
Version: 1.1.8-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://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 libparagui1.1_1.1.8-1 on em64t by sbuild/amd64 0.53
...
> x86_64-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/lib/sigc++-1.2/include -I/usr/include/sigc++-1.2 -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I../../include -g -O2 -Wall -I/usr/include/freetype2 -fno-exceptions -MT themeloader.lo -MD -MP -MF .deps/themeloader.Tpo -c themeloader.cpp -fPIC -DPIC -o .libs/themeloader.o
> In file included from /usr/lib/gcc-snapshot/lib/gcc/x86_64-linux-gnu/4.3.0/../../../../include/c++/4.3.0/backward/hash_map:64,
> from ../../include/pgfont.h:50,
> from ../../include/pgwidget.h:34,
> from ../../include/pglabel.h:32,
> from ../../include/pgtheme.h:33,
> from theme_priv.h:39,
> from themeloader.cpp:32:
> /usr/lib/gcc-snapshot/lib/gcc/x86_64-linux-gnu/4.3.0/../../../../include/c++/4.3.0/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider use of an equivalent, non-deprecated interface for the requested functionality. A list of valid replacements is as follows: Use: Instead of: <sstream>, basic_stringbuf <strstream>, strstreambuf <sstream>, basic_istringstream <strstream>, istrstream <sstream>, basic_ostringstream <strstream>, ostrstream <sstream>, basic_stringstream <strstream>, strstream <unordered_set>, unordered_set <ext/hash_set>, hash_set <unordered_set>, unordered_multiset <ext/hash_set>, hash_multiset <unordered_map>, unordered_map <ext/hash_set>, hash_map <unordered_map>, unordered_multimap <ext/hash_set>, hash_multimap <functional>, bind <functional>, binder1st <functional>, bind <functional>, binder2nd <functional>, bind <functional>, bind1st <functional>, bind <functional>, bind2nd <memory>, unique_ptr <memory>, auto_ptr To disable this warning use -Wno-deprecated.
> In file included from themeloader.cpp:32:
> theme_priv.h:130: error: ISO C++ forbids declaration of 'hash_map' with no type
> theme_priv.h:130: error: typedef name may not be a nested-name-specifier
> theme_priv.h:130: error: expected ';' before '<' token
> theme_priv.h:131: error: ISO C++ forbids declaration of 'hash_map' with no type
> theme_priv.h:131: error: typedef name may not be a nested-name-specifier
> theme_priv.h:131: error: expected ';' before '<' token
> theme_priv.h:132: error: ISO C++ forbids declaration of 'hash_map' with no type
> theme_priv.h:132: error: typedef name may not be a nested-name-specifier
> theme_priv.h:132: error: expected ';' before '<' token
> theme_priv.h:139: error: 'MAP_FILENAME' does not name a type
> theme_priv.h:140: error: 'MAP_GRADIENT' does not name a type
> theme_priv.h:141: error: 'MAP_PROPERTY' does not name a type
> theme_priv.h:156: error: ISO C++ forbids declaration of 'hash_map' with no type
> theme_priv.h:156: error: typedef name may not be a nested-name-specifier
> theme_priv.h:156: error: expected ';' before '<' token
> theme_priv.h:161: error: 'MAP_OBJECT' does not name a type
> theme_priv.h:199: error: ISO C++ forbids declaration of 'hash_map' with no type
> theme_priv.h:199: error: typedef name may not be a nested-name-specifier
> theme_priv.h:199: error: expected ';' before '<' token
> theme_priv.h:204: error: 'MAP_WIDGET' does not name a type
> themeloader.cpp: In function 'void parseWidgetProps(PARSE_INFO*, const XML_Char*, const XML_Char**)':
> themeloader.cpp:132: error: 'class THEME_THEME' has no member named 'widget'
> themeloader.cpp: In function 'void parseObjectProps(PARSE_INFO*, const XML_Char*, const XML_Char**)':
> themeloader.cpp:163: error: 'class THEME_WIDGET' has no member named 'object'
> themeloader.cpp:201: error: 'class THEME_OBJECT' has no member named 'filename'
> themeloader.cpp:257: error: 'class THEME_OBJECT' has no member named 'property'
> themeloader.cpp:276: error: 'class THEME_OBJECT' has no member named 'property'
> themeloader.cpp:317: error: 'class THEME_OBJECT' has no member named 'gradient'
> make[3]: *** [themeloader.lo] Error 1
> make[3]: Leaving directory `/build/tbm/libparagui1.1-1.1.8/src/themes'
--
Martin Michlmayr
http://www.cyrius.com/
More information about the Pkg-sdl-maintainers
mailing list