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


Marton Papp has successfully compiled Parrot with LLVM on Windows with 
mingw-make (it's failing 18 tests, which is impressively low for a first 
run on a new compiler). Below is his summary of the steps he followed. 
I'd like to extract the changes he made for the configuration system.

-------- Original Message --------
Subject: Re: hi! LLVM and parrot
Date: Mon, 10 Dec 2007 14:33:46 +0100
From: [EMAIL PROTECTED]

[...]
I used this file to compile it
set path=%path%;c:\mingw\bin;D:\extracted\icu2\icu\bin
e:
cd e:\extracted\parrot-0.5.0\bin
perl configure.pl --cc=E:\llvm\bin\llvm-gcc.exe
--cxx=E:\llvm\bin\llvm-g++.exe --link=E:\llvm\bin\llvm-gcc.exe
--ld=E:\llvm\bin\llvm-gcc.exe



I changed the makefile in the directory
where there is line CUR_DIR         = .
I changed it for  full path of the current directory.
(Otherwise ./mini_parrot caused in error)
In my case,
It became CUR_DIR         = E:\extracted\parrot-0.5.0

and ran mingw-make
Then make stopped.
I moved into the directory, it just left.
Changed these files/
In dynpmc.pl
I changed last line of partial_link_cmd.
return
        "$LD ".
        '-o ' . $target . " " .
        join(" ", map {"$PATHQUOTE$_$PATHQUOTE"} @$sources) .
        " $PATHQUOTE$LIBPARROT$PATHQUOTE $liblist $LDFLAGS $LD_LOAD_FLAGS ";

and changed this:our $LIBPARROT = q[]; for our $LIBPARROT = q[-lparrot]

continued make by mingw-make...

The make failed again , then....

I changed parrot-0.5.0\tools\build\dynoplibs.pl
I inserted these lines (copied them from tools\build\dynpmc.pl) :
# Also note that we may need to look in the Parrot blib directory.
        if ($CC =~ /gcc/i) {
            $liblist .= qq{ -Wl,-L "E:/extracted/parrot-0.5.0/blib/lib"};
        }
        else {
            $liblist .= qq{ /LIBPATH:"E:/extracted/parrot-0.5.0/blib/lib"};
        }

I changed last lines of partial_link_cmd in dynpmc.pl
(something similar to this)

return
        "$LD ".
        '-o ' . $target . " " .
        join(" ", map {"$PATHQUOTE$_$PATHQUOTE"} @$sources) .
        " $liblist $LDFLAGS $LD_LOAD_FLAGS ";

The explanation: remove $PATHQUOTE$LIBPARROT$PATHQUOTE  so that
unreferenced symbol do not occur..
I did something similar in the code it is not worth duplicating it here.

I changed $extraLibs in dynoplibs.pl inpartial_link_cmd
for $extraLibs = '-lparrot ..
I added -lparrot at the beginning....

I went into directory just failed. I ran make.
Then I want back to the main make.
I ran it.

Marton Papp





Reply via email to