Re: [PATCH 25/25] arm64:ilp32: add ARM64_ILP32 to Kconfig

From: Yury Norov
Date: Fri Apr 29 2016 - 12:27:14 EST


On Fri, Apr 29, 2016 at 05:14:46PM +0100, Catalin Marinas wrote:
> On Fri, Apr 29, 2016 at 07:08:55PM +0300, Yury Norov wrote:
> > On Fri, Apr 29, 2016 at 05:03:34PM +0100, Catalin Marinas wrote:
> > > On Wed, Apr 06, 2016 at 01:08:47AM +0300, Yury Norov wrote:
> > > > +config ARM64_ILP32
> > > > + bool "Kernel support for ILP32"
> > > > + select COMPAT_WRAPPER
> > > > + help
> > > > + This option enables support for AArch64 ILP32 user space. ILP32
> > > > + is an ABI where long and pointers are 32bits but it uses the AARCH64
> > > > + instruction set.
> > >
> > > Is there any penalty for AArch32 tasks when selecting COMPAT_WRAPPER?
> >
> > No. AARCH32 doesn't define __SC_WRAP and so __SYSCALL macro is used,
> > which fills syscall table with sys_xxx versions, not compat_sys_xxx.
>
> Ah, I forgot it has its own unistd32.h.
>
> Thanks.

Even if it was sharing generic unistd,h, it's OK as well. To use
wrappers, you have to enable COMPAT_WRAPPER (which is enabled even if
only a single ABI needs it) *and* define __SC_WRAP in corresponding
sys_xxx.c, which is individual for each abi, of course.

>
> --
> Catalin