On Wed, Nov 20, 2013 at 4:04 PM, Craig A. Berry <craig.a.berry@gmail.com>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 before. 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. LeonThread Previous | Thread Next