OSX SDK Panda3D-2010.06.21-190 Problems

I’m having some problems running Panda using the latest SDK snapshot Panda3D-2010.06.21-190.dmg on OSX 10.5 32-bit intel.

The first issue I run into is a missing library:

Traceback (most recent call last):
  File "main.py", line 10, in <module>
    from pandac.PandaModules import loadPrcFileData
  File "/Developer/Panda3D/lib/pandac/PandaModules.py", line 8, in <module>
    from libpandaModules import *
  File "/Developer/Panda3D/lib/pandac/libpandaModules.py", line 2, in <module>
    Dtool_PreloadDLL("libpanda")
  File "/Developer/Panda3D/lib/pandac/extension_native_helpers.py", line 79, in Dtool_PreloadDLL
    imp.load_dynamic(module, pathname)
ImportError: dlopen(/Developer/Panda3D/lib/libpanda.dylib, 2): Library not loaded: librfftw.2.0.7.dylib
  Referenced from: /Developer/Panda3D/lib/libpanda.dylib
  Reason: image not found

Running

otool -L /Developer/Panda3D/lib/libpanda.dylib

shows no path for the linked FFW library.

	/Developer/Panda3D/lib/libpanda.dylib (compatibility version 1.7.0, current version 1.7.1)
	/Developer/Panda3D/lib/libpandaexpress.1.7.dylib (compatibility version 1.7.0, current version 1.7.1)
	/Developer/Panda3D/lib/libp3dtoolconfig.1.7.dylib (compatibility version 1.7.0, current version 1.7.1)
	/Developer/Panda3D/lib/libp3dtool.1.7.dylib (compatibility version 1.7.0, current version 1.7.1)
	/Developer/Panda3D/lib/libavformat.52.44.0.dylib (compatibility version 52.0.0, current version 52.44.0)
	/Developer/Panda3D/lib/libavcodec.52.43.0.dylib (compatibility version 52.0.0, current version 52.43.0)
	/Developer/Panda3D/lib/libavutil.50.7.0.dylib (compatibility version 50.0.0, current version 50.7.0)
	/Developer/Panda3D/lib/libswscale.0.7.2.dylib (compatibility version 0.0.0, current version 0.7.2)
	/Developer/Panda3D/lib/libfftw.2.0.7.dylib (compatibility version 3.0.0, current version 3.7.0)
	librfftw.2.0.7.dylib (compatibility version 3.0.0, current version 3.7.0)
	/usr/X11/lib/libfreetype.6.dylib (compatibility version 10.0.0, current version 10.16.0)
	@executable_path/../Library/Frameworks/Cg.framework/Cg (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libssl.0.9.7.dylib (compatibility version 0.9.7, current version 0.9.7)
	/usr/lib/libcrypto.0.9.7.dylib (compatibility version 0.9.7, current version 0.9.7)
	/usr/X11/lib/libpng12.0.dylib (compatibility version 27.0.0, current version 27.0.0)
	/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 949.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.0.0)
	/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)

My attempt to workaround this was to copy the librfftw.2.0.7.dylib file to my working directory. This causes another problem:

Attempt to register type Namable more than once!
Attempt to register type TextEncoder more than once!
Attempt to register type VirtualFileComposite more than once!
Attempt to register type VirtualFileMountMultifile more than once!
Attempt to register type VirtualFileMountSystem more than once!
Attempt to register type VirtualFileSimple more than once!
Attempt to reference unregistered TypeHandle!
Registered TypeHandles are:
  1 Filename
  2 PandaSystem
  3 TypedObject
    5 TypedReferenceCount : TypedObject, ReferenceCount
      6 HTTPChannel : TypedReferenceCount
      7 VirtualFile : TypedReferenceCount
        8 VirtualFileHTTP : VirtualFile
        15 VirtualFileComposite : VirtualFile
        18 VirtualFileSimple : VirtualFile
      9 VirtualFileMount : TypedReferenceCount
        10 VirtualFileMountHTTP : VirtualFileMount
        16 VirtualFileMountMultifile : VirtualFileMount
        17 VirtualFileMountSystem : VirtualFileMount
    11 Datagram : TypedObject
  4 ReferenceCount
    5 TypedReferenceCount : TypedObject, ReferenceCount
      6 HTTPChannel : TypedReferenceCount
      7 VirtualFile : TypedReferenceCount
        8 VirtualFileHTTP : VirtualFile
        15 VirtualFileComposite : VirtualFile
        18 VirtualFileSimple : VirtualFile
      9 VirtualFileMount : TypedReferenceCount
        10 VirtualFileMountHTTP : VirtualFileMount
        16 VirtualFileMountMultifile : VirtualFileMount
        17 VirtualFileMountSystem : VirtualFileMount
    13 NodeReferenceCount : ReferenceCount
  12 Namable
  14 TextEncoder
  19 long
  20 int
  21 uint
  22 short
  23 ushort
  24 char
  25 uchar
  26 bool
  27 double
  28 float
  29 string
  30 int*
  31 short*
  32 char*
  33 bool*
  34 double*
  35 float*
  36 void*
  37 pvector
  38 ov_set
  39 pdeque
  40 plist
  41 pmap
  42 pset
