[Mono-list] 32 Bit Mono on 64 Bit Linux?

Jonathan Pryor jonpryor at vt.edu
Wed Apr 14 11:04:38 EDT 2010

On Wed, 2010-04-14 at 10:15 +0200, Markus Ewald wrote:
> On Windows, .NET assemblies compiled for AnyCPU can be run on a 64-Bit 
> OS in either 32-Bit mode (using WOW64) or as native 64-Bit applications.
> Is there such a thing for Mono when run on a 64-Bit Linux system as well?

Mono ignores that part of the assembly.  Thus, you can run an assembly
that explicitly lists itself as 64-bit under a 32-bit runtime, and/or
run an assembly that explicitly lists itself as 32-bit under a 64-bit
runtime.  This is currently considered to be a feature.

If you want/need to run an assembly under a 32-bit environment (e.g. it
needs to P/Invoke native libraries for which you only have a 32-bit
version installed), you need to use a 32-bit mono.  This may involve
building your own mono (e.g. configure with
`CFLAGS=-m32 ./configure ...`) or it may involve installing the
appropriate packages on your distro (e.g. openSUSE 11.1 has a
"mono-core-32bit" package that provides a `mono32` program which runs
apps within a 32-bit address space).

 - Jon

More information about the Mono-list mailing list