Skip Menu |

This queue is for tickets about the Pango CPAN distribution.

Report information
The Basics
Id: 44649
Status: stalled
Priority: 0/
Queue: Pango

People
Owner: Nobody in particular
Requestors: stro [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 1.220
Fixed in: (no value)



Subject: Compiling under MSWin32 (MSVC)
Hi Torsten, When trying to compile Pango under MSWin32 using MSVC6, I've encountered a problem with LIBS passed to EU::MM. EU::Depends returns LIBS that looks like that: LIBS => q[-LC:/bin/dev/perl/site/lib/auto/Glib -lGlib -LC:/bin/dev/perl/site/lib/auto/Cairo -lCairo [...] -lcairo -lgthread-2.0] Because Windows filesystem is case-insensitive, -lCairo takes over -lcairo, leading to wrong linking. Maybe something should be done with EU::Depends, but this situation can be worked around in Makefile.PL. Here's changes: 186a187,189 Show quoted text
> my %makefile_vars = $pango->get_makefile_vars; > $makefile_vars{'LIBS'} =~ s!-L(.*?/auto/.*?)\s+-l(\w+)!-l$1/$2.lib!g
if $^O eq 'MSWin32'; Show quoted text
>
199c202 < $pango->get_makefile_vars, --- Show quoted text
> %makefile_vars,
Probably, this should be applied only if $^O eq 'MSWin32', but this may work for other systems with case-insensitivity too. -- Serguei Trouchelle
RT-Send-CC: yselkowitz [...] users.sourceforge.net
On Sat Mar 28 22:01:30 2009, STRO wrote: Show quoted text
> Hi Torsten, > > When trying to compile Pango under MSWin32 using MSVC6, I've encountered > a problem with LIBS passed to EU::MM. > EU::Depends returns LIBS that looks like that: > > LIBS => q[-LC:/bin/dev/perl/site/lib/auto/Glib -lGlib > -LC:/bin/dev/perl/site/lib/auto/Cairo -lCairo [...] -lcairo -lgthread-2.0] > > Because Windows filesystem is case-insensitive, -lCairo takes over > -lcairo, leading to wrong linking.
Another win32 linking issue. :-/ (But thanks for the report, anyway!) This is due to the following change: <http://git.gnome.org/cgit/perl-ExtUtils-Depends/commit/?id=293807>. It was done to make linking work on cygwin. But maybe with the cygwin patches to EU::MM, specifying the full path now also works on cygwin? Yaakov, can you try the attached patch?
diff --git a/lib/ExtUtils/Depends.pm b/lib/ExtUtils/Depends.pm index adc9d79..6a1737f 100644 --- a/lib/ExtUtils/Depends.pm +++ b/lib/ExtUtils/Depends.pm @@ -313,17 +313,15 @@ sub find_extra_libs { my $lib = $mapper->($stem); my $pattern = qr/$lib$/; - my $matching_dir; my $matching_file; find (sub { if ((not $matching_file) && /$pattern/) {; - $matching_dir = $File::Find::dir; $matching_file = $File::Find::name; } }, map { -d $_ ? ($_) : () } @INC); # only extant dirs if ($matching_file && -f $matching_file) { - push @found_libs, ('-L' . $matching_dir, '-l' . $stem); + push @found_libs, $matching_file; next; } }
From: patcat88 [...] snet.net
This bug is still in Perl Pango 1.222 with Pango 1.28.3 Dev package. I'm using VS 2003 and Perl 5.12. cairo.lib from dev package isn't in the makefile. Show quoted text
_______________________________________________ C:\sources\Pango-1.222> nmake install Microsoft (R) Program Maintenance Utility Version 7.10.3077 Copyright (C) Microsoft Corporation. All rights reserved. rem rem rem C:\perl512\bin\perl.exe -l -e "print qq{@ARGV}" -- [ LD blib\arch\auto\ Pango\Pango.dll ] [ LD blib\arch\auto\Pango\Pango.dll ] link -out:blib\arch\auto\Pango\Pango.dll -dll -nologo -nodefaultlib -de bug -libpath:"c:\perl512\lib\CORE" -machine:x86 xs/Pango.obj xs/PangoAttribute s.obj xs/PangoContext.obj xs/PangoFont.obj xs/PangoFontset.obj xs/PangoFontMap.o bj xs/PangoLayout.obj xs/PangoRenderer.obj xs/PangoScript.obj xs/PangoTabs.obj x s/PangoTypes.obj xs/PangoCairo.obj xs/PangoGravity.obj xs/PangoMatrix.obj C:\p erl512\lib\CORE\perl512.lib C:\perl512\site\lib\auto\Glib\Glib.lib C:\perl512\si te\lib\auto\Cairo\Cairo.lib C:\sources\glibbin\lib\pango-1.0.lib C:\sources\glib bin\lib\gobject-2.0.lib C:\sources\glibbin\lib\gmodule-2.0.lib C:\sources\glibbi n\lib\gthread-2.0.lib C:\sources\glibbin\lib\glib-2.0.lib C:\sources\glibbin\lib \libintl.lib C:\sources\glibbin\lib\pangocairo-1.0.lib C:\perl512\site\lib\auto\ Cairo\cairo.lib C:\sources\glibbin\lib\freetype.lib "c:\Program Files\Microsoft Visual Studio .NET 2003\VC7\lib\oldnames.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\kernel32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\user32.lib" "C:\Program Files\Micros oft Visual Studio .NET 2003\VC7\PlatformSDK\lib\gdi32.lib" "C:\Program Files\Mic rosoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\winspool.lib" "C:\Program Fil es\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\comdlg32.lib" "C:\Progr am Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\advapi32.lib" "C: \Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\shell32.lib " "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\ole32. lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\ole aut32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\l ib\netapi32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\Platfor mSDK\lib\uuid.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\Platf ormSDK\lib\ws2_32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\P latformSDK\lib\mpr.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\ PlatformSDK\lib\winmm.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\V C7\PlatformSDK\lib\version.lib" "C:\Program Files\Microsoft Visual Studio .NET 2 003\VC7\PlatformSDK\lib\odbc32.lib" "C:\Program Files\Microsoft Visual Studio .N ET 2003\VC7\PlatformSDK\lib\odbccp32.lib" "C:\Program Files\Microsoft Visual Stu dio .NET 2003\VC7\PlatformSDK\lib\comctl32.lib" "c:\Program Files\Microsoft Visu al Studio .NET 2003\VC7\lib\msvcrt.lib" -def:Pango.def Creating library blib\arch\auto\Pango\Pango.lib and object blib\arch\auto\Pan go\Pango.exp PangoCairo.obj : error LNK2019: unresolved external symbol __imp__cairo_scaled_f ont_reference referenced in function _XS_Pango__Cairo__Font_get_scaled_font PangoCairo.obj : error LNK2019: unresolved external symbol __imp__cairo_font_opt ions_copy referenced in function _XS_Pango__Cairo__Context_get_font_options PangoCairo.obj : error LNK2019: unresolved external symbol __imp__cairo_referenc e referenced in function _gtk2perl_pango_cairo_shape_renderer_func blib\arch\auto\Pango\Pango.dll : fatal error LNK1120: 3 unresolved externals NMAKE : fatal error U1077: 'link' : return code '0x460' Stop. C:\sources\Pango-1.222>
__________________________________________________________
From: patcat88 [...] snet.net
the makefile generated
Subject: Makefile
Download Makefile
application/octet-stream 58.3k

Message body not shown because it is not plain text.

On Fri Sep 16 13:33:29 2011, patcat88@snet.net wrote: Show quoted text
> Creating library blib\arch\auto\Pango\Pango.lib and object > blib\arch\auto\Pango\Pango.exp > PangoCairo.obj : error LNK2019: unresolved external symbol > __imp__cairo_scaled_font_reference referenced in function
_XS_Pango__Cairo__Font_get_scaled_font Show quoted text
> PangoCairo.obj : error LNK2019: unresolved external symbol > __imp__cairo_font_options_copy referenced in function
_XS_Pango__Cairo__Context_get_font_options Show quoted text
> PangoCairo.obj : error LNK2019: unresolved external symbol > __imp__cairo_reference referenced in function
_gtk2perl_pango_cairo_shape_renderer_func Show quoted text
> blib\arch\auto\Pango\Pango.dll : fatal error LNK1120: 3 unresolved
externals I'm not sure this is the same issue as discussed in this bug. These linker errors look like ones that might be fixed now with this commit: <http://git.gnome.org/browse/perl-Cairo/commit/?id=2e9e0b2d561269a9ebcf8ccf5a7f260ec0d41154>. Can you try this patch?