Alan Burlison wrote: > > Marc Mettes wrote: > > > When I remove the -Bsymbolic option, the main cad executable displays > > a trivial message that the application (my .so with embedded perl) cannot > > be loaded. No other error messages are displayed unfortunately. > > > > Another developer mentioned similar problems with this same API on linux > > and sgi without attempting to embed perl. There is a possibility that the > > problem is related to the way the main cad executable uses dlopen() itself, > > and may not be related to perl at all. > > Sounds like it.
After speaking with the CAD software (Pro/Engineer) vendor, they confirmed that dll extensions using their Pro/Tookit library API are not opened with the RTLD_GLOBAL mode on Solaris (and possibly all unix platforms). As far as I can tell, without some tricks with a wrapper library, the dll mode application cannot load dynamically linked XSUB's. The spawn mode (standalone executable) extension works just fine, so I have something to play with until the vendor fixes the problem (1-2 years at least), if ever. This problem is not present on the windows platform. Using a binary distribution straight from activestate, I can use dynamically linked XSUB's in the dll and spawn modes with little to no modification of the XS code. My goal is to make this usable with standard downloadable components without requiring a C compiler. Thanks to all who provided the tools to discover the real problem! Marc -- Marc Mettes CAD Support Bic Corporation
