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