[Mono-devel-list] System.Reflection.Emit Build Errors

bmaurer at users.sourceforge.net bmaurer at users.sourceforge.net
Tue May 20 08:46:02 EDT 2003

First, I apologize for the false alarm.

However, I think that these sorts of things can be avoided by automated
means. As joelonsoftware.com correctly points out, building mono should
be possible in one command line: "make && make install". The class libs
should be done with "make && make install prefix=/my/prefix". Steps such
as "build corlib, install it, build mono, build the rest of the class
libs" tend to lead to many mistakes, especially for a Linux newbie (such
as myself). I think that the best solution would be to make a shell
script that did the build *right* (actually two, one for a clean, one
for incremental). Having a single, official build would solve the
problems I am having completely.

Another solution would be to have some sort of "corlib version" variable
and a "mono version" variable. Every time a change that breaks
compatibility between corlib and the runtime, both numbers could be
incremented. At runtime, mono would check that corlib was at the same
version. At build time, if make realized that the file with version
numbers had changed, than it would make sure the build was executed

We could also have make create a backup of mono and corlib every time
the "version" number changed. Then, for example, if mono was backed up
by the mono makefile, the mcs makefile could know that to build corlib,
it would first have to take the old mono executable and temporarily use
that to execute mcs and run corlib, and then to thereafter use the new
corlib and new mono.

Since I have proven myself completely incompetent to build mono myself
;-), I hardly think I should be the one making a script for everyone
else to do it. It would be great if one of the expert hackers could do
this. Volunteers?

I also like nickd's solution of keeping the corlib & mono from the
latest release on cvs, any possibility of actually doing that?

Ben Maurer

-----Original Message-----
From: mono-devel-list-admin at lists.ximian.com
[mailto:mono-devel-list-admin at lists.ximian.com] On Behalf Of Nick
Sent: Tuesday, May 20, 2003 6:20 AM
To: Varga Zoltan; Ben Maurer
Cc: Mono Development
Subject: RE: [Mono-devel-list] System.Reflection.Emit Build Errors

| -----Original Message-----
| From: mono-devel-list-admin at lists.ximian.com
| [mailto:mono-devel-list-admin at lists.ximian.com]On Behalf Of Varga
| Sent: Tuesday, May 20, 2003 7:03 PM
| To: Ben Maurer
| Cc: Mono Development
| Subject: Re: [Mono-devel-list] System.Reflection.Emit Build Errors
|                                                Hi,
|    Sometimes there is a change in the layout of some corlib
| classes known
| by the runtime. When this happens, you have to compile a new
| corlib
| first with the old runtime, then compile a new runtime. When
| you do
| it the other way, it will not work.

I also had a problem building corlib these past few days. And I *always*
build the class libs first before building the new runtime, but even so
still had a similar problem as Ben. Probably I was careless or

Regardless, it does happen sometimes even when you think you know what
are doing.  A simple solution is to provide just the corlib.dll
for anyone to download when it happens to them.  If you know you are
to break sync, then maybe you can upload a new corlib.dll somewhere in
someone gets messed up (like I was until mmarker kindly helped me out).


Nick D.

Mono-devel-list mailing list
Mono-devel-list at lists.ximian.com

More information about the Mono-devel-list mailing list