Skip Menu |

This queue is for tickets about the Module-Crypt CPAN distribution.

Report information
The Basics
Id: 91056
Status: new
Priority: 0/
Queue: Module-Crypt

People
Owner: Nobody in particular
Requestors: fraserbn [...] gmail.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Workaround for buggy behavior in CBuilder
Howdy! This might be a tad annoying, since your module does nothing wrong, but ExtUtils::CBuilder has a bug on platforms that define DynaLoader::mod2fname (VMS, OS2 and Android by default. In the future, possibly anything) that you'll have to work around for Module::Crypt to work on those. Some background. What mod2fname does is tweak the library name that CBuilder/Makemaker/etc produces. For example, on Android, Hash/Util/Util.so becomes Hash/Util/PL_Hash__Util.so; on VMS it's practically the same thing but with a different extension. The bug manifests is a couple of a different ways; for VMS, $cbuilder->lib_file(...)/$cbuilder->link() returns a library name different than what DynaLoader would try looking for. On OS2, $cbuilder->lib_file(...) returns a different name than what $cbuilder->link(...) does, even if you call it as $cbuilder->link(lib_file => $cbuilder->lib_file(...)). The workaround is pretty simple: Remove the explicit call to ->lib_file and the lib_file parameter to link, and let ->link() compute it on its own. That should get M:C working on all three platforms, but only on perl 5.20+. On the other hand, if you want to have M:C working on VMS with older perls, you'll have to use your own version of lib_file, ala this: http://perl5.git.perl.org/perl.git/blobdiff/374516c223a92d1e2e36ba1fce31523e234cc499..598cd34e1e9b9e41360ee32971caf8ae799cc259:/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm (but keep in mind that that branch hasn't been merged into the perl core, so it might change)