Subject: | wrong guess for -lperl if it is not libperl.so on UNIX |
CC: | mschwern [...] cpan.org |
I have perl-5.8.2 on Solaris 7 (Sparc), compiled with gcc-3.2.3 and
ithreads and a shared libperl with non-standard name (mine is
libperlifx.so).
I noticed ExtUtils::Embed does not use the correct name. The patch
below works fine here, and should be generic enough to works
elsewhere. Pity that lib_ext and dlext are not consistent: the first
includes the dot, the second not.
Best regards,
Marek
--- /opt/perl_5.8.2/share/lib/ExtUtils/Embed.pm.orig 2003-11-14
13:24:26.000000000 +0100
+++ /opt/perl_5.8.2/share/lib/ExtUtils/Embed.pm 2003-11-14
13:29:21.000000000 +0100
@@ -226,7 +226,9 @@
$libperl = $Config{libperl};
}
else {
- $libperl = (grep(/^-l\w*perl\w*$/, @link_args))[0] || "-lperl";
+ $libperl = (grep(/^-l\w*perl\w*$/, @link_args))[0] ||
+ ($Config{libperl} =~ /^lib(\w+)(\Q$Config{lib_ext}
\E|\.\Q$Config{dlext}\E)$/ && "-l$1") ||
+ "-lperl";
}
my $lpath = File::Spec->catdir($Config{archlibexp}, 'CORE');