[Mono-dev] Mono on ARM

Rodrigo Kumpera kumpera at gmail.com
Tue Sep 9 16:33:32 EDT 2008


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>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20080909/fc998c11/attachment-0001.html 


More information about the Mono-devel-list mailing list