# 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