[Mono-list] bootstrapping System.dll

Paolo Molaro lupus@ximian.com
Wed, 19 Jun 2002 17:39:59 +0200

mcs can compile the System assembly on Linux.
I added a list.unix file to cvs in the mcs/class/System dir
that you can use to compile it until we get nant working,
just issue:

	mcs @list.unix

There are still a couple of open issues with the generated binary, but
it seems to work well enough that I changed my csc-compiled System.dll
with it and mcs still bootstraps and I could also compile about 350
test cases.
So, if, you want to contribute to the classes in the System assembly you
can do it now, without the need of the ms runtime.

The issues I found so far are:
1) http://bugzilla.ximian.com/show_bug.cgi?id=26463 (simple mcs bug
in the field flags that has no practical consequences)
2) http://bugzilla.ximian.com/show_bug.cgi?id=26469 (another mcs bug
that will bite you only if you use the regular exception support).
3) there is another issue with the TypeDef metadata table (two rows look
corrupted): this is a reflection bug I'm going to track down, but it
doesn't appear to cause too much trouble.
4) I had to exclude from the build System.ComponentModel/TypeDescriptor.cs:
this is a bootstrap issue because the System assembly references
System.Drawing.ColorConverter and returns it, but since it's defined in
another assembly, it's parent type TypeConverter is different from the
TypeConverter that is being defined in the currently building assembly.
We should change this code so that system doesn't depend on

Of course there may be other issues: please compile the System assembly
on Linux, install it and tell us if things break for you! :-)

Happy hacking!


lupus@debian.org                                     debian/rules
lupus@ximian.com                             Monkeys do it better