develooper Front page | perl.perl5.porters | Postings from January 2014

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

Thread Previous | Thread Next
From:
Leon Timmermans
Date:
January 7, 2014 15:56
Subject:
Re: Option to use and create "unique" library names
Message ID:
CAHhgV8hFn1Xi3u-Wvg-S75aGzRhBuAu4EP4+oVkqVdDKYooZ3Q@mail.gmail.com
On Tue, Jan 7, 2014 at 7:52 AM, bulk88 <bulk88@hotmail.com> wrote:

>  I'm wondering a little bit if Win32 Perl needs this. Win32's runtime
> linker does the same basename matching unless you pass an absolute path
> (Dynaloader passes absolute paths to Win32's runtime linker). A big problem
> results, if a XS DLL has the same filename as non-XS DLL, and another DLL
> tries to link to the filename, and linker finds the XS DLL instead, which
> only exports the boot function, not dozens of non-Perl C functions. Here is
> one with version::'s version.dll conflicting with MS's version.dll (MS
> version.dll is a metadata library for PE files's "version resource")
> https://rt.cpan.org/Ticket/Display.html?id=88458#txn-1308331 . I also
> recently ran into this problem with building http://search.cpan.org/~
> pjacklam/Math-BigInt-GMP-1.37/lib/Math/BigInt/GMP.pm which generated a
> GMP.dll, which linked to gmp.dll, and couldn't be loaded into any process
> due to missing functions (GMP.dll the XS lib's imported functions were
> attempted to be resolved with GMP.dll the XS lib's exported function table
> by the Win32 runtime linker, instead of searching for another gmp.dll using
> the default collection of folders). I had to rename the C function
> exporting gmp.dll to something else and recompile to make it work.
>

Yeah. that sounds like a good idea.

Leon

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About