[vtkusers] downcasting in python wrappers in VTK 4.2.2

Justin Binns binns at mcs.anl.gov
Tue Jul 1 12:13:36 EDT 2003


Sure enough - that does it.  Many thanks to you!

Justin

On Tue, 1 Jul 2003, Brad King wrote:

> Justin,
> 
> > That fixed it!  Ok, so, because I'd like to know, what's the magic
> > that's happening here?  And is this something that could be done in some
> > sort of platform-specific part of the vtk import?  Thanks!
> 
> There is a bug in GCC versions after 2.95 that causes weak symbols (which
> result from inline methods like GetClassName) to be merged incorrectly for
> dlopen-ed shared libraries.  The virtual function tables end up pointing
> at different places in different libraries, so run-time invocation of them
> is incorrect.
> 
> The work-around is to tell dlopen to allow symbols to be shared across
> multiple libraries using the RTLD_GLOBAL flag.  Tcl uses this flag by
> default, but python does not.  The code I gave you enables that flag for
> python.
> 
> I didn't write the VTK python packaging code, so I'm not sure where this
> code should be added.  Please find __helper.py and add these lines to the
> bottom:
> 
> import os
> if os.name == 'posix':
>   import dl
>   sys.setdlopenflags(dl.RTLD_NOW|dl.RTLD_GLOBAL)
> 
> Then remove the lines from your script and see if the problem persists.
> 
> Thanks,
> -Brad
> 
> 




More information about the vtkusers mailing list