![]() |
|
No such thing as a small change | |
PerlMonks |
Re: Dynaloader/XS: sharing C symbols across shared objectsby syphilis (Bishop) |
on Jun 10, 2008 at 01:18 UTC ( #691135=note: print w/replies, xml ) | Need Help?? |
Basically, if the Hello.pm shared object exports the say_hello() function, then all works fine. Otherwise you get the failure you reported. There's an (documented) EU::MM parameter called FUNCLIST that's helpful here, but it hasn't been made available to Inline::C - so I think that, wrt Inline::C, you're snookered. (Though, having said that, someone may well come up with a different solution.) However, if you convert Hello.pm to a normal XS module, and provide WriteMakefile() in its Makefile.PL with: then all should work fine. At least it does for me, on Win32. However, as I understand it, you don't control the real world equivalent of "Hello.pm". Does that, in itself, pose a problem ? Cheers, Rob Update: Inserted boot_Hello into the FUNCLIST arg. (It's also needed, I believe.) Update 2:The Inline::C script also then needs to link to the Hello shared object or it's import lib. (Things aren't being quite as simple as I recall ... it's looking more and more kludgy by the minute :-)
In Section
Seekers of Perl Wisdom
|
|