> On Tue, Feb 14, 2012 at 11:08, Roderich Schupp
> <roderich.sch...@googlemail.com> wrote:
> > But maybe this has changed (it was a Windows only
> > phenomenon, anyway).
> > As I said, I'll have a look, but don't hold your breath.
> 
> I downloaded the latest gtk+-bundle from
> http://ftp.gnome.org/pub/gnome/binaries/win32
> and build the latest Gtk2 and dependencies from CPAN.
> 
> The problem is still there: for example .../auto/Pango/Pango.dll
> references symbols
> from .../auto/Cairo/Cairo.dll and .../auto/Flib/Glib.dll - so
> executive summary is:
> it will not work.
> 
> TL;DR: On Linux (or any ELF-based system)
> you can get away with this: have unresolved symbols in the DLL, but
> don't mention
> the resolving shared library in the NEEDED list. As long as 
> you manage that
> the resolving library has been loaded _before_ Pango.dll is 
> loaded, then the
> symbol will be resolved. And Pango.pm does "use Cairo" which 
> causes Cairo.dll
> to be loaded before its own bootstrap causes Pango.dll to be loaded.

... which sometimes faces a problem when different shared libraries (.so)
have symbols with same name, and this problem is harder to resolve.


> Apparently the Windows runtime
> loader "remembers" the already loaded DLLs using the filename as the
> key, hence does not know that 406bec98.dll is the same as Cairo.dll
> The result is a pop-up "Can't find Cairo.dll".

This "Cairo.dll" - is it part of Perl CPAN module?

if YES - then proper CPAN perl module should be updated to improve its 
logic (what is it, BTW?)

if - NOT - then the problem could be resolved by adding  needed
DLLs into the PAR executable with "-l" - it does not renames them, AFAIK.

(BTW, I haven't PAR-packed Gtk, so please do not count on my opinion)

Vadim.

Reply via email to