Subject: Android and compatibility with deprecated armv7 instructions

From: [email-masked] (Will Deacon)
Date: Thu, 3 Jul 2014 18:32:26 +0100

On Thu, Jul 03, 2014 at 06:05:58PM +0100, Russell King - ARM Linux wrote:
> On Thu, Jul 03, 2014 at 05:22:30PM +0100, Grant Likely wrote:
> > So, no. I completely reject any notion that breaking existing apps is
> > okay. If we're going to say that v8 still supports 32-bit apps, then
> > it has to be all of v7, not just the 'good' bits. Nor do I think
> > saying "it's just a bunch of games" justifies anything. We're kernel
> > engineers. Applications are applications and we don't break userspace.
> > Period.
> 
> +1 on all points above.  I'd go further - if we're going to say that v8
> still supports 32-bit apps, that covers at least v6 *as well*.

We've never pretended to support anything other than ARMv8 in the compat
layer. uname even reports this in the machine name.

If people are suddenly so concerned about *full* compatibility with an ARMv7
kernel, that needs a lot more than just SWP emulation:

  - Alignment fixups for ldm/stm
  - SETEND
  - CP15 barriers
  - SWI breakpoints + branch through zero syscalls
  (- SWP)

By the arguments presented so far, I can't see why we wouldn't also need
OABI too. In other words, where do we draw the line? If we're not completely
compatible, then the compatibility argument suddenly becomes subjective.

It seems that people really want us to implement the subset of the ABI which
is needed by the Google Play store and are trying to dress that up as the
ARMv7 kernel ABI. The latter is a lot more work and conflating the two isn't
especially helpful.

Will