Assertion failed: (child_node != (TypeRegistryNode *)NULL && base_node != (TypeRegistryNode *)NULL), function is_derived_from, file dtool/src/dtoolbase/typeRegistry.cxx, line 307.
Abort trap

I’m currently building from source, so I’ll see if I can get around this.

Thanks,
Dustin

Ugh. Looking at the build log for this build:

install_name_tool -change librfftw.2.0.7.dylib /Developer/Panda3D/lib/librfftw.2.0.7.dylib dstroot/base/Developer/Panda3D/lib/libpanda.dylib
install_name_tool: changing install names can't be redone for: dstroot/base/Developer/Panda3D/lib/libpanda.dylib (for architecture ppc7400) because larger updated load commands do not fit (the program must be relinked)
Process exited with exit status 1 and signal code 0

Looking at the output for “lipo -info” for this library, it seems that libpanda.dylib has architecture ppc7400 while librfftw.dylib has architecture ppc.

I’m going to try rolling out a build against the Tiger SDK, to see if that fixes things. I’ll let you know when it’s finished, so you can try.

As for your other issue - I have no idea. It appears that two copies of Panda3D are loaded into memory. Does it even occur if you simply try to run “pview”?

Never mind, I was entirely wrong. The issue turned out to be something completely different.

Can you try installing the latest buildbot release? It should fix the issue.

I downloaded Panda3D-2010.06.24-197.dmg and the first problem is gone!, but I’m still running into the “Attempt to register … more than once” errors, followed by a crashing of Python with:

Assertion failed: (child_node != (TypeRegistryNode *)NULL && base_node != (TypeRegistryNode *)NULL), function is_derived_from, file dtool/src/dtoolbase/typeRegistry.cxx, line 307.

More details on the problem:


Date/Time:       2010-06-24 14:16:31.728 -0400
OS Version:      Mac OS X 10.5.8 (9L31a)
Report Version:  6
Anonymous UUID:  73CCD1BC-4374-4C5D-8F5F-E2AEF1A4EB7D

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread:  0

Thread 0 Crashed:
0   libSystem.B.dylib             	0x9773ee42 __kill + 10
1   libSystem.B.dylib             	0x977b123a raise + 26
2   libSystem.B.dylib             	0x977bd679 abort + 73
3   libSystem.B.dylib             	0x977b23db __assert_rtn + 101
4   libp3dtool.1.7.dylib          	0x005621c4 TypeRegistry::is_derived_from(TypeHandle, TypeHandle, TypedObject*) + 196
5   libpandaexpress.1.7.dylib     	0x03caaf4a VirtualFileMountHTTP::reload_vfs_mount_url() + 250
6   libpandaexpress.1.7.dylib     	0x03cabd1b init_libdownloader() + 59
7   libpandaexpress.1.7.dylib     	0x03e4e84c __static_initialization_and_destruction_0(int, int) + 108
8   dyld                          	0x8fe12f36 ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) + 246
9   dyld                          	0x8fe0e7e3 ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int) + 307
10  dyld                          	0x8fe0e775 ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int) + 197
11  dyld                          	0x8fe0e8c9 ImageLoader::runInitializers(ImageLoader::LinkContext const&) + 57
12  dyld                          	0x8fe02202 dyld::runInitializers(ImageLoader*) + 34
13  dyld                          	0x8fe0bbdd dlopen + 605
14  libSystem.B.dylib             	0x976da2a2 dlopen + 66
15  org.python.python             	0x002c6d83 _PyImport_GetDynLoadFunc + 291
16  org.python.python             	0x002b08c9 _PyImport_LoadDynamicModule + 121
17  org.python.python             	0x002b043d imp_load_dynamic + 109
18  org.python.python             	0x00293755 PyEval_EvalFrameEx + 19429
19  org.python.python             	0x002940d6 PyEval_EvalFrameEx + 21862
20  org.python.python             	0x002958cd PyEval_EvalCodeEx + 2109
21  org.python.python             	0x002959e7 PyEval_EvalCode + 87
22  org.python.python             	0x002aceec PyImport_ExecCodeModuleEx + 188
23  org.python.python             	0x002adb8c load_source_module + 540
24  org.python.python             	0x002ae7ad import_submodule + 301
25  org.python.python             	0x002aea09 load_next + 201
26  org.python.python             	0x002af3b1 PyImport_ImportModuleLevel + 337
27  org.python.python             	0x0028814f builtin___import__ + 159
28  org.python.python             	0x001e22a5 PyObject_Call + 85
29  org.python.python             	0x0028dbae PyEval_CallObjectWithKeywords + 78
30  org.python.python             	0x00291140 PyEval_EvalFrameEx + 9680
31  org.python.python             	0x002958cd PyEval_EvalCodeEx + 2109
32  org.python.python             	0x002959e7 PyEval_EvalCode + 87
33  org.python.python             	0x002aceec PyImport_ExecCodeModuleEx + 188
34  org.python.python             	0x002adb8c load_source_module + 540
35  org.python.python             	0x002ae7ad import_submodule + 301
36  org.python.python             	0x002aea09 load_next + 201
37  org.python.python             	0x002af403 PyImport_ImportModuleLevel + 419
38  org.python.python             	0x0028814f builtin___import__ + 159
39  org.python.python             	0x001e22a5 PyObject_Call + 85
40  org.python.python             	0x0028dbae PyEval_CallObjectWithKeywords + 78
41  org.python.python             	0x00291140 PyEval_EvalFrameEx + 9680
42  org.python.python             	0x002958cd PyEval_EvalCodeEx + 2109
43  org.python.python             	0x002959e7 PyEval_EvalCode + 87
44  org.python.python             	0x002ba4d8 PyRun_FileExFlags + 168
45  org.python.python             	0x002bb3c3 PyRun_SimpleFileExFlags + 867
46  org.python.python             	0x002cce9a Py_Main + 3130
47  org.python.python             	0x00001fb6 0x1000 + 4022

Thread 0 crashed with X86 Thread State (32-bit):
  eax: 0x00000000  ebx: 0x977bd639  ecx: 0xbfffac6c  edx: 0x9773ee42
  edi: 0x004286c4  esi: 0x00566750  ebp: 0xbfffac88  esp: 0xbfffac6c
   ss: 0x0000001f  efl: 0x00000282  eip: 0x9773ee42   cs: 0x00000007
   ds: 0x0000001f   es: 0x0000001f   fs: 0x00000000   gs: 0x00000037
  cr2: 0x00437f10

Binary Images:
    0x1000 -     0x1ff8 +org.python.python 2.6.4 (2.6.4) <6a16078d48b06bf97eb628516f3680d2> /opt/local/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python
  0x1d8000 -   0x300feb +org.python.python 2.6.4, (c) 2004-2008 Python Software Foundation. (2.6.4) <5856f2c2ddb293417d2942e21c7ce2a7> /opt/local/Library/Frameworks/Python.framework/Versions/2.6/Python
  0x540000 -   0x56afe7 +libp3dtool.1.7.dylib ??? (???) <2e7fb95a618f38ecb323588217c745c6> /Developer/Panda3D/lib/libp3dtool.1.7.dylib
  0x581000 -   0x5caff3 +libp3dtoolconfig.1.7.dylib ??? (???) <ca5f5863a21dcf17e45ac502fd4b9ddc> /Developer/Panda3D/lib/libp3dtoolconfig.1.7.dylib
  0x60e000 -   0x6b7ff7 +libavformat.52.44.0.dylib ??? (???) <a1fe43c02ef29521314bcff3f791d496> /Developer/Panda3D/lib/libavformat.52.44.0.dylib
  0x78e000 -   0x798fff +libavutil.50.7.0.dylib ??? (???) <364f847e4134bf3ae03239808184c217> /Developer/Panda3D/lib/libavutil.50.7.0.dylib
  0x7a1000 -   0x7c2ffb +libswscale.0.7.2.dylib ??? (???) <913fbb379016b35b9ac58af3da1b3c00> /Developer/Panda3D/lib/libswscale.0.7.2.dylib
...

Does that issue happen with pview, too?

Also, are you sure you don’t have multiple versions of Panda3D installed at the same time, like 1.6.x (in /Applications/Panda3D/) and 1.7.x (in /Developer/Panda3D/)?

No, pview works. I removed all Panda installs and the ~/Library/Cache/Panda3D directory. Could it be loading from the same install multiple times?

Thanks,
Dustin

I just checked in a fix, and I think the latest buildbot release fixes this.

Oh, very good! Rdb rocks!

David

Heyas,

Just grabbed the 1.7.0 build and the 2010.08.03-238.dmg and both have this issue still:

lipo -info /Developer/Panda3D/lib/librfftw.2.0.7.dylib
Architectures in the fat file: /Developer/Panda3D/lib/librfftw.2.0.7.dylib are: ppc i386 

lipo -info /Developer/Panda3D/lib/libpanda.1.7.dylib
Architectures in the fat file: /Developer/Panda3D/lib/libpanda.1.7.dylib are: i386 ppc7400 

pview
dyld: Library not loaded: @executable_path/../Library/Frameworks/Cg.framework/Cg
  Referenced from: /Developer/Panda3D/lib/libpanda.1.7.dylib
  Reason: image not found
Trace/BPT trap

Ditto pview :frowning:

Did you install the required NVIDIA Cg Toolkit from their website?

So aparently i missed this:

developer.nvidia.com/object/cg_download.html

fixed!