[Vm-dev] Re: New Cog VMs available

Eliot Miranda eliot.miranda at gmail.com
Sun Jun 21 16:12:32 UTC 2015


Hi Holger,


On Jun 21, 2015, at 1:48 AM, Holger Freyther <holger at freyther.de> wrote:

> 
> 
>> On 21 Jun 2015, at 03:33, Eliot Miranda <eliot.miranda at gmail.com> wrote:
>> 
>> Hi All,
>> 
>> 
>> All is not perfect.  I've been able to update a Spur image completely and run almost all tests.  But currently there's a segfault coming from SSL.  Anyone who's got expertise with SSL and ARM is encouraged to take a look.  Here's the current stack trace for the segfault:
>> 
>> Program received signal SIGILL, Illegal instruction.
>> 0xb5fd4600 in ?? () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
>> (gdb) where
>> #0  0xb5fd4600 in ?? () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
>> #1  0xb5fd0fe4 in OPENSSL_cpuid_setup ()
>>   from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
> 
> 
> That is trying to detect available CPU instructions at runtime[1]. The idea is that
> the code sets a signal handler for SIGILL, then executes ARMvX instruction
> and if the signal handler is not called it can use these routines.

Yes, I get it now.

> 
> So the SIGILL is expected behavior, is this the last error or the first one?

It isn't visible unless one runs under gdb.  I was checking that the assert VM ran the test suite without assert failures by running under gdb (so I could diagnose failures if they occurred) and so when the SSL library started up gdb caught the SIGILL and stopped execution.  This confused me and I assumed it was an error.  Forgive the noise.

> 
> holger
> 
> 
> [1] https://git.openssl.org/?p=openssl.git;a=blob;f=crypto/armcap.c;h=1afbc9fcd036771dd694d0dbfa42df4d839d382b;hb=bc9567cdc9a56b5c904e075e3b929076c1e7583c#l89


More information about the Vm-dev mailing list