2010/2/20 Cédric VINCENT <[email protected]>: > Hi Stuart, > > I didn't try to build Poppler yet, however I can see that the QtCore > library in the current ARMedSlack does not provide the same > signature/mangling for the function "qvsnprintf": > > ced...@metalplug:~$ readelf -sW /usr/lib/qt/lib/libQtCore.so | > grep qvsnprintf > 3215: 000adfa0 36 FUNC GLOBAL DEFAULT 10 _Z10qvsnprintfPcjPKcPv > > ced...@metalplug:~$ c++filt _Z10qvsnprintfPcjPKcPv > qvsnprintf(char*, unsigned int, char const*, void*) > > Either you built libQtCore with a different version of GCC, or maybe > the auto-configuration system of Poppler did not detect the right way > to handle __va_list. > > For information, I saw the following warning when compiling another > C++ project (Squid): > > note: the mangling of ‘va_list’ has changed in GCC 4.4 > > It means the linker will not be able to resolve the reference with the > old signature/mangling anymore (for function that use va_list). As a > conclusion, one has to recompile the library with the same version of > the GCC compiler. > > Regards, > Cédric. >
Yep, the name mangling has changed in gcc 4.4 for 'va_list' on the arm architecture. It's one of these "new features" introduced by the gcc people so that programmers and maintainers have fun! :) After compiling poppler, readelf -sW /tmp/poppler-0.12.3/qt4/src/.libs/libpoppler-qt4.so | grep qvsnprintf gave: 966: 00000000 0 NOTYPE GLOBAL DEFAULT UND _Z10qvsnprintfPcjPKcSt9__va_list 2475: 00000000 0 NOTYPE GLOBAL DEFAULT UND _Z10qvsnprintfPcjPKcSt9__va_list and c++filt _Z10qvsnprintfPcjPKcSt9__va_list shows: qvsnprintf(char*, unsigned int, char const*, std::__va_list) The solution was to recompile the qt library, so that the qvsnprintf function is mangled in the new way and can be linked to when compiling poppler. The really fun part is, that after recompiling qt, poppler will compile fine, but everything else that uses the function needs to be recompiled as well :) And that might include several parts of KDE... Niels _______________________________________________ ARMedslack mailing list [email protected] http://lists.armedslack.org/mailman/listinfo/armedslack
