Re: ExtUtils-Depends 0.300 on Cygwin



On Sun, 2008-03-30 at 13:02 -0500, Yaakov (Cygwin Ports) wrote:

I tried today's release of EU-D 0.300, with the added support for
inter-module deps on Cygwin.  Unfortunately it doesn't quite work yet
for perl-5.10.

Thanks for testing.

While Cygwin's perl-5.8 used perlld for linking, which is a script that
would create an import library (libFoo.dll.a) when calling the linker,
perl-5.10 behaves exactly as on *NIX and calls gcc directly.  This means
that import libraries are no longer generated.  But since one can link
directly against the DLL, the fix would be to change:

cygwin  => sub { 'lib' . $_[0] . '.dll.a'},

to the following:

cygwin  => sub { $_[0] . '.dll'},

Oh, I didn't know that the libFoo.dll.a thing was perl-specific.  Will
linking against just Foo.dll work on perl 5.8.x, too?

But when that is done, I get the following:

Unrecognized argument in LIBS ignored:
'/usr/lib/perl5/vendor_perl/5.10/i686-cygwin/auto/Glib/Glib.dll'
Unrecognized argument in LIBS ignored:
'/usr/lib/perl5/vendor_perl/5.10/i686-cygwin/auto/Gtk2/Gtk2.dll'
Unrecognized argument in LIBS ignored:
'/usr/lib/perl5/vendor_perl/5.10/i686-cygwin/auto/Cairo/Cairo.dll'

This comes from ExtUtils::Liblist::Kid, which doesn't seem to like a
full pathname to the DLL in LIBS.  I don't follow the code there, so I'm
not sure if this would this happen on Linux as well, or not.


Yeah, I stumbled upon this, too:
<http://rt.cpan.org/Ticket/Display.html?id=21430>.  Also related:
<http://rt.cpan.org/Ticket/Display.html?id=14505> and
<http://rt.cpan.org/Ticket/Display.html?id=32894>.

The problem is that EU::MM simply swallows every linker flag it doesn't
recognize, which I think is a bug.ï

~From there, perhaps we can figure out if EU::Liblist::Kid needs to be
patched, or if EU::D can work around this.

In <http://bugzilla.gnome.org/show_bug.cgi?id=371464>, Dirk Froemberg
suggests using "-L/path/to/Foo -lFoo" instead of the full path.  That's
recognized by EU::MM and thus not ignored.

-- 
Bye,
-Torsten




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]