[Mono-list] Mono CVS build issue
Piers Haken
piersh@friskit.com
Fri, 13 Sep 2002 01:46:34 -0700
Yup, your diagnosis of the problem is correct, there's a conflict with
the newly-built corlib.dll.
Here's a repost of my advice from a while back, hope it helps...
>>>
Building the class libraries on linux is currectly a bit of a black art
sue to the dependancies between the compiler and the runtime.
You'll need to do the following steps:
- Install a working version of mono (I'll refer to this as the
'install')
- Get the CVS sources for mcs and mono (I'll refer to these as 'CVS mcs'
and 'CVS mono')
- build the CVS mcs.exe and the CVS corlib.dll and copy these to your
install directory (bin & lib)
- build CVS mono and copy the bits over your install
- now build the rest of the CVS class libs and copy them over your
install
Piers.
> -----Original Message-----
> From: Andrew Birkett [mailto:andy@nobugs.org]
> Sent: Friday, September 13, 2002 1:17 AM
> To: mono-list
> Subject: Re: [Mono-list] Mono CVS build issue
>
>
> 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 -
>
>
>
> _______________________________________________
> Mono-list maillist - Mono-list@ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-> list
>