[Mono-list] Mono CVS build issue

Andrew Birkett andy@nobugs.org
13 Sep 2002 09:16:52 +0100


On Fri, 2002-09-13 at 02:23, Ricardo Kirkner wrote:
> Your mono runtime and corlib are out of sync.

Ah, I only recompile corlib just now because that's what I'm working
on.  Sure enough, if I try to build the other dll's I get the same error
message.  

Some of the method in the class libraries don't contain any bytecode and
are instead flagged as 'implemented directly by the runtime'.  When the
runtime encounters one of these at execution time, it checks that it has
a suitably named function and runs it.  If you've got up-to-date dlls
but an out-of-date runtime then the dll might say 'method foobar is
directly implemented' but your out-of-date jit doesn't know about
foobar.

The problem appears to be that when System.dll is built, the following
command is run:

MONO_PATH=../lib: mono ../../mcs/mcs.exe --target library --noconfig -o
../lib/System.dll -r corlib -r System.Xml -r mscorlib @.response

.. which will use the corlib.dll which has been put into ../lib (earlier
in the build) rather than the one in your installed version.  The corlib
in ../lib is almost certainly more recent than your installed version,
so you will probably get an error.  I thought there used to be some
fancy renaming scheme to stop this happening?  The current scheme looks
like it will only work so long as there has been no new builtins since
mono-0.15 (or whatever your installed version is).  I remember for a
while I just hacked the makefiles so it wrote ../lib/new_corlib.dll
instead.

*confused*

Andrew
- www.nobugs.org -