[PATCH v6 13/17] arm64:ilp32: add sys_ilp32.c and a separate table (in entry.S) to use it

Arnd Bergmann arnd at arndb.de
Wed Nov 11 15:23:43 PST 2015

On Thursday 12 November 2015 00:07:41 Andreas Schwab wrote:
> Arnd Bergmann <arnd at arndb.de> writes:
> > On Wednesday 11 November 2015 18:54:00 Andreas Schwab wrote:
> >> Yury Norov <ynorov at caviumnetworks.com> writes:
> >> 
> >> > +#define sys_clock_gettime       compat_sys_clock_gettime
> >> > +#define sys_clock_settime       compat_sys_clock_settime
> >> 
> >> You also need to redirect sys_clock_nanosleep.
> >
> > Note that based on my comment, that table would be turned around, and
> > only the syscalls get overridden that do not have the normal
> > compat mode behavior (mostly the ones that pass a 64-bit register).
> Is it intented that _all_ off_t-like syscalls are implemented by the
> 64bit variants?  Currently, this isn't fully implemented (lseek is
> implemented by sys_llseek and mmap by an mmap2 wrapper).

I think either way is fine for the two examples. I think it's clear
that we want __NR_llseek as 62 and __NR_mmap2 as 222. Whether those
use the compat_sys_llseek/compat_sys_mmap2_wrapper or
sys_lseek/sys_mmap entry points is not overly important, we can use
whatever is more convenient to glibc: if we can kill off an
architecture specific wrapper function in glibc by adding one line
to the kernel, that seems worthwhile.

It's a bit confusing, because user space off_t matches the kernel's
off_t, loff_t, but not the __kernel_off_t from the uapi headers.


More information about the linux-arm-kernel mailing list