[Pkg-kde-extras] Bug#466901: FTBFS with GCC 4.3: missing #includes

Martin Michlmayr tbm at cyrius.com
Thu Feb 21 18:52:03 UTC 2008


Package: exiv2
Version: 0.16-3
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 from unstable.

> Automatic build of exiv2_0.16-3 on em64t by sbuild/amd64 0.53
...
>  g++ -g -Wall -O2 -Wall -Wcast-align -Wconversion -Wpointer-arith -Wformat-security -Wmissing-format-attribute -W -I. -DEXV_LOCALEDIR=\"/usr/share/locale\" -I../include -funsigned-char -DNDEBUG=1 -c XMPMeta.cpp  -fPIC -DPIC -o .libs/XMPMeta.o
> In file included from XMPMeta.cpp:13:
> XMPCore_Impl.hpp: In function 'bool IsPathPrefix(const char*, const char*)':
> XMPCore_Impl.hpp:372: error: 'strlen' is not a member of 'std'
> XMPCore_Impl.hpp:373: error: 'strncmp' is not a member of 'std'
> XMPMeta.cpp: In function 'XMP_Status DumpStringMap(const XMP_StringMap&, const char*, XMP_Status (*)(void*, const char*, XMP_StringLen), void*)':
> XMPMeta.cpp:107: error: 'strlen' was not declared in this scope
> XMPMeta.cpp: In function 'XMP_Status DumpNodeOptions(XMP_OptionBits, XMP_Status (*)(void*, const char*, XMP_StringLen), void*)':
> XMPMeta.cpp:177: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:182: error: 'strlen' was not declared in this scope
> XMPMeta.cpp: In function 'XMP_Status DumpPropertyTree(const XMP_Node*, int, size_t, XMP_Status (*)(void*, const char*, XMP_StringLen), void*)':
> XMPMeta.cpp:217: warning: format '%d' expects type 'int', but argument 4 has type 'size_t'
> XMPMeta.cpp:217: warning: format '%d' expects type 'int', but argument 4 has type 'size_t'
> XMPMeta.cpp:217: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:235: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:241: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:243: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:245: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:259: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:260: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:261: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:263: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:275: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:276: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:280: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:283: error: 'strlen' was not declared in this scope
> XMPMeta.cpp: In static member function 'static void XMPMeta::GetVersionInfo(XMP_VersionInfo*)':
> XMPMeta.cpp:454: error: 'memset' was not declared in this scope
> XMPMeta.cpp: In static member function 'static bool XMPMeta::Initialize()':
> XMPMeta.cpp:576: warning: unused variable 'flag'
> XMPMeta.cpp: In static member function 'static XMP_Status XMPMeta::DumpNamespaces(XMP_Status (*)(void*, const char*, XMP_StringLen), void*)':
> XMPMeta.cpp:723: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:731: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:739: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:751: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:759: error: 'strlen' was not declared in this scope
> XMPMeta.cpp: In static member function 'static XMP_Status XMPMeta::DumpAliases(XMP_Status (*)(void*, const char*, XMP_StringLen), void*)':
> XMPMeta.cpp:801: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:817: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:821: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:822: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:825: error: 'strlen' was not declared in this scope
> XMPMeta.cpp: In static member function 'static void XMPMeta::RegisterStandardAliases(const char*)':
> XMPMeta.cpp:1218: error: 'strcmp' is not a member of 'std'
> XMPMeta.cpp:1230: error: 'strcmp' is not a member of 'std'
> XMPMeta.cpp:1241: error: 'strcmp' is not a member of 'std'
> XMPMeta.cpp:1252: error: 'strcmp' is not a member of 'std'
> XMPMeta.cpp:1252: error: 'strcmp' is not a member of 'std'
> XMPMeta.cpp:1261: error: 'strcmp' is not a member of 'std'
> XMPMeta.cpp: In member function 'XMP_Status XMPMeta::DumpObject(XMP_Status (*)(void*, const char*, XMP_StringLen), void*) const':
> XMPMeta.cpp:1293: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:1305: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:1312: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:1340: error: 'strlen' was not declared in this scope
> XMPMeta.cpp:1345: error: 'strlen' was not declared in this scope
> make[2]: *** [XMPMeta.o] Error 1
> make[2]: Leaving directory `/build/tbm/exiv2-0.16/xmpsdk/src'
> make[1]: *** [xmpsdk] Error 2

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





More information about the pkg-kde-extras mailing list