TinyXML updated, panda died :(

After an emerge world yesterday, python audio stuff runs (yay!) and now Panda3d will neither run nor build (Noo!) Here’s an example of what I got this morning:

 $ python Tut-Steam-Example.py 
DirectStart: Starting the game.
Traceback (most recent call last):
  File "Tut-Steam-Example.py", line 7, in <module>
    import direct.directbase.DirectStart
  File "/usr/share/panda3d/direct/directbase/DirectStart.py", line 3, in <module>
    from direct.showbase import ShowBase
  File "/usr/share/panda3d/direct/showbase/ShowBase.py", line 10, in <module>
    from pandac.PandaModules import *
  File "/usr/share/panda3d/pandac/PandaModules.py", line 26, in <module>
    from libp3directModules import *
  File "/usr/share/panda3d/pandac/libp3directModules.py", line 2, in <module>
    Dtool_PreloadDLL("libp3direct")
  File "/usr/share/panda3d/pandac/extension_native_helpers.py", line 79, in Dtool_PreloadDLL
    imp.load_dynamic(module, pathname)
ImportError: /usr/lib/panda3d/libp3direct.so: undefined symbol: _ZrsRSiR9TiXmlNode

I figure I’ll rebuild and then it’ll be fine, right? It quit at 60%, like this…

$ ./makepanda/makepanda.py --everything
Generating library cache...
WARNING: Could not locate thirdparty package artoolkit, excluding from build
WARNING: Could not locate thirdparty package fcollada, excluding from build
WARNING: Could not locate thirdparty package nvidiacg, excluding from build
WARNING: Could not locate thirdparty package opencv, excluding from build
WARNING: Could not locate thirdparty package squish, excluding from build
WARNING: Could not locate thirdparty package vrpn, excluding from build
Generating dependencies...

[ 60%] Linking executable built/bin/p3dcparse
built/lib/libp3direct.so: undefined reference to `operator>>(std::basic_istream<char, std::char_traits<char> >&, TiXmlNode&)'
built/lib/libp3direct.so: undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, TiXmlNode const&)'
collect2: ld returned 1 exit status
Storing dependency cache.
Elapsed Time: 5 sec

Build terminated.

I’d have downgraded tinyxml but the previous working version is wiped out of the portage tree now. Fortunately, I don’t need to build the p3d runtime and nothing else in my system depends on tinyxml so I just unmerged it and Panda3d started its build over, and built through that point, and now works again. p3openal_audio works too 8)

I’ve encountered the same issue. But I’d like to build the runtime, which requires tinyxml.

It looks like your copy of tinyxml is built without STL support. Rebuild it with STL support, rebuild that part of Panda, and I think it should be fine.

Yes. rdb is right. I had the same problem. it was STL. I rebuilded my tinyxml with STL support.

Many people almost periodically encounter the problem of wrong compiled TinyXML or there’s no package available in their repos (In my case i became the maintainer).
Why can’t it be simply integrated and shipped with Panda? There are no problems with license and its size is less than 300KB, so also that should be no problem at all.

EDIT: yay! 400th post \o/

Already in the works, thanks to rdb’s proactive nature. :slight_smile:

David

Yay!

For the record, TinyXML is included in the latest CVS version of Panda3D and will also be in 1.7.1.