Android and compatibility with deprecated armv7 instructions
Russell King - ARM Linux
linux at arm.linux.org.uk
Thu Jul 3 15:47:53 PDT 2014
On Thu, Jul 03, 2014 at 11:16:16PM +0100, Måns Rullgård wrote:
> Will Deacon <will.deacon at arm.com> writes:
> > 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
> No ARM variant ever supported unaligned ldm/stm.
Quite right but that's not the point being discussed. Please note that
the sentence says "with an ARMv7 *kernel*" - we are not talking about
the architecture there.
So, what's more to the point is that on 32-bit ARM userspace under Linux,
we _have_ supported it since early 2000 up to present. It's not currently
supported on 64-bit ARM running Linux, even when running a 32-bit binary
Ergo, it's a user visible ABI change, one which we don't know whether it
matters. In all probability, it doesn't because (hopefully) no one ever
does unaligned LDMs/STMs - I think it would require hand-crafted assembly,
at which point you're talking about optimising something, and you'd be
silly to do it as it would invoke the alignment fault handling which
would be slow.
FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly
improving, and getting towards what was expected from it.
More information about the linux-arm-kernel