[Mono-dev] Mono on ARM
FirstName LastName
mousse_man at hotmail.com
Wed Sep 10 08:11:05 EDT 2008
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 -0300From: kumpera at gmail.comTo: mousse_man at hotmail.comSubject: Re: [Mono-dev] Mono on ARMCC: 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.comTo: kumpera at gmail.comDate: Mon, 8 Sep 2008 19:54:47 +0000
CC: massi at ximian.com; mono-devel-list at lists.ximian.comSubject: Re: [Mono-dev] Mono on ARMOK, 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.comTo: kumpera at gmail.comDate: Mon, 8 Sep 2008 19:12:26 +0000CC: massi at ximian.com; mono-devel-list at lists.ximian.comSubject: Re: [Mono-dev] Mono on ARMThanks 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 reachedaborting...Trace/breakpoint trapI'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.comTo: kumpera at gmail.comDate: Mon, 8 Sep 2008 16:28:26 +0000CC: massi at ximian.com; mono-devel-list at lists.ximian.comSubject: Re: [Mono-dev] Mono on ARMI 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 -0300From: kumpera at gmail.comTo: mousse_man at hotmail.comSubject: Re: [Mono-dev] Mono on ARMCC: 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 Ican 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.laCC mono-profiler-logging.lomono-profiler-logging.c: In function 'executable_file_add_region_reference':mono-profiler-logging.c:2532: warning: cast increases required alignment of target typemono-profiler-logging.c: In function 'executable_file_open':mono-profiler-logging.c:2593: warning: cast increases required alignment of target typemono-profiler-logging.c:2633: warning: cast increases required alignment of target typemono-profiler-logging.c:2636: warning: cast increases required alignment of target typemono-profiler-logging.c:2663: warning: cast increases required alignment of target typemono-profiler-logging.c:2667: warning: cast increases required alignment of target typemono-profiler-logging.c: In function 'executable_file_count_symbols':mono-profiler-logging.c:2722: warning: cast increases required alignment of target typemono-profiler-logging.c: In function 'executable_region_symbol_get_name':mono-profiler-logging.c:2751: warning: cast increases required alignment of target typemono-profiler-logging.c: In function 'executable_file_build_symbol_tables':mono-profiler-logging.c:2760: warning: cast increases required alignment of target typemono-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 1make[3]: Leaving directory `/home/ubuntu/Install/cross-arm-mono-2.0/mono/mono/profiler'make[2]: *** [all-recursive] Error 1make[2]: Leaving directory `/home/ubuntu/Install/cross-arm-mono-2.0/mono/mono'make[1]: *** [all-recursive] Error 1make[1]: Leaving directory `/home/ubuntu/Install/cross-arm-mono-2.0/mono'make: *** [all] Error 2ubuntu at mb-ubuntu:~/Install/cross-arm-mono-2.0/mono$ ./configure -h
From: mousse_man at hotmail.comTo: kumpera at gmail.comDate: Thu, 4 Sep 2008 20:10:16 +0000
CC: mono-devel-list at lists.ximian.comSubject: Re: [Mono-dev] Mono on ARMThanks 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 -0300From: kumpera at gmail.comTo: mousse_man at hotmail.comSubject: Re: [Mono-dev] Mono on ARMCC: 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_______________________________________________Mono-devel-list mailing listMono-devel-list at lists.ximian.comhttp://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
Get your information fix on your phone. With MSN Mobile you get regular news, sports and finance updates. Try it today!
Upgrade to Hotmail Plus and share more photos with bigger attachments. Click here to find out how Click here to find out how
Get your information fix on your phone. With MSN Mobile you get regular news, sports and finance updates. Try it today!
_________________________________________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20080910/16067240/attachment-0001.html
More information about the Mono-devel-list
mailing list