# 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