develooper Front page | perl.perl5.porters | Postings from July 2011

[perl #94532] [PATCH] 93862c2 Stabilize ExtUtils::MM_Cygwin::maybe_command

Reini Urban
July 11, 2011 05:59
[perl #94532] [PATCH] 93862c2 Stabilize ExtUtils::MM_Cygwin::maybe_command
Message ID:
# New Ticket Created by  Reini Urban 
# Please include the string:  [perl #94532]
# in the subject line of all future correspondence about this issue. 
# <URL: >

This is a bug report for perl from,
generated with the help of perlbug 1.39 running under perl 5.10.1.

>From 93862c2701c9e33e65ba9c64ffd4e05d2ccba735 Mon Sep 17 00:00:00 2001
From: Reini Urban <>
Date: Mon, 11 Jul 2011 14:52:03 +0200
Subject: [PATCH] Stabilize ExtUtils::MM_Cygwin::maybe_command
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------"

This is a multi-part message in MIME format.
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit

Be independent of /cygdrive prefixes. Failed with a prefix like "/".
Suggestion by Marco Moreno, patch by Reini Urban.
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/ |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

Content-Type: text/x-patch; name="0001-Stabilize-ExtUtils-MM_Cygwin-maybe_command.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0001-Stabilize-ExtUtils-MM_Cygwin-maybe_command.patch"

diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/
index d6ce3a7..f7a5c21 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/
@@ -9,7 +9,7 @@ require ExtUtils::MM_Unix;
 require ExtUtils::MM_Win32;
 our @ISA = qw( ExtUtils::MM_Unix );
-our $VERSION = '6.57_05';
+our $VERSION = '6.57_06';
 =head1 NAME
@@ -100,20 +100,22 @@ sub init_linker {
 =item maybe_command
-If our path begins with F</cygdrive/> then we use C<ExtUtils::MM_Win32>
-to determine if it may be a command.  Otherwise we use the tests
-from C<ExtUtils::MM_Unix>.
+Determine whether a file is native to Cygwin by checking whether it
+resides inside the Cygwin installation (using Windows paths).  If so,
+use C<ExtUtils::MM_Unix> to determine if it may be a command.
+Otherwise use the tests from C<ExtUtils::MM_Win32>.
 sub maybe_command {
     my ($self, $file) = @_;
-    if ($file =~ m{^/cygdrive/}i) {
-        return ExtUtils::MM_Win32->maybe_command($file);
-    }
+    my $cygpath = Cygwin::posix_to_win_path('/', 1);
+    my $filepath = Cygwin::posix_to_win_path($file, 1);
-    return $self->SUPER::maybe_command($file);
+    return (substr($filepath,0,length($cygpath)) eq $cygpath)
+        ? $self->SUPER::maybe_command($file) 	    # Unix
+        : ExtUtils::MM_Win32->maybe_command($file); # Win32
 =item dynamic_lib


Site configuration information for perl 5.10.1:

Configured by rurban at Sat Aug 28 20:14:06 CEST 2010.

Summary of my perl5 (revision 5 version 10 subversion 1) configuration:
    osname=cygwin, osvers=1.7.5(0.22553), archname=i686-cygwin-thread-multi-64int
    uname='cygwin_nt-5.1 reini 1.7.5(0.22553) 2010-04-12 19:07 i686 cygwin '
    config_args='-de -Dlibperl=cygperl5_10.dll -Dcc=gcc-4 -Dld=g++-4 -Dmksymlinks -Dusethreads -Dmad=y -Doptimize=-O3 -Accflags=-g3'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=undef, uselongdouble=undef
    usemymalloc=y, bincompat5005=undef
    cc='gcc-4', ccflags ='-DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -g3 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include',
    cppflags='-DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -g3 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.3.4 20090804 (release) 1', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='g++-4', ldflags =' -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--stack,8388608 -Wl,--enable-auto-image-base -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib /lib
    libs=-lgdbm -ldb -ldl -lcrypt -lgdbm_compat
    perllibs=-ldl -lcrypt
    libc=/usr/lib/libc.a, so=dll, useshrplib=true, libperl=cygperl5_10.dll
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags=' --shared  -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--stack,8388608 -Wl,--enable-auto-image-base -L/usr/local/lib -fstack-protector'

Locally applied patches:
    CYG11 no-bs
    CYG12 no archlib in otherlibdirs
    CYG14 Dynaloader
    CYG15 static-Win32CORE
    CYG17 utf8-paths
    CYG21 LibList-Kid.patch
    CYG22 cygwin-1.7 hints
    CYG23 544-stat
    CYG24 build man pages
    CYG25 rebase_privlib
    Bug#55162 CYG18 File::Spec::case_tolerant performance
    disable ExtUtils::MakeMaker::Coverage in Sys-Syslog

@INC for perl 5.10.1:

Environment for perl 5.10.1:
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PERL_BADLANG (unset)
    SHELL (unset) Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About