[Mono-osx] Can't compile Mono on Snow Leopard?

Kenny Clement psyki.be at gmail.com
Fri Sep 11 10:51:23 EDT 2009


Hi,

I'm using Mono in combination with Monobjc.
On OS X 10.5 (leopard), everything works, but when I run the app on OS X 
10.6 (Snow Leopard), I'm getting a few issues.

So far:

Issue #1:
Running unit tests on Snow Leopard doesn't work, because of bug #533893
https://bugzilla.novell.com/show_bug.cgi?id=533893

Apparently, this bug has been resolved on SVN.

Issue #2:
Mono crashes when doing Garbage Collection. I created bug report #537764 
for this:
https://bugzilla.novell.com/show_bug.cgi?id=537764

Still working on reproducing in a sample app or small test code.

Issue #3:
In order to try the fix for issue #1, and also for testing with a 
different GC, I tried compiling the SVN version of Mono on SNow Leopard.
Unfortunately, this also fails.
It seems as if Snow Leopard is detected incorrectly. The mach-type, ... 
are incorrect, resulting in build errors.
I got around most of these with some manual fixes (adding some 
#define's, to circumvent the auto-detection).
However, I am now stuck, in mini-x86.c, it seems it expects an int, and 
is receiving a long int.

You can see that in the output at the bottom of this mail.

My question here:
Am I the only one with these issues?
Am I doing something obviously wrong here?

Has anyone else been able to build on snow leopard?

Any ideas?

Thanks for any help you guys can give me!


Kenny Clement


mini-x86.c: In function ‘mono_arch_is_int_overflow’:
mini-x86.c:739: warning: cast to pointer from integer of different size
mini-x86.c: In function ‘mono_arch_instrument_prolog’:
mini-x86.c:1435: warning: cast from pointer to integer of different size
mini-x86.c:1436: warning: cast from pointer to integer of different size
mini-x86.c:1440: warning: cast from pointer to integer of different size
mini-x86.c: In function ‘mono_arch_instrument_epilog_full’:
mini-x86.c:1541: warning: cast from pointer to integer of different size
mini-x86.c:1542: warning: cast from pointer to integer of different size
mini-x86.c:1546: warning: cast from pointer to integer of different size
mini-x86.c: In function ‘mono_arch_output_basic_block’:
mini-x86.c:2127: warning: cast from pointer to integer of different size
mini-x86.c:2182: warning: cast from pointer to integer of different size
mini-x86.c:2182: warning: cast from pointer to integer of different size
mini-x86.c:2182: warning: cast from pointer to integer of different size
mini-x86.c:3044: warning: cast from pointer to integer of different size
mini-x86.c:3065: warning: cast from pointer to integer of different size
mini-x86.c:3176: warning: cast from pointer to integer of different size
mini-x86.c:4325: warning: format ‘%d’ expects type ‘int’, but argument 6 
has type ‘long int’
mini-x86.c: In function ‘mono_arch_emit_prolog’:
mini-x86.c:4456: warning: cast from pointer to integer of different size
mini-x86.c:4468: warning: cast from pointer to integer of different size
mini-x86.c: In function ‘mono_arch_emit_epilog’:
mini-x86.c:4694: warning: overflow in implicit constant conversion
mini-x86.c: In function ‘mono_arch_build_imt_thunk’:
mini-x86.c:5073: warning: cast from pointer to integer of different size
mini-x86.c:5073: warning: cast from pointer to integer of different size
mini-x86.c:5073: warning: cast from pointer to integer of different size
mini-x86.c:5073: warning: cast from pointer to integer of different size
mini-x86.c:5073: warning: cast from pointer to integer of different size
mini-x86.c:5079: warning: cast from pointer to integer of different size
mini-x86.c:5082: warning: cast from pointer to integer of different size
mini-x86.c:5082: warning: cast from pointer to integer of different size
mini-x86.c:5082: warning: cast from pointer to integer of different size
mini-x86.c:5082: warning: cast from pointer to integer of different size
mini-x86.c:5082: warning: cast from pointer to integer of different size
mini-x86.c:5088: warning: cast from pointer to integer of different size
mini-x86.c:5102: warning: cast from pointer to integer of different size
mini-x86.c:5111: warning: cast from pointer to integer of different size
mini-x86.c:5111: warning: cast from pointer to integer of different size
mini-x86.c:5111: warning: cast from pointer to integer of different size
mini-x86.c:5111: warning: cast from pointer to integer of different size
mini-x86.c:5111: warning: cast from pointer to integer of different size
mini-x86.c: In function ‘mono_arch_get_this_arg_from_call’:
mini-x86.c:5423: warning: cast to pointer from integer of different size
mini-x86.c: In function ‘mono_arch_context_get_int_reg’:
mini-x86.c:5528: warning: cast to pointer from integer of different size
mini-x86.c:5529: warning: cast to pointer from integer of different size
mini-x86.c:5530: warning: cast to pointer from integer of different size
mini-x86.c:5531: warning: cast to pointer from integer of different size
mini-x86.c:5532: warning: cast to pointer from integer of different size
mini-x86.c:5533: warning: cast to pointer from integer of different size
mini-x86.c:5534: warning: cast to pointer from integer of different size
mini-x86.c:5535: warning: cast to pointer from integer of different size
/var/tmp//ccYEwYMY.s:37605:suffix or operands invalid for `pushf'
/var/tmp//ccYEwYMY.s:37606:suffix or operands invalid for `pop'
/var/tmp//ccYEwYMY.s:37609:suffix or operands invalid for `push'
/var/tmp//ccYEwYMY.s:37610:suffix or operands invalid for `popf'
/var/tmp//ccYEwYMY.s:37611:suffix or operands invalid for `pushf'
/var/tmp//ccYEwYMY.s:37612:suffix or operands invalid for `pop'
make[4]: *** [mini-x86.lo] Error 1
make[3]: *** [all] Error 2
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2


More information about the Mono-osx mailing list