<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><font color="#000000" face="Calibri,sans-serif">> That worked.  I'd suggest the README.md would be updated, though, as it<br>> specifically says to use monolite with EXTERNAL_MCS for bootstrapping<br>> (under "If you don't have a working Mono installation"). It should say to<br>> remove any existing gmcs from the $PATH, instead.</font><BR> <BR>That came up before already and we updated the readme, looks like you don't have the latest version: <a href="https://github.com/mono/mono#if-you-dont-have-a-working-mono-installation">https://github.com/mono/mono#if-you-dont-have-a-working-mono-installation</a><BR> <BR>-- Alex<br> <BR><div>> Date: Fri, 17 Apr 2015 17:08:25 +0200<br>> From: fabian@canvon.de<br>> To: mono-devel-list@lists.ximian.com<br>> Subject: Re: [Mono-dev] Build failure on ARMv6/Raspberry Pi with Raspbian/armhf<br>> <br>> * Jo Shields (Thu, 16 Apr 2015 13:07:06 +0100):<br>> > <br>> > On 15/04/15 14:21, Fabian Pietsch wrote:<br>> > > Hi,<br>> > ><br>> > > I'm trying to compile Mono GIT mono-3.12.0-branch on the Raspberry<br>> > > Pi (ARMv6), on Raspbian/armhf (Mono 3.2.8), with monolite-111-latest<br>> > > 3.6.1.0 as bootstrap compiler.<br>> > ><br>> > > I'm building like this:<br>> > ><br>> > > mono $ ./autogen.sh --prefix=/usr/local EXTERNAL_MCS="/home/pi/build/mono/mono/mcs/class/lib/monolite/gmcs.exe"<br>> > > [...]<br>> > > mono $ SKIP_AOT=true make EXTERNAL_MCS="/home/pi/build/mono/mono/mcs/class/lib/monolite/gmcs.exe" V=1<br>> > > [...]<br>> > > make[8]: Entering directory '/home/pi/build/mono/mono/mcs/class/corlib'<br>> > > /bin/sh ./../../mkinstalldirs ../../class/lib/build/<br>> > > touch ../../class/lib/build//.stamp<br>> > > MONO_PATH="./../../class/lib/basic:$MONO_PATH" /home/pi/build/mono/mono/runtime/mono-wrapper  ./../../class/lib/basic/basic.exe /codepage:65001 -unsafe -nostdlib -nowarn:612,618 -d:INSIDE_CORLIB -d:LIBC  -d:NET_1_1 -d:NET_2_0 -d:NET_3_0 -d:NET_3_5 -d:NET_4_0 -nowarn:1699 -nostdlib -lib:./../../class/lib/build  -optimize  /noconfig -resource:resources/collation.core.bin -resource:resources/collation.tailoring.bin -resource:resources/collation.cjkCHS.bin -resource:resources/collation.cjkCHT.bin -resource:resources/collation.cjkJA.bin -resource:resources/collation.cjkKO.bin -resource:resources/collation.cjkKOlv2.bin --runtime:v4 -target:library -out:../../class/lib/build/mscorlib.dll  @corlib.dll.sources<br>> > ><br>> > > Unhandled Exception:<br>> > > System.TypeLoadException: Could not load type 'Mono.CSharp.CommandLineParser' from assembly 'basic, Version=3.12.1.0, Culture=neutral, PublicKeyToken=null'.<br>> > > [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type 'Mono.CSharp.CommandLineParser' from assembly 'basic, Version=3.12.1.0, Culture=neutral, PublicKeyToken=null'.<br>> > > ../../build/library.make:275: recipe for target '../../class/lib/build/mscorlib.dll' failed<br>> > > make[8]: *** [../../class/lib/build/mscorlib.dll] Error 1<br>> > > [...]<br>> > <br>> > Don't specify EXTERNAL_MCS.<br>> <br>> [...]<br>> <br>> > If EXTERNAL_MCS does not exist, and "mcs" does not exist in $PATH, then<br>> > the build system will use mcs.exe from monolite/ using the just-built<br>> > mono in mono/mini - this is the scenario you want.<br>> <br>> That worked.  I'd suggest the README.md would be updated, though, as it<br>> specifically says to use monolite with EXTERNAL_MCS for bootstrapping<br>> (under "If you don't have a working Mono installation"). It should say to<br>> remove any existing gmcs from the $PATH, instead.<br>> <br>> So, what I did: I cloned the cloned mono repos (to have a fresh start<br>> without losing my previous build results if I should still need them),<br>> then removed all of Raspbian's mono packages from the system.<br>> <br>> Then I built like this:<br>> <br>> mono_ $ ./autogen.sh --prefix=/usr/local<br>> [...]<br>> mono_ $ make V=1<br>> [...]<br>> make[6]: Entering directory '/home/pi/build/mono/mono_/mcs'<br>> gmcs /warn:0 /out:build/deps/basic-profile-check.exe build/common/basic-profile-check.cs<br>> make[6]: gmcs: Command not found<br>> build/profiles/basic.make:92: recipe for target 'build/deps/basic-profile-check.exe' failed<br>> make[6]: *** [build/deps/basic-profile-check.exe] Error 127<br>> make[6]: Leaving directory '/home/pi/build/mono/mono_/mcs'<br>> *** The compiler 'gmcs' doesn't appear to be usable.<br>> *** You need Mono version 2.10 or better installed to build MCS<br>> *** Check mono README for information on how to bootstrap a Mono installation.<br>> build/profiles/basic.make:60: recipe for target 'do-profile-check' failed<br>> make[5]: *** [do-profile-check] Error 1<br>> [...]<br>> <br>> Then:<br>> <br>> mono_ $ make get-monolite-latest<br>> [...]<br>> mono_ $ make V=1<br>> [...]<br>> make[6]: Entering directory '/home/pi/build/mono/mono_/mcs'<br>> gmcs /warn:0 /out:build/deps/basic-profile-check.exe build/common/basic-profile-check.cs<br>> make[6]: gmcs: Command not found<br>> build/profiles/basic.make:92: recipe for target 'build/deps/basic-profile-check.exe' failed<br>> make[6]: *** [build/deps/basic-profile-check.exe] Error 127<br>> make[6]: Leaving directory '/home/pi/build/mono/mono_/mcs'<br>> make[6]: Entering directory '/home/pi/build/mono/mono_/mcs'<br>> *** The compiler 'gmcs' doesn't appear to be usable.<br>> *** Trying the 'monolite' directory.<br>> make[7]: Entering directory '/home/pi/build/mono/mono_/mcs'<br>> make[8]: Entering directory '/home/pi/build/mono/mono_/mcs'<br>> Bootstrap compiler: Mono C# compiler version 3.6.1.0<br>> [...]<br>> <br>> After that, the build went through without problems.<br>> <br>> Now I finally have a Mono that does not crash on WinForms TextBox (or<br>> derived) controls. Adding the Visual Basic support was quite easy<br>> in comparison, with a build time of at most 20 minutes, and without<br>> any problems.<br>> <br>> Our Visual Basic WinForms application is finally running on the<br>> Raspberry Pi 1, too[1], now!<br>> <br>> [1] (It already ran fine on the Pi 2 with Xamarin Mono 3.12.1 packages<br>>     from mono-project.com Debian APT repository. The Pi 2 is ARMv7 and<br>>     therefore fully supported by non-Raspbian armhf, so no own Mono build<br>>     was necessary there. But on the Pi 1 those packages would only<br>>     segfault. It would be nice if there was an official or semi-official<br>>     "current Mono" repository for ARMv6 / Pi 1, too.)<br>> <br>> Regards, Fabian<br>> _______________________________________________<br>> Mono-devel-list mailing list<br>> Mono-devel-list@lists.ximian.com<br>> http://lists.ximian.com/mailman/listinfo/mono-devel-list<br></div>                                         </div></body>
</html>