develooper Front page | perl.perl5.porters | Postings from November 2013

Re: Option to use and create "unique" library names

Thread Previous | Thread Next
Leon Timmermans
November 27, 2013 00:21
Re: Option to use and create "unique" library names
Message ID:
On Wed, Nov 20, 2013 at 4:04 PM, Craig A. Berry <>wrote:

> We've done this since forever on VMS; the actual shareable image
> (dynamic library) names come out as PL_HASH__UTIL.EXE and
> PL_LIST__UTIL.EXE.  There is a function called DynaLoader::mod2fname
> that gets called from XSLoader::load.  Here's what it does:
> $ perl -MDynaLoader -e "@a=('Module','SubModule','SubSubModule');
> print DynaLoader::mod2fname(\@a);"
> PL_Module__SubModule__SubSubModule
> So I think you can get what you want by simply implementing a
> mod2fname function (ours is in vms/vms.c, but dl_xxx.xs might be a
> better place for a new one).  And I think there's a good chance you
> wouldn't need any MakeMaker modifications as mod2fname, if it exists,
> is already called from MM_Unix::init_main().
> Plus it seems less than optimal to introduce an entirely new mechanism
> to do something for which there is already an existing mechanism.

Actually, it seems ExtUtils::CBuilder is currently not doing this correctly
(it only passes the basename to mod2fname). Module::Build contains a
workaround that does do the right thing, which is why no one noticed this

I *really* hate how just about any feature in ExtUtils::CBuilder that isn't
used by Module::Build can be assumed to be broken or unusable on some
non-Linux-like platform (unless someone fixed it in the past couple of
years), if not all of them.


Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About