Subject: | EU::Liblist::Kid chokes on -Wl,-framework flags |
Date: | Sun, 3 Feb 2008 01:03:31 -0500 |
To: | bug-ExtUtils-MakeMaker [...] rt.cpan.org |
From: | Daniel Macks <dmacks [...] netspace.org> |
While compiling Gtk2-GladeXML-1.006 on OS X 10.4 (Apple's perl5.8.6),
I got a warning during "perl Makefile.PL":
Checking if your kit is complete...
Looks good
Unrecognized argument in LIBS ignored: '-Wl,-framework,CoreServices,-framework,ApplicationServices'
Writing Makefile for Gtk2::GladeXML
Sure enough, Makefile.PL is passing that flag to WriteMakefile (based
on pkg-config results):
'LIBS' => '-L/sw/lib -lgobject-2.0 -lglib-2.0 -lintl -liconv -lgthread-2.0 -Wl,-framework,CoreServices,-framework,ApplicationServices -L/sw/lib/pango-ft219/lib -L/sw/lib/fontconfig2/lib -L/sw/lib/freetype219/lib -L/usr/X11R6/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -lXrandr -lXrender -lXinerama -lXext -lX11 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lXcursor -lcairo -lpangoft2-1.0 -lfontconfig -lfreetype -lz -lpango-1.0 -lm -lgmodule-2.0'
Why doesn't MakeMaker like "-Wl,-framework,Foo", which is a perfectly
legitimate linker flag? As a result of it not being recognized as a
viable linker flag, the Makefile does not include it in EXTRALIBS or
LDLOADLIBS. For Gtk2-GladeXML, it's not a problem (the symbols in
those frameworks aren't directly needed by this module, but it could
be a problem for modules whose XS actually does need those -framework
flags.
I don't know the ins and outs of MakeMaker, but the immediate trigger
for this warning is in ExtUtils::Liblist::Kid::_unix_os2_ext(), where
it appears that the only expected flags in LIBS are "-L", "-R",
"-Wl,-R", and -"-l". I'm seeing it with Kid.pm $VERSION=1.30_01 from
Apple, and this region of code looks the same in Kid.pm from
ExtUtils-MakeMaker-6.52 on CPAN.
dan
--
Daniel Macks
dmacks@netspace.org
http://www.netspace.org/~dmacks