简体   繁体   中英

Mono system.windows.forms fails tests when building on ARM (i.MX6)

I'm building mono from GIT master branch on an i.MX6 machine running Linux. I initially tried the default packaged version but found that it was broken in other weird ways and that missing dependencies were not available (namely UiaDbusBridge.dll). Hence building from source. Note that I'm not cross compiling. I'm native compiling on the i.MX6 host.

$ uname -a
Linux linaro-alip 3.0.35-02855-g3fccb21 #1 SMP PREEMPT Thu Dec 12 12:48:08 MST 2013 armv7l armv7l armv7l GNU/Linux

When I run make -k check the following error is reported

* Assertion at mini-codegen.c:809, condition `i == sel' not met

Stacktrace:

Native stacktrace:

Debug info from gdb:

=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

/bin/bash: line 13:  2943 Aborted                 ./mono-wrapper --compile-all --verify-all --security=verifiable $i
/home/linaro/mono/mcs/class/lib/net_2_0/System.Windows.Forms.dll verification failed

Everything else appears to be reasonably fine and I've compiled and run command line applications just fine. I can also compile System.Windows.Forms applications okay but when trying to run them the form briefly opens before closing and throwing the following error

Fontconfig warning: ignoring C.UTF-8: not a valid language tag
* Assertion at mini-codegen.c:809, condition `i == sel' not met

Stacktrace:

  at  
  at System.Windows.Forms.TextBoxBase.Draw (System.Drawing.Graphics,System.Drawing.Rectangle) 
  at System.Windows.Forms.TextBoxBase.OnPaintInternal (System.Windows.Forms.PaintEventArgs) 
  at System.Windows.Forms.Control.WmPaint (System.Windows.Forms.Message&) 
  at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message&) 
  at System.Windows.Forms.TextBoxBase.WndProc (System.Windows.Forms.Message&) 
  at System.Windows.Forms.TextBox.WndProc (System.Windows.Forms.Message&) 
  at System.Windows.Forms.Control/ControlWindowTarget.OnMessage (System.Windows.Forms.Message&) 
  at System.Windows.Forms.Control/ControlNativeWindow.WndProc (System.Windows.Forms.Message&) 
  at System.Windows.Forms.NativeWindow.WndProc (intptr,System.Windows.Forms.Msg,intptr,intptr) 
  at System.Windows.Forms.XplatUIX11.DispatchMessage (System.Windows.Forms.MSG&) 
  at System.Windows.Forms.XplatUI.DispatchMessage (System.Windows.Forms.MSG&) 
  at System.Windows.Forms.Application.RunLoop (bool,System.Windows.Forms.ApplicationContext) 
  at System.Windows.Forms.Application.Run (System.Windows.Forms.ApplicationContext) 
  at System.Windows.Forms.Application.Run (System.Windows.Forms.Form) 
  at OrientationTester.Program.Main () 
  at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) 

Native stacktrace:

Debug info from gdb:

=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

Aborted

How do I resolve this? So I can run System.Windows.Forms based code on this platform?

Never mind, after a week of searching and playing around I found that there's already a bug raised for this. https://bugzilla.xamarin.com/show_bug.cgi?id=20239

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM