l4linux signals SIGSEGV instead of SIGILL and others

Adam Lackorzynski adam at os.inf.tu-dresden.de
Sun Jan 26 15:59:56 CET 2014


On Fri Jan 24, 2014 at 17:04:00 +0100, Martin Schröder wrote:
> 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.

Thanks, I think I see the problem.
Do you have CONFIG_VFP enabled in either Linux version?

Adam                 adam at os.inf.tu-dresden.de
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/

More information about the l4-hackers mailing list