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

Reply via email to