i.MX515 Project
Debian/Ubuntu Mono porter box

in category Linux Distributions
proposed by directhex on 17th September 2010 (accepted on 26th September 2010)
[View Full Project]
  Mono 2.8 - progress
posted by directhex on 27th October 2010


I've been chasing it for about a week now, but have finally isolated the cause of the ARM problems I mentioned.

I've been using the default Ubuntu Maverick environment on the Efika MX, due to the lack of TO3-capable Debian image. This has three remotely relevant versions of GCC available:


  • 4.3.5-3ubuntu1
  • 4.4.4-14ubuntu5
  • 4.5.1-7ubuntu2


After a significant number of fights with CFLAGS to try and build a more cut-down Mono, I started trying the multiple GCC releases, and found that whilst the gcc-4.3 package produced a fully functional Mono binary, the other two produced a Mono binary which would hang forever (or throw SIGILL or SIGSEGV) when faced with a NullReferenceException in executed code, likely due to Thumb instructions in the wrong place. Vincent Sanders and Geoff Norton helped greatly with debugging the Mono runtime to isolate where the issues were happening.

On a hunch, I tried the same set of compiler packages in Debian:


  • 4.3.5-4
  • 4.4.5-5
  • 4.5.1-9


Now, the interesting thing is, in Debian, all three compilers produce a working Mono runtime. The difference? As far as I can determine, Linaro patches to GCC. gcc-4.3 is the only Ubuntu compiler without Linaro patches - and also the only functional Ubuntu compiler.

There's now a bug opened to track this issue: https://bugs.launchpad.net/gcc-linaro/+bug/667225
Genesi Network: Genesi - Main Site Power2People PowerDeveloper