Is CPUTYPE=cortex-A7 supposed to work?

Andrew Gierth andrew at tao11.riddles.org.uk
Tue Mar 7 12:13:43 UTC 2017


Bingo.

Signal delivery isn't preserving the NEON registers (at all, as far as I
can tell); if the signal handler changes any of them, those changes are
visible in the interrupted code.

If libthr is compiled with -mcpu=cortex-a7, then it uses NEON registers
for data copying in thr_sighandler, so obviously things go south at that
point. Equally bad things happen if the signal handler does any floating
point or vector work itself whether linked with libthr or not.

So it looks like this is a kernel bug after all, no?

Looking at arm/arm/machdep.c reveals a noticable absence of any attempt
to preserve the VFP state in sendsig(), contrary to what happens on
other platforms.

-- 
Andrew.


More information about the freebsd-arm mailing list