| Store | Cart

Re: [PATCH] cygwin: no rebaseall

From: Jesse Vincent <jes...@fsck.com>
Mon, 18 Jan 2010 09:10:20 -0800
Did this also go to schwern's rt.cpan.org queue? It probably should, for
now. How critical do you see this for 5.12.0?


On Thu 14.Jan'10 at 20:50:38 +0100, Reini Urban wrote:
> Attached is one more cygwin patch. This is against the need for> rebaseall after updating a core extension. It should work in 95%> of all updates.> > There's one more PATCH outstanding: Support for the new cygwin-1.7,> the new mount format and utf8 paths.> I'm still testing wchar to utf8 conversion.> -- > Reini Urban> http://phpwiki.org/  http://murbreak.at/> From 14147d7f6a46858b3eb72d8eb4b95dba6eb01a5e Mon Sep 17 00:00:00 2001> From: Reini Urban <rur...@x-ray.at>> Date: Thu, 14 Jan 2010 19:43:30 +0000> Subject: [PATCH] cygwin prevent rebaseall + install man pages> > For new archdir dll's use the same rebase address if the old exists.> > This is to prevent cygwin rebaseall on conflicting base addresses,> which is almost always the case without this patch.> With this patch the need to rebaseall is only of the segmentsize> is exceeded, which did not happen in the last 6 month updates of> any archdir dlls.> --->  cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm |   35 ++++++++++++++++++++->  1 files changed, 34 insertions(+), 1 deletions(-)> > diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm> index 9cc7522..c6dafbf 100644> --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm> +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm> @@ -9,7 +9,7 @@ require ExtUtils::MM_Unix;>  require ExtUtils::MM_Win32;>  our @ISA = qw( ExtUtils::MM_Unix );>  > -our $VERSION = '6.55_02';> +our $VERSION = '6.55_03';>  >  >  =head1 NAME> @@ -116,6 +116,39 @@ sub maybe_command {>      return $self->SUPER::maybe_command($file);>  }>  > +=item all_target> +> +Build man pages, too> +> +=cut> +> +sub all_target {> +    ExtUtils::MM_Unix::all_target(shift);> +}> +> +=item dynamic_lib> +> +Use the default to produce the *.dll's.> +But for new archdir dll's use the same rebase address if the old exists.> +> +=cut> +> +sub dynamic_lib {> +    my($self, %attribs) = @_;> +    my $s = ExtUtils::MM_Unix::dynamic_lib($self, %attribs);> +    my $ori = "$self->{INSTALLARCHLIB}/auto/$self->{FULLEXT}/$self->{BASEEXT}.$self->{DLEXT}";> +    if (-e $ori) {> +        my $imagebase = `/bin/objdump -p $ori | /bin/grep ImageBase | /bin/cut -c12-`;> +        chomp $imagebase;> +        if ($imagebase > "40000000") {> +            my $LDDLFLAGS = $self->{LDDLFLAGS};> +            $LDDLFLAGS =~ s/-Wl,--enable-auto-image-base/-Wl,--image-base=$imagebase/;> +            $s =~ s/ \$\(LDDLFLAGS\) / $LDDLFLAGS /m;> +        }> +    }> +    $s;> +}> +>  =back>  >  =cut> -- > 1.6.4.2> 


Recent Messages in this Thread
Reini Urban Jan 14, 2010 07:50 pm
Reini Urban Jan 14, 2010 09:09 pm
Jesse Vincent Jan 18, 2010 05:10 pm
Messages in this thread