On May 22, 2015 2:54:07 PM CDT, Cyd Haselton <chasel...@gmail.com> wrote: > > >On May 22, 2015 8:35:15 AM CDT, Dan Liew <d...@su-root.co.uk> wrote: >>On 22 May 2015 at 14:21, Cyd Haselton <chasel...@gmail.com> wrote: >>> >>> >>> On May 22, 2015 7:34:16 AM CDT, Jo Shields <direct...@apebox.org> >>wrote: >>>> >>>> >>>>On 22/05/15 01:16, cyd wrote: >>>>> Let me back up a few steps before I start troublehooting this. >>>>> >>>>> Does the monolite build of mono 4.0 support ARM...specifically >>ARMv7? >>>> If >>>>> so, are there any modifications I need to make before running >'make >>>>&& make >>>>> install?' >>>> >>>>Monolite is CPU-agnostic. It's just bytecode. Mono 4 supports ARMv7, >>so >>>>the question is what instructions are triggering SIGILL >>>>_______________________________________________ >>>>Mono-devel-list mailing list >>>>Mono-devel-list@lists.ximian.com >>>>http://lists.ximian.com/mailman/listinfo/mono-devel-list >>> >>> Running 'strace -v -o mono.log make check', then 'cat mono.log | >grep >>-B 12 SIGILL' yields: >>> >>> mprotect(0x40085000, 4096, PROT_READ) = 0 >>> getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, >rlim_max=RLIM_INFINITY}) >>= 0 >>> gettid() = 10243 >>> syscall_983045(0x40086f24, 0xffffffb8, 0, 0x40086f24, 0x40087154, 0, >>0xbeaec0d0, 0xf0005, 0x4008715c, 0xbe2ed000, 0, 0, 0, 0xbeaec070, >>0x4007e254, 0x4007eaa4, 0x60000010, 0x40086f24, 0, 0, 0xc764, 0, 0, 0, >>0, 0, 0, 0, 0, 0, 0, 0) = 0 >>> mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, >0, >>0) = 0x40089000madvise(0x40089000, 8192, 0xc /* MADV_??? */) = -1 >>EINVAL (Invalid argument) >>> sigaltstack({ss_sp=0x40089000, ss_flags=0, ss_size=8192}, NULL) = 0 >>> sigaction(SIGABRT, {0x40076a71, [], SA_STACK|SA_RESTART|SA_SIGINFO}, >>NULL, 0x1dd9028) = 0 >>> sigaction(SIGBUS, {0x40076a71, [], SA_STACK|SA_RESTART|SA_SIGINFO}, >>NULL, 0x1dd9028) = 0 >>> sigaction(SIGFPE, {0x40076a71, [], SA_STACK|SA_RESTART|SA_SIGINFO}, >>NULL, 0x1dd9028) = 0 >>> sigaction(SIGILL, {0x40076a71, [], SA_STACK|SA_RESTART|SA_SIGINFO}, >>NULL, 0x1dd9028) = 0 >>> >>> I have zero experience reading straces but if I had to guess it >looks >>like a function is making an invalid memory call. >> >>Isn't the sigaction there setting up the signal handler for SIGILL? If >>so this is probably the wrong part to be looking at. I'm slightly >>confused by the sigaction written here because it's taking four >>arguments but sigaction only takes three (I'm not great at reading the >>output of strace either). >> >>Another way to debug this is run the program under gdb and make sure >>you set it up to intercept SIGILL. When gdb catches SIGILL you can >>walk through the stack and also examine the assembly to see if >>anything looks suspect to you. > >Hopefully this helps clarify the problem...it's the portion of logcat >during the illegal instruction. > >I'd really rather not have to port gdb > >I( 317) #00 pc 001756e4 >/data/data/jackpal.androidterm/kbox2/bld/mono/mono-4.0.0/mono/mini/mono-sgen >(method_commands_internal+5588) (DEBUG) > >I( 317) bee727ac 00392ebc >/data/data/jackpal.androidterm/kbox2/bld/mono/mono-4.0.0/mono/mini/mono-sgen >(do_rehash+336) (DEBUG) > >I( 317) bee727dc 0019f0e4 >/data/data/jackpal.androidterm/kbox2/bld/mono/mono-4.0.0/mono/mini/mono-sgen >(mono_arch_emit_prolog+2632) (DEBUG) > >I( 317) 00008000-00451000 r-x >/data/data/jackpal.androidterm/kbox2/bld/mono/mono-4.0.0/mono/mini/mono-sgen > (DEBUG) > >I( 317) 00458000-0045f000 rwx >/data/data/jackpal.androidterm/kbox2/bld/mono/mono-4.0.0/mono/mini/mono-sgen > (DEBUG)
UPDATE: Based on the above, I tried building with --with-sgen=no. Unfortunately make fails early with the following errors: dyn_load.c: In function 'GC_FirstDLOpenedLinkMap': dyn_load.c:527:63: error: dereferencing pointer to incomplete type = ((struct r_debug *)(dp->d_un.d_ptr))->r_map; ^ dyn_load.c:528:48: error: dereferencing pointer to incomplete type if( lm != 0 ) cachedResult = lm->l_next; /* might be NIL */ ^ dyn_load.c: In function 'GC_register_dynamic_libraries': dyn_load.c:549:45: error: dereferencing pointer to incomplete type lm != (struct link_map *) 0; lm = lm->l_next) ^ dyn_load.c:557:30: error: dereferencing pointer to incomplete type e = (ElfW(Ehdr) *) lm->l_addr; ^ dyn_load.c:562:37: error: dereferencing pointer to incomplete type offset = ((unsigned long)(lm->l_addr)); ^ -- Sent from my Android device with K-9 Mail. Please excuse my brevity. _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list