[Mono-devel-list] Mono JIT on Mac OS X

Paolo Molaro lupus at ximian.com
Tue May 4 06:02:24 EDT 2004

On 05/03/04 Urs C Muff wrote:
> Mono (CVS 5/3/04 9AM MST remove all -O2 in configure, config.status)

To remove -O2 you should just run configure with CFLAGS set to empty or
-g in the env:
	CFLAGS=-g ./condigure ...
Disabling -O2 should not be needed anymore, though: I fixed a bug in the
jit which could corrupt values on the stack, recompiled with -O2 and
it's working as well as with just -g.

> - Still can't use mono for mcs --> (Null pointer exception in 
> Mono.CSharp.Driver:parse (Mono.CSharp.SourceFile): after error error 
> CS2001: Source file '' could not be opened [that error does not occur 
> with mint)

We need you to provide more info on this one. It works for me, miguel
and apparently other people, too. Do you have local patches in your
tree? Could you try disabling ICU? 
When does that error message happen? The mcs module has hundreds of
thousands of lines of code: it would be useful if you provided more
info, at least what assembly/program it's trying to compile.
Make also sure you don't have old stale versions of mono or the
assemblies around.

> Failed tests:
> exception6.exe

Some ovf handling, not very important.

> pinvoke2.exe
> pinvoke3.exe
> pinvoke11.exe
> pinvoke17.exe

Haven't investigated those yet.

> appdomain1.exe
> appdomain3.exe
> delegate1.exe
> delegate2.exe
> delegate3.exe
> remoting4.exe
> thread5.exe
> threadpool.exe
> threadpool1.exe

In some cases there are bugs in the stack unwinding code. Some of these
tests fails for me on x86 as well, though.

> vararg.exe

vararg support is not yet implemented on ppc.

> cpblkTest.exe
> qt-instance.exe
> bug-29859.exe
> even-odd.exe

Those tests execute correctly. The issue is that they are miscompiled,
the JIT detects the code is invalid and reports an error. Note they are
miscompiled both when ilasm is run with mono and mint, so I doubt it's a
jit bug. Jackson mentioned it may be an endianess issue in PEAPI
(mcs/class/PEAPI/PEAPI.cs). If you monodis the programs you'll see
.maxstack is set to 0 in most of the methods.
So, people who run MacOSX or anybody running mono on a big-endian
machine, here's your chance for a little debugging and fixing. No jit
expertise required, no powerpc assembly to stare at, just good (old?)
C# code!


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

More information about the Mono-devel-list mailing list