[Mono-dev] Building from Source Fails with mcs: Command not found (Mono-devel-list Digest, Vol 121, Issue 19) (Mono-devel-list Digest, Vol 121, Issue 20)

Dan Liew dan at su-root.co.uk
Fri May 22 13:35:15 UTC 2015


On 22 May 2015 at 14:21, Cyd Haselton <chaselton at gmail.com> wrote:
>
>
> On May 22, 2015 7:34:16 AM CDT, Jo Shields <directhex at 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 at 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.


More information about the Mono-devel-list mailing list