# New Ticket Created by  Bruce Gray 
# Please include the string:  [perl #19470]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt2/Ticket/Display.html?id=19470 >


In hints/mswin32.pl, there is code in place to customize the 
build environment based on the value of $cc. However, $cc is 
only populated by the 'cc' from the local 'perl -V'; the 
command-line flag '-cc=FOO' is not used here. This patch 
corrects that problem, as well as missing 'link', 'ar', and 'slash' 
values for MinGW.

Tested under MinGW 2.0.0-3 (current) using these commands:
        perl Configure.pl --debugging --cc=gcc
        mingw32-make
        mingw32-make test
Many warnings remain, but only one test fails (sprintf).
With this patch, Parrot now supports MinGW out-of-the-box!

-- 
Hope this helps,
Bruce Gray



-- attachment  1 ------------------------------------------------------
url: http://rt.perl.org/rt2/attach/46301/36291/613a29/mswin32_pl_MinGW.patch

Index: config/init/hints.pl
===================================================================
RCS file: /cvs/public/parrot/config/init/hints.pl,v
retrieving revision 1.3
diff -u -r1.3 hints.pl
--- config/init/hints.pl        9 Dec 2002 04:02:09 -0000       1.3
+++ config/init/hints.pl        27 Dec 2002 01:39:50 -0000
@@ -6,7 +6,7 @@
 
 $description="Loading platform and local hints files...";
 
-@args=();
+@args = qw( cc );
 
 sub runstep {
   my $hints = "config/init/hints/" . lc($^O) . ".pl";
Index: config/init/hints/mswin32.pl
===================================================================
RCS file: /cvs/public/parrot/config/init/hints/mswin32.pl,v
retrieving revision 1.6
diff -u -r1.6 mswin32.pl
--- config/init/hints/mswin32.pl        11 Oct 2002 01:46:52 -0000      1.6
+++ config/init/hints/mswin32.pl        27 Dec 2002 01:39:50 -0000
@@ -1,9 +1,18 @@
 {
+       my %args;
+       @args{@args}=@_;
+
        my($cc, $ccflags, $libs)=Configure::Data->get(qw(cc ccflags libs));
+
+       # Later in the Parrot::Configure::RunSteps->runsteps process,
+       # inter/progs.pl will merge the command-line overrides with the defaults.
+       # We do one bit of its work early here, because we need the result now.
+       $cc = $args{cc} if defined $args{cc};
+
        my $is_msvc  = grep { $cc eq $_ } ( qw(cl cl.exe) );
        my $is_mingw = grep { $cc eq $_ } ( qw(gcc gcc.exe) );
        my $is_bcc   = grep { $cc eq $_ } ( qw(bcc32 bcc32.exe) );
-       
+
        Configure::Data->set(
                rm_f  => '$(PERL) -MExtUtils::Command -e rm_f',
                rm_rf => '$(PERL) -MExtUtils::Command -e rm_rf',
@@ -66,8 +75,10 @@
        elsif( $is_mingw ) {
                $libs='' if $libs =~ /\.lib\s/i;
                Configure::Data->set(
-                       ld => 'gcc',
-                       libs => $libs
+                       link      => 'gcc',
+                       libs      => $libs,
+                       slash     => '\\',
+                       ar        => 'ar',
                );
        }
 }

Reply via email to