Is CPUTYPE=cortex-A7 supposed to work?

Mark Millard markmi at dsl-only.net
Mon Mar 6 04:26:59 UTC 2017


On 2017-Mar-5, at 10:14 AM, Andrew Gierth <andrew at tao11.riddles.org.uk> wrote:

>>>>>> "Andrew" == Andrew Gierth <andrew at tao11.riddles.org.uk> writes:
> 
> Andrew> emacs-25.1,3 built with x11 support and running in graphical
> Andrew> mode is unstable; crashes randomly either with a mutex
> Andrew> assertion (enqueue_mutex complaining that the mutex is already
> Andrew> owned) or with SEGV. Running in text mode, it doesn't crash,
> Andrew> but hitting pagedown in some buffers (where there are many
> Andrew> similar lines) _reliably_ produces incorrect display output in
> Andrew> which some characters are displaced by 4:
> 
> Extra bonus strangeness: recompiling just emacs without cortex-a7 does
> not fix either of these, so it's not an issue with miscompiling any of
> the emacs code. This is consistent with my experimentation with git.
> 
> -- 
> Andrew.

I'm currently sticking with some known failures in the base system:
openssl speed failures. (A signal based program crash without X11
involved could be interesting.)

Disabling the use of NEON via a hack removes the "openssl speed"
problem. With:

/usr/src/crypto/openssl/crypto/armcap.c :

. . .
void OPENSSL_cpuid_setup(void)
{
. . .
    } else if (sigsetjmp(ill_jmp, 1) == 0) {
        _armv7_neon_probe();
#ifndef DISABLE_HACK_THAT_AVOIDS_NEON
        OPENSSL_armcap_P |= ARMV7_NEON;
#endif
. . .

"openssl speed" completes normally.

This can also be done from gdb by setting OPENSSL_armcap_P
after the:

OPENSSL_armcap_P |= ARMV7_NEON;

executes in order to turn off the bit.


===
Mark Millard
markmi at dsl-only.net



More information about the freebsd-arm mailing list