4.3.x linux packages and collada support (also affects master with gcc 4.6)

Jan-Marek Glogowski glogow at fbihome.de
Mon Sep 29 01:41:16 PDT 2014


Hi,

just want to add, that the Ubuntu 12.04 master TB build (gcc 4.6) just
builds with "--disable-collada". I just checked again and fixed the
build errors locally:


1. It doesn't find unordered_map for whatever reason, but calls g++ with
-std=gnu++0x

I get:

workdir/UnpackedTarball/collada2gltf/GLTF/GLTFProfile.h:33:9: error:
‘unordered_map’ in namespace ‘std’ does not name a type

But workdir/UnpackedTarball/collada2gltf/GLTF/GLTF.h has:

#if (defined(WIN32) || defined(_LIBCPP_VERSION) || __cplusplus > 199711L)
#include <memory>
#include <unordered_map>
#else
#include <tr1/memory>
#include <tr1/unordered_map>
#endif

So either the "#if" preprozessor macro is wrong or it's a g++ / stdlib
error, as g++ finds unordered_map, if I manually select <unordered_map>
instead of <tr1/unordered_map>.

Same applies to
workdir/UnpackedTarball/collada2gltf/GLTF/GLTFExtraDataHandler.h


2. It tries to use the std::tr1 namespace

This is disguised version of the first error. This is fixed by running

# find workdir/UnpackedTarball/collada2gltf -type f -print0 | xargs -0
sed -i -e '/^using namespace std::tr1;$/d'

There are a lot of in the code. Not sure why it's not the same macro
then in the headers:

#if __cplusplus <= 199711L
using namespace std::tr1;
#endif

Otherwise I see a lot of

collada2gltf/COLLADA2GLTFWriter.cpp:133:84: error: reference to
‘shared_ptr’ is ambiguous
/usr/include/c++/4.6/bits/shared_ptr_base.h:264:11: error: candidates
are: template<class _Tp> class std::shared_ptr
/usr/include/c++/4.6/tr1/shared_ptr.h:510:11: error:
template<class _Tp> class std::tr1::shared_ptr

which also breaks my build.

Anybody has an Idea, which is the corect __cplusplus version for the macro?

Regards,

Jan-Marek


More information about the LibreOffice mailing list