On Wed, Nov 20, 2013 at 6:41 AM, Brian Fraser <fraserbn@gmail.com> wrote: > Background: > Android's linker has some bugg^Wunusual behavior, in that it caches loaded > libraries, but only uses the basename in the cache. That means that, > as far as its dlopen() is concerned, the libraries for Hash::Util and > List::Util, > both of which are named Util.so, are the same. > > What we did in the android branch was introduce an option, d_libname_unique, > that when defined, has Makemaker create an "unique" libname for each module, > and teaches XSLoader and Dynaloader to look for those; So for example, > Hash/Util/Util.so becomes Hash/Util/Perl_Hash_Util.so. > > The changes for this are in > http://perl5.git.perl.org/perl.git/shortlog/refs/heads/hugmeir/d_libname_unique > and can be tested by compiling perl with -Dd_libname_unique. > > Any objections to this going in? Yes, I do have one. I think this should be fixed in Android and not be the burden of every damn platform or language to fix. There are more than perl which will stumble over this, and IMHO the Google staff who invented this should get the whips where it hurts. If we work around this issue for perl than Google is likely never fixing their broken linker. IrekThread Previous | Thread Next