Skip Menu |
 

This queue is for tickets about the ExtUtils-MakeMaker CPAN distribution.

Report information
The Basics
Id: 21430
Status: open
Priority: 0/
Queue: ExtUtils-MakeMaker

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

Bug Information
Severity: Wishlist
Broken in: (no value)
Fixed in: (no value)



Subject: Steal patches from ActiveState
Download (untitled) / with headers
text/plain 129b
ActiveState makes a lot of changes to MakeMaker. Steal them. http://downloads.activestate.com/ActivePerl/src/5.8/AP819_diff.txt
Download (untitled) / with headers
text/plain 757b
On Mon Sep 11 17:34:57 2006, MSCHWERN wrote: Show quoted text
> ActiveState makes a lot of changes to MakeMaker. Steal them. > > http://downloads.activestate.com/ActivePerl/src/5.8/AP819_diff.txt
Indeed. May I suggest to take a closer a look at their ExtUtils::Liblist::Kid modification? It's attached as a separate patch for convenience. This allows you to specify linker libraries with their full name and have MakeMaker not eat them. This is a good thing on, for example, cygwin where you need to specify every dependency at link time but where Kid.pm's unix branch is used. On a more general note, I wonder why Kid.pm doesn't just pass unrecognized linker flags along unaltered. This would get rid of problems like the ones described in tickets 14505 and 32894.
Download Kid.pm.patch
text/x-diff 463b
--- Kid.pm.orig 2007-07-19 22:56:46.001000000 +0200 +++ Kid.pm 2008-03-30 00:34:47.000000000 +0100 @@ -82,6 +82,12 @@ sub _unix_os2_ext { next; } + if ($Config_libext && $thislib =~ /\Q$Config_libext\E$/) { + push @libs, $thislib unless $libs_seen{$thislib}++; + push(@ldloadlibs, $thislib); + next; + } + # Handle possible library arguments. unless ($thislib =~ s/^-l//){ warn "Unrecognized argument in LIBS ignored: '$thislib'\n";
Download (untitled) / with headers
text/plain 715b
I certainly encourage you to apply the Kid.pm.patch. The reason we applied this patch to ActivePerl is that we compile perl both statically and dynamically and install both libperl.a and libperl.so in the arch/CORE directory. With this setup we had the problem that "perl -MExtUtils::Embed -e ldopts" would not be able to generate references that linked against libperl.a, since -lperl always resolved to libperl.so. We would also be grateful if the other patches could be applied as well, since this avoids the problems that occur in ActivePerl when users upgrade ExtUtils::MakeMaker from the CPAN shell or with PPM. I'll try to break down the other changes we have into suitable chunks for you. Stay tuned ;)
Download (untitled) / with headers
text/plain 191b
The bulk of of ActivePerl changes are the support for generating HTML manpages, but this part needed quite a bit of rework to be generally applicable. I'll open a new bug to track that part.
Download (untitled) / with headers
text/plain 870b
On Sun Mar 30 16:35:24 2008, TSCH wrote: Show quoted text
> Indeed. May I suggest to take a closer a look at their > ExtUtils::Liblist::Kid modification? It's attached as a separate patch > for convenience. This allows you to specify linker libraries with their > full name and have MakeMaker not eat them. This is a good thing on, for > example, cygwin where you need to specify every dependency at link time > but where Kid.pm's unix branch is used. > > On a more general note, I wonder why Kid.pm doesn't just pass > unrecognized linker flags along unaltered. This would get rid of > problems like the ones described in tickets 14505 and 32894.
Here's an updated patch that makes linking to other XS modules work on cygwin with perl 5.10. In 5.10, perl stopped producing libFoo.dll.a, and now outputs only Foo.dll files. It's possible to directly link against them on cygwin.
Download Kid.pm.patch
text/x-diff 630b
--- C:/Cygwin/lib/perl5/5.10/ExtUtils/Liblist/Kid.pm.orig Sat Aug 02 14:58:45 2008 +++ C:/Cygwin/lib/perl5/5.10/ExtUtils/Liblist/Kid.pm Sat Aug 02 15:02:09 2008 @@ -81,6 +81,16 @@ next; } + # Handle fully-specified libraries + if (-f $thislib && + (($Config_libext && $thislib =~ /\Q$Config_libext\E$/) || + ($so && $thislib =~ /\Q$so\E$/))) + { + push @libs, $thislib unless $libs_seen{$thislib}++; + push(@ldloadlibs, $thislib); + next; + } + # Handle possible library arguments. unless ($thislib =~ s/^-l//){ warn "Unrecognized argument in LIBS ignored: '$thislib'\n";
Download (untitled) / with headers
text/plain 2.2k
As of perl 5.20.1, AS's changes to EUMM, as seen in http://downloads.activestate.com/ActivePerl/releases/5.20.1.2000/ActivePerl-5.20.1.2000-298557-diff.txt are nearly all related to generating HTML docs, aside from: diff -ruN perl-5.20.1/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm AP2000_source/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm --- perl-5.20.1/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm 2014-05-14 16:51:23.000000000 -0700 +++ AP2000_source/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm 2014-05-03 02:28:05.000000000 -0700 @@ -88,6 +88,10 @@ if ( $thislib =~ m!^-Wl,! ) { push( @extralibs, $thislib ); push( @ldloadlibs, $thislib ); + } + if ($Config_libext && $thislib =~ /\Q$Config_libext\E$/) { + push @libs, $thislib unless $libs_seen{$thislib}++; + push(@ldloadlibs, $thislib); next; } and: diff -ruN perl-5.20.1/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm AP2000_source/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm --- perl-5.20.1/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm 2014-05-14 16:51:23.000000000 -0700 +++ AP2000_source/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm 2014-05-03 02:28:06.000000000 -0700 @@ -31,8 +31,8 @@ $ENV{EMXSHELL} = 'sh'; # to run `commands` -my $BORLAND = $Config{'cc'} =~ /^bcc/i; -my $GCC = $Config{'cc'} =~ /^gcc/i; +my $BORLAND = $Config{'cc'} =~ /\bbcc\b/i; +my $GCC = $Config{'cc'} =~ /\bgcc\b/i; =item os_flavor and: diff -ruN perl-5.20.1/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm AP2000_source/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm --- perl-5.20.1/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm 2014-05-14 16:51:23.000000000 -0700 +++ AP2000_source/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm 2014-05-03 02:28:06.000000000 -0700 @@ -135,7 +135,7 @@ open( my $def, ">", "$data->{FILE}.def" ) or croak("Can't create $data->{FILE}.def: $!\n"); # put library name in quotes (it could be a keyword, like 'Alias') - if ($Config::Config{'cc'} !~ /^gcc/i) { + if ($Config::Config{'cc'} !~ /\bgcc\b/i) { print $def "LIBRARY \"$data->{DLBASE}\"\n"; } print $def "EXPORTS\n ";
Download (untitled) / with headers
text/plain 320b
On Wed Jan 07 17:14:00 2015, ETJ wrote: Show quoted text
> diff -ruN perl-5.20.1/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm
[...] Show quoted text
> diff -ruN perl-5.20.1/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
[...] Incorporated as https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/commit/00ec4a3bfb6889b34f60cbcae5589218d180c0ae
RT-Send-CC: kaffeetisch [...] gmx.de
Download (untitled) / with headers
text/plain 398b
On Sun Aug 03 10:35:56 2008, TSCH wrote: Show quoted text
> Here's an updated patch that makes linking to other XS modules work on > cygwin with perl 5.10. In 5.10, perl stopped producing libFoo.dll.a, > and now outputs only Foo.dll files. It's possible to directly link > against them on cygwin.
Slightly after you posted this; could you tell me if the Liblist::Kid change is still needed? If so, I'll apply it.


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.