Shorten error message:
/usr/bin/g++ -fPIC -shared -Wl,-soname,libosgUtil.so.6 -o ../../lib/libosgUtil.so.6.0.0 "many *.o" -L/build/buildd/openscenegraph-2.2/build/osg/lib -losg -lOpenThreads -lGLU -lGL -lSM -lICE -lX11 -lXext -lm -lpthread -Wl,-rpath,/build/buildd/openscenegraph-2.2/build/osg/lib /usr/bin/ld: CMakeFiles/osgUtil.dir/Optimizer.o(.text._ZNSt8_Rb_tree… …IjSt4pairIKjSt3setIPN3osg9Texture2DESt4lessIS5_ESaIS5_EEESt10_S… …elect1stISA_ES6_IjESaISA_EE9_M_insertEPSt18_Rb_tree_node_baseSH… …_RKSA_("unmangled name"): cannot reach 0000393f__ZNSt10_Select1… …stISt4pairIKjSt3setIPN3osg9Texture2DESt4lessIS5_ESaIS5_EEEEC1Ev+0, recompile with -ffunction-sections /usr/bin/ld: final link failed: Bad value
First, just in case demangling is needed (that's not the case, but
imagine), there's a nice tool to get the signature back (output
skipped, it is very huge, that C++!). That's
c++filt from the
c++filt _ZNSt8_Rb_treeIjSt4pairIKjSt3setIPN3osg9Texture2DESt4lessIS\ 5_ESaIS5_EEESt10_Select1stISA_ES6_IjESaISA_EE9_M_insertEPSt18_Rb_tr\ ee_node_baseSH_RKSA_
Then, one tends to trust the compiler. Added the following to the
cmake command in
But not much better. Oh wait, there's a quite interesting string in
the build log now:
cannot handle R_PARISC_PCREL17F, which looks like
quite arch-dependant and perfect to be searched through the internets.
From http://www.projectblackdog.com/3rdParty/gcc/HPPA-Options.html, the relevant parts:
Generate code that uses long call sequences. This ensures that a call is always able to reach linker generated stubs. […] It is normally not desirable to use this option as it will degrade performance. However, it may be useful in large applications, particularly when partial linking is used to build the application.
It looks like it might do the job. And indeed it does. Conditionally
added for the
hppa architecture. And
-ffunction-sections isn't even
And it looks like the number of blockers for the transition to
testing has been reduced.