l4linux signals SIGSEGV instead of SIGILL and others

Martin Schröder <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
Hi,

I have a piece of code running fine on native Linux, but terminating 
unexpected with SIGSEGV while running on l4linux on the same piece of 
hardware.

The relevant code is in _armv7_neon_probe "vorr q15,q15,q15" (undefined 
instruction on ARMv5) which normally would throw SIGILL and thus being 
caught in the caller.

With CONFIG_L4_DEBUG_SEGFAULTS enabled, the exception is correctly 
printed as
 > CPSR: 6000010 Err: 00100000
 >  MyApp/171: Undefined instruction at 0007c7e0 with content f26ee1fe, 
err 00100000

Unfortunately, when I look into l4linux/arch/l4/kernal/signal.c in 
l4x_deliver_signal(), errcode is not used at all and so IGSEGV will 
always be sent, regardless of the exceptions.


Martin


openssl/crypto/armv4cpuid.S:
> .global        _armv7_neon_probe
> .type        _armv7_neon_probe,%function
> _armv7_neon_probe:
>         .word        0xf26ee1fe        @ vorr        q15,q15,q15
>         .word        0xe12fff1e        @ bx        lr
> .size        _armv7_neon_probe,.-_armv7_neon_probe
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.