[Pkg-scicomp-devel] Bug#454830: FTBFS with GCC 4.3: missing #includes

Martin Michlmayr tbm at cyrius.com
Sat Dec 8 01:54:21 UTC 2007


Package: netgen
Version: 4.4-8
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 netgen_4.4-8 on em64t by sbuild/amd64 0.53
...
> test -x debian/rules
> mkdir -p "/build/tbm/netgen-4.4//"
> /usr/bin/make  -C /build/tbm/netgen-4.4// CFLAGS="-g -Wall -O2" CXXFLAGS="-g -Wall -O2" CPPFLAGS="" LDFLAGS=""  
> make[1]: Entering directory `/build/tbm/netgen-4.4'
> gcc -c -I./libsrc/include -I/opt/OpenCASCADE5.2/ros/inc  -I./ngsolve/include -Ilibsrc/interface -DOPENGL  -O2 -I/usr/include/GL -I/usr/include/tcl8.4 -I/usr/include/tk8.4 -I/usr/X11R6/include -DLINUX -DOPENGL -finline-limit=20000 -funroll-loops  -DNGSOLVE  ngtcltk/ngappinit.cpp -o ngtcltk/ngappinit.o
> In file included from ./libsrc/include/../general/myadt.hpp:31,
>                  from ./libsrc/include/myadt.hpp:1,
>                  from ./libsrc/include/../meshing/meshing.hpp:4,
>                  from ./libsrc/include/meshing.hpp:1,
>                  from ngtcltk/ngappinit.cpp:8:
> ./libsrc/include/../general/symbolta.hpp: In member function 'void netgen::SYMBOLTABLE<T>::Set(const char*, const T&)':
> ./libsrc/include/../general/symbolta.hpp:138: error: there are no arguments to 'strlen' that depend on a template parameter, so a declaration of 'strlen' must be available
> ./libsrc/include/../general/symbolta.hpp:138: error: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
> ./libsrc/include/../general/symbolta.hpp:139: error: there are no arguments to 'strcpy' that depend on a template parameter, so a declaration of 'strcpy' must be available
> In file included from ./libsrc/include/../general/myadt.hpp:40,
>                  from ./libsrc/include/myadt.hpp:1,
>                  from ./libsrc/include/../meshing/meshing.hpp:4,
>                  from ./libsrc/include/meshing.hpp:1,
>                  from ngtcltk/ngappinit.cpp:8:
> ./libsrc/include/../general/mystring.hpp: In member function 'int netgen::MyStr::Find(char)':
> ./libsrc/include/../general/mystring.hpp:125: error: 'strchr' was not declared in this scope
> ./libsrc/include/../general/mystring.hpp: In member function 'int netgen::MyStr::Find(const netgen::MyStr&)':
> ./libsrc/include/../general/mystring.hpp:131: error: 'strstr' was not declared in this scope
> ./libsrc/include/../general/mystring.hpp: In member function 'int netgen::MyStr::Find(const char*)':
> ./libsrc/include/../general/mystring.hpp:137: error: 'strstr' was not declared in this scope
> ./libsrc/include/../general/mystring.hpp: In function 'int netgen::operator==(const netgen::MyStr&, const netgen::MyStr&)':
> ./libsrc/include/../general/mystring.hpp:169: error: 'strcmp' was not declared in this scope
> ./libsrc/include/../general/mystring.hpp: In function 'int netgen::operator<(const netgen::MyStr&, const netgen::MyStr&)':
> ./libsrc/include/../general/mystring.hpp:174: error: 'strcmp' was not declared in this scope
> ./libsrc/include/../general/mystring.hpp: In function 'int netgen::operator<=(const netgen::MyStr&, const netgen::MyStr&)':
> ./libsrc/include/../general/mystring.hpp:179: error: 'strcmp' was not declared in this scope
> ./libsrc/include/../general/mystring.hpp: In function 'int netgen::operator>(const netgen::MyStr&, const netgen::MyStr&)':
> ./libsrc/include/../general/mystring.hpp:184: error: 'strcmp' was not declared in this scope
> ./libsrc/include/../general/mystring.hpp: In function 'int netgen::operator>=(const netgen::MyStr&, const netgen::MyStr&)':
> ./libsrc/include/../general/mystring.hpp:189: error: 'strcmp' was not declared in this scope
> In file included from ./libsrc/include/../linalg/linalg.hpp:27,
>                  from ./libsrc/include/linalg.hpp:1,
>                  from ./libsrc/include/../meshing/meshing.hpp:6,
>                  from ./libsrc/include/meshing.hpp:1,
>                  from ngtcltk/ngappinit.cpp:8:
> ./libsrc/include/../linalg/vector.hpp: In member function 'netgen::FlatVector& netgen::FlatVector::operator=(const netgen::FlatVector&)':
> ./libsrc/include/../linalg/vector.hpp:25: error: 'memcpy' was not declared in this scope
> ./libsrc/include/../linalg/vector.hpp: In member function 'netgen::Vector& netgen::Vector::operator=(const netgen::FlatVector&)':
> ./libsrc/include/../linalg/vector.hpp:95: error: 'memcpy' was not declared in this scope
> ngtcltk/ngappinit.cpp: In function 'int main(int, char**)':
> ngtcltk/ngappinit.cpp:77: error: 'strlen' was not declared in this scope
> ngtcltk/ngappinit.cpp:133: error: 'strlen' was not declared in this scope
> ngtcltk/ngappinit.cpp:143: error: 'strcat' was not declared in this scope
> ngtcltk/ngappinit.cpp:144: error: 'strlen' was not declared in this scope
> ./libsrc/include/../general/array.hpp: In member function 'void netgen::ARRAY<T, BASE>::ReSize(int) [with T = int, int BASE = 0]':
> ./libsrc/include/../general/array.hpp:208:   instantiated from 'int netgen::ARRAY<T, BASE>::Append(const T&) [with T = int, int BASE = 0]'
> ./libsrc/include/../general/seti.hpp:33:   instantiated from here
> ./libsrc/include/../general/array.hpp:283: error: 'memcpy' was not declared in this scope
> ./libsrc/include/../general/array.hpp: In member function 'void netgen::ARRAY<T, BASE>::ReSize(int) [with T = netgen::Element2d, int BASE = 0]':
> ./libsrc/include/../general/array.hpp:192:   instantiated from 'void netgen::ARRAY<T, BASE>::SetSize(int) [with T = netgen::Element2d, int BASE = 0]'
> ./libsrc/include/../meshing/meshclass.hpp:149:   instantiated from here
> ./libsrc/include/../general/array.hpp:283: error: 'memcpy' was not declared in this scope
> ./libsrc/include/../general/array.hpp: In member function 'void netgen::ARRAY<T, BASE>::ReSize(int) [with T = netgen::Element, int BASE = 0]':
> ./libsrc/include/../general/array.hpp:192:   instantiated from 'void netgen::ARRAY<T, BASE>::SetSize(int) [with T = netgen::Element, int BASE = 0]'
> ./libsrc/include/../meshing/meshclass.hpp:156:   instantiated from here
> ./libsrc/include/../general/array.hpp:283: error: 'memcpy' was not declared in this scope
> ./libsrc/include/../general/array.hpp: In member function 'void netgen::ARRAY<T, BASE>::ReSize(int) [with T = netgen::ELEMENTTYPE, int BASE = 0]':
> ./libsrc/include/../general/array.hpp:192:   instantiated from 'void netgen::ARRAY<T, BASE>::SetSize(int) [with T = netgen::ELEMENTTYPE, int BASE = 0]'
> ./libsrc/include/../meshing/meshclass.hpp:157:   instantiated from here
> ./libsrc/include/../general/array.hpp:283: error: 'memcpy' was not declared in this scope
> ./libsrc/include/../general/array.hpp: In member function 'void netgen::ARRAY<T, BASE>::ReSize(int) [with T = netgen::Segment, int BASE = 0]':
> ./libsrc/include/../general/array.hpp:192:   instantiated from 'void netgen::ARRAY<T, BASE>::SetSize(int) [with T = netgen::Segment, int BASE = 0]'
> ./libsrc/include/../meshing/meshclass.hpp:164:   instantiated from here
> ./libsrc/include/../general/array.hpp:283: error: 'memcpy' was not declared in this scope
> ./libsrc/include/../general/array.hpp: In member function 'void netgen::ARRAY<T, BASE>::ReSize(int) [with T = netgen::FaceDescriptor, int BASE = 0]':
> ./libsrc/include/../general/array.hpp:208:   instantiated from 'int netgen::ARRAY<T, BASE>::Append(const T&) [with T = netgen::FaceDescriptor, int BASE = 0]'
> ./libsrc/include/../meshing/meshclass.hpp:510:   instantiated from here
> ./libsrc/include/../general/array.hpp:283: error: 'memcpy' was not declared in this scope
> ./libsrc/include/../general/array.hpp: In member function 'void netgen::ARRAY<T, BASE>::ReSize(int) [with T = double, int BASE = 0]':
> ./libsrc/include/../general/array.hpp:192:   instantiated from 'void netgen::ARRAY<T, BASE>::SetSize(int) [with T = double, int BASE = 0]'
> ./libsrc/include/../meshing/curvedelems.hpp:181:   instantiated from here
> ./libsrc/include/../general/array.hpp:283: error: 'memcpy' was not declared in this scope
> ./libsrc/include/../general/array.hpp: In member function 'void netgen::ARRAY<T, BASE>::ReSize(int) [with T = netgen::Vec<2>, int BASE = 0]':
> ./libsrc/include/../general/array.hpp:192:   instantiated from 'void netgen::ARRAY<T, BASE>::SetSize(int) [with T = netgen::Vec<2>, int BASE = 0]'
> ./libsrc/include/../general/array.hpp:313:   instantiated from 'netgen::ArrayMem<T, S>::ArrayMem(int) [with T = netgen::Vec<2>, int S = 80]'
> ./libsrc/include/../meshing/curvedelems.hpp:413:   instantiated from here
> ./libsrc/include/../general/array.hpp:283: error: 'memcpy' was not declared in this scope
> ./libsrc/include/../general/array.hpp: In member function 'void netgen::ARRAY<T, BASE>::ReSize(int) [with T = netgen::Vec<3>, int BASE = 0]':
> ./libsrc/include/../general/array.hpp:192:   instantiated from 'void netgen::ARRAY<T, BASE>::SetSize(int) [with T = netgen::Vec<3>, int BASE = 0]'
> ./libsrc/include/../general/array.hpp:313:   instantiated from 'netgen::ArrayMem<T, S>::ArrayMem(int) [with T = netgen::Vec<3>, int S = 120]'
> ./libsrc/include/../meshing/curvedelems.hpp:608:   instantiated from here
> ./libsrc/include/../general/array.hpp:283: error: 'memcpy' was not declared in this scope
> make[1]: *** [ngtcltk/ngappinit.o] Error 1
> make[1]: Leaving directory `/build/tbm/netgen-4.4'
> make: *** [debian/stamp-makefile-build] Error 2

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





More information about the Pkg-scicomp-devel mailing list