[Mono-dev] Mono on ARM

Rodrigo Kumpera kumpera at gmail.com
Wed Sep 10 15:58:05 EDT 2008


Novell's bugzilla sucks, specially because when it fails where one can fill
a bug report about? ;)

We need to pinpoint the exact IL sequence that's causing your crash, it's
not just conv.r8 that will cause you trouble.

Run mono with -v -v -v -v and send us the resulting file, it should be
enough to pinpoint the ofending method.
Beware that the output will be huge. Huge as in many megs.


On Wed, Sep 10, 2008 at 4:11 PM, FirstName LastName
<mousse_man at hotmail.com>wrote:

> Hi, I tried to create a bug but was unsuccessful.  I created an account at
> Novell, wrote the bug, but when I submit, it fails.
>
> I was wondering if you could help me out on one thing.
>
> As you know, my problem is when I cast a long to a double on the ARM.  My
> float ops seem to work.  It's only the cast (for now :) that causes me a
> problem.
>
> By looking through the IL, I think its the opcode conv.r8 that may code me
> a problem.  But I'm trying to understand the code path of where in the jit
> is this done.
>
> Can you help me out on this?
>
>
>
>
> ------------------------------
> Date: Wed, 10 Sep 2008 10:57:59 -0300
>
> From: kumpera at gmail.com
> To: mousse_man at hotmail.com
> Subject: Re: [Mono-dev] Mono on ARM
> CC: mono-devel-list at lists.ximian.com
>
>
> Reporting a bug is the way to go.
>
> Anyway, it's a really bad idea to use floating point under ARM as the
> performance is terrible.
> In the long run you are better by eliminating it's uses.
>
>
> On Wed, Sep 10, 2008 at 9:11 AM, FirstName LastName <
> mousse_man at hotmail.com> wrote:
>
> I know you guys must be busy with Mono 2.0 but I appreciate your responses.
>
> I would like to investigate this more thoroughly as I would like to prove
> to my teammates that MONO is the way to go on the ARM.
>
> I've proved it already by using other components.  This casting issue
> (gint64 to double, where gint64 is signed long long, 8 bytes) makes my XSP
> server crash.  Is
>
> there some doc about jit, opcode conversion, etc..  I trying to find the
> link between the generate IL in my test app and the conversion in the mono
> sourceÉ
>
> Also, am I reporting my issue on the proper page?  Should I open a defect
> for more inspection?
>
>
>
>
> ------------------------------
>
> Date: Tue, 9 Sep 2008 17:33:32 -0300
>
> From: kumpera at gmail.com
> To: mousse_man at hotmail.com
> Subject: Re: [Mono-dev] Mono on ARM
> CC: mono-devel-list at lists.ximian.com
>
>
> The 2.0 release has some issues with soft-float.
>
> It shoule be due to the way we convert float ops to soft-float calls.
>
>
> On Tue, Sep 9, 2008 at 4:51 PM, FirstName LastName <mousse_man at hotmail.com
> > wrote:
>
> I noticed there was some kind of test under the mini folder named
> basic-float.cs.  I noticed that some tests do exactly why my app test does.
>
> I ran the tests and noticed that all tests that want to convert a long to
> double fail, which is my problem.
>
> When running on the ARM, I added a trace in mono_lconv_to_r8.  When I look
> at the return value (which is a gint64 casted to double), the value is OK.
>
> Can someone tell why the casted value is OK in mono_lconv_to_r8 but not in
> the tests?  Should I look for something else?
>
>
> ------------------------------
>
> From: mousse_man at hotmail.com
> To: kumpera at gmail.com
> Date: Mon, 8 Sep 2008 19:54:47 +0000
>
> CC: massi at ximian.com; mono-devel-list at lists.ximian.com
> Subject: Re: [Mono-dev] Mono on ARM
>
>
> OK, so, I forced ARM_FPU_FPA and this time, it runs but I get the same
> problem.
>
> In order words, the result of my test program is the same with 1.9.1 and
> the branch 2.0.
>
> Could someone point me when in MONO I could find the code that handles the
> cast from long to double?
>
>
>
> ------------------------------
>
>
> From: mousse_man at hotmail.com
> To: kumpera at gmail.com
> Date: Mon, 8 Sep 2008 19:12:26 +0000
> CC: massi at ximian.com; mono-devel-list at lists.ximian.com
> Subject: Re: [Mono-dev] Mono on ARM
>
> Thanks Massi (that's how they call you, right?).  I haven't tried you fix
> yet since I'm working from the branch 2.0 and not the current head.
>
> I used the work around that was provided.  I got things to compile but now
> I have a runtime issue.
>
> I get the following error at runtime:
>
> ** (Loader.exe:1116): WARNING **: unknown opcode r4const in
> mono_arch_output_basic_block()
>
> ** ERROR **: file mini-arm.c: line 3242 (mono_arch_output_basic_block):
> should not be reached
> aborting...
> Trace/breakpoint trap
>
> I'm running a sample test on floats and doubles as specified in the in the
> first part of the e-mail.
>
> I've looked into the file mini-arm.c and it would seem (if I'm reading this
> right) that the ARM_FPU_FPA needs to be defined.
>
> I will try this but in version 1.9.1, there was a FPU check in the
> configure script.  I've looked in the config.log but don't see this.
>
> Am I making sense?
>
>
>
>
> ------------------------------
>
>
>
> From: mousse_man at hotmail.com
> To: kumpera at gmail.com
> Date: Mon, 8 Sep 2008 16:28:26 +0000
> CC: massi at ximian.com; mono-devel-list at lists.ximian.com
> Subject: Re: [Mono-dev] Mono on ARM
>
> I tried to disable the profiler but I still get the same compiler issue.  I
> doubled checked by looking into the config.log file
>
> and it says that the profiler is disabled (actually, even when the
> configure script finishes).
>
> Am I missing something?
>
>
>
>
>
> ------------------------------
>
>
>
>
> Date: Mon, 8 Sep 2008 11:17:19 -0300
> From: kumpera at gmail.com
> To: mousse_man at hotmail.com
> Subject: Re: [Mono-dev] Mono on ARM
> CC: mono-devel-list at lists.ximian.com; massi at ximian.com
>
>
>
>
>
> Yes, enable-minimal does exactly what you want.
>
> Thou the issue you found should be properly handled by the configure
> script.
>
> Massi, do you mind taking a look at that? If you have too much stuff on
> your hand this week I
> can take a look at how to add proper configure foo around.
>
>
> On Mon, Sep 8, 2008 at 8:25 AM, FirstName LastName <mousse_man at hotmail.com
> > wrote:
>
> I tried compiling from a snapshot (took the mono 2.0 branch, right?) but I
> got a compilation error.
>
> It seems mono-profiler-logging.c uses the struct stat 'st_mtim'.  But this
> field only exists
>
> if __USE_MISC is defined, which in turn is defined by the features.h file.
>
> I noticed in the configure script there is a flag called enable-minimal.
>
> If I do enable-minimal=profile, will this disable the profiler? (am I on a
> good track here?)
>
>
>
> mono-profiler-aot.c:125: warning: no previous prototype for
> 'mono_profiler_startup'
> LD      libmono-profiler-aot.la
> CC      mono-profiler-logging.lo
> mono-profiler-logging.c: In function
> 'executable_file_add_region_reference':
> mono-profiler-logging.c:2532: warning: cast increases required alignment
> of target type
> mono-profiler-logging.c: In function 'executable_file_open':
> mono-profiler-logging.c:2593: warning: cast increases required alignment
> of target type
> mono-profiler-logging.c:2633: warning: cast increases required alignment
> of target type
> mono-profiler-logging.c:2636: warning: cast increases required alignment
> of target type
> mono-profiler-logging.c:2663: warning: cast increases required alignment
> of target type
> mono-profiler-logging.c:2667: warning: cast increases required alignment
> of target type
> mono-profiler-logging.c: In function 'executable_file_count_symbols':
> mono-profiler-logging.c:2722: warning: cast increases required alignment
> of target type
> mono-profiler-logging.c: In function 'executable_region_symbol_get_name':
> mono-profiler-logging.c:2751: warning: cast increases required alignment
> of target type
> mono-profiler-logging.c: In function 'executable_file_build_symbol_tables':
> mono-profiler-logging.c:2760: warning: cast increases required alignment
> of target type
> mono-profiler-logging.c: In function
> 'profiler_heap_shot_process_command_file':
> mono-profiler-logging.c:4029: error: 'struct stat' has no member named
> 'st_mtim'
> make[3]: *** [mono-profiler-logging.lo] Error 1
> make[3]: Leaving directory
> `/home/ubuntu/Install/cross-arm-mono-2.0/mono/mono/profiler'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory
> `/home/ubuntu/Install/cross-arm-mono-2.0/mono/mono'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/home/ubuntu/Install/cross-arm-mono-2.0/mono'
> make: *** [all] Error 2
> ubuntu at mb-ubuntu:~/Install/cross-arm-mono-2.0/mono$<ubuntu at mb-ubuntu:%7E/Install/cross-arm-mono-2.0/mono$>./configure -h
>
>
>
>
>
> ------------------------------
>
> From: mousse_man at hotmail.com
> To: kumpera at gmail.com
> Date: Thu, 4 Sep 2008 20:10:16 +0000
>
> CC: mono-devel-list at lists.ximian.com
> Subject: Re: [Mono-dev] Mono on ARM
>
> Thanks for the quick response.  It is interesting what you say since I was
> actually going through all the changesets since 1.9.1 and I noticed many
> fixes regarding th earm, softfloat, ...
>
> I will get the latest code and try it out.  Thanks.
>
>
>
> ------------------------------
>
>
> Date: Thu, 4 Sep 2008 16:43:49 -0300
> From: kumpera at gmail.com
> To: mousse_man at hotmail.com
> Subject: Re: [Mono-dev] Mono on ARM
> CC: mono-devel-list at lists.ximian.com
>
>
>
> A lot of bugs with soft float has been fixed for the 2.0 release and even
> more work went in the current development branch.
>
> Please test with the 2.0 snapshot builds and report your bugs so we can fix
> then in time for the release.
>
>
> 2008/9/4 FirstName LastName <mousse_man at hotmail.com>
>
> Hi,
>
> I'm trying to run mono 1.9.1 on the arm (ARM9).  I have an issue when I
> try to cast a long to a double.  It simply does nothing.
>
>
> ·         I'm using soft float in FPA (actually, the configure script
> seems to detect it properly -> it defines ARM_FPU_FPA).
>
> ·         I'm using GNU EABI.
>
> ·         When I do a mathematical operation on doubles, it works (Test in
> C#).
>
> ·         When I print (Console.WriteLine) a double, it works (Test in
> C#).
>
> ·         When I cast an int to a double, it works.
>
> ·         I tried to define ARM_FPU_NONE and it generates an
> ExecutionEngineException (so, obviously, I dropped it.)
>
> ·         I tried to define __ARM_EABI__ and it generates an
> ExecutionEngineException (so, obviously, I dropped it.)
>
> When I cast a long to a double, it doesn't work. Here is what I do:
>
> int i = 1234;
> long l = 1234;
> float f = 1234.56;
> double d = 1234.56;
> double result = 64;
>
> result = (double)i;
> Console.WriteLine("Result (cast from int):  " + result); ->  It shows me
> 1234.  This is good.
>
> result = 64;
> result = (double)f;
> Console.WriteLine("Result (cast from float):  " + result); ->  It shows me
> 1234.56.  This is also very good.
>
> result = 64;
> result = (double)I;
> Console.WriteLine("Result (cast from long):  " + result); ->  It shows me
> 64 ????  This is not good.
>
> Am I missing something? Any other pointers?
>
>
> ------------------------------
> Upgrade to Hotmail Plus and share more photos with bigger attachments.
> Click here to find out how Click here to find out how<http://get.live.com/en-ca/mailplus/features>
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>
>
> ------------------------------
> Upgrade to Hotmail Plus and share more photos with bigger attachments.
> Click here to find out how Click here to find out how<http://get.live.com/en-ca/mailplus/features>
>  ------------------------------
> Get your information fix on your phone. With MSN Mobile you get regular
> news, sports and  finance updates. Try it today!<http://www.msnmobile.ca/>
>
>
>
> ------------------------------
>
> ------------------------------
>
> ------------------------------
> Upgrade to Hotmail Plus and share more photos with bigger attachments.
> Click here to find out how Click here to find out how<http://get.live.com/en-ca/mailplus/features>
> ------------------------------
> Get your information fix on your phone. With MSN Mobile you get regular
> news, sports and  finance updates. Try it today!<http://www.msnmobile.ca/>
>
>
>
> ------------------------------
> Get your information fix on your phone. With MSN Mobile you get regular
> news, sports and  finance updates. Try it today!<http://www.msnmobile.ca/>
>
>
>
> ------------------------------
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20080910/4b3e81da/attachment-0001.html 


More information about the Mono-devel-list mailing list