On Mon Dec 10 08:52:27 2007, [EMAIL PROTECTED] wrote:
> 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
> 

All tests pass on Debian/x86 with --cc=llvm-gcc --link=llvm-gcc 
--ld=llvm-gcc passed to Configure.pl .  If someone can confirm that
Configure.pl is similarly smart on Windows, this ticket can be closed.

Reply via email to