Bug#417897: Causes FTBFS with GCC 4.3: missing #includes

Martin Michlmayr tbm at cyrius.com
Thu Apr 5 10:51:21 UTC 2007


Package: etl
Version: 0.04.08-2
Usertags: ftbfs-gcc-4.3
Tags: patch

Your package causes other packages to fail 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).  Some background of this can be found at
http://gcc.gnu.org/PR28080

You can reproduce this problem with gcc-snapshot (20070326-1 or higher)
from unstable. (Currently not available for i386, but for amd64, powerpc
and ia64.  I hope to have i386 binaries in the archive in ~3 weeks.)


> Automatic build of synfig_0.61.05-8 on em64t by sbuild/amd64 0.53
...
>  x86_64-linux-gnu-g++ -DHAVE_CONFIG_H -I../.. -I../.. -I../../src -I../../libltdl -I/usr/include/libxml++-2.6 -I/usr/include/libxml2 -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -DSYNFIG_NO_DEPRECATED -DLIBDIR=\"/usr/lib\" -DSYSCONFDIR=\"/etc/synfig\" -DNDEBUG -g -O1 -W -Wall -Wno-unused-parameter -fpermissive -MT libsynfig_la-gradient.lo -MD -MP -MF .deps/libsynfig_la-gradient.Tpo -c gradient.cpp  -fPIC -DPIC -o .libs/libsynfig_la-gradient.o
> In file included from /usr/include/ETL/stringf:31,
>                  from general.h:30,
>                  from gradient.cpp:33:
> /usr/include/ETL/_stringf.h: In function 'std::string etl::vstrprintf(const char*, __va_list_tag*)':
> /usr/include/ETL/_stringf.h:86: error: 'free' was not declared in this scope
> gradient.cpp: In member function 'void synfig::Gradient::sort()':
> gradient.cpp:75: error: 'stable_sort' was not declared in this scope
> gradient.cpp: In member function 'synfig::Color synfig::Gradient::operator()(const synfig::Real&, float) const':
> gradient.cpp:266: warning: suggest parentheses around && within ||

--- ETL/_stringf.h~	2007-04-05 10:42:12.000000000 +0000
+++ ETL/_stringf.h	2007-04-05 10:42:20.000000000 +0000
@@ -31,6 +31,7 @@
 
 #include <string>
 #include <cstdarg>
+#include <csdlib>
 
 /* === M A C R O S ========================================================= */
 

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




More information about the pkg-synfig-devel mailing list