[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
Mon Nov 16 03:00:17 PST 2015


On Monday 16 November 2015 10:16:35 Joseph Myers wrote:
> On Sun, 15 Nov 2015, Chris Metcalf wrote:
> 
> > I've added Rich, Paul, Joseph, and Mike to the cc's as they are probably 
> > a good subset of libc-alpha to help comment on these issues.  My sense 
> > is that right now, it wouldn't be possible to add a 32-bit architecture 
> > with a non-32-bit default for _FILE_OFFSET_BITS.  And, obviously, this 
> > is why, when I added the tilegx32 APIs to glibc in 2011, I needed to 
> > provide _FILE_OFFSET_BITS=32 support.
> 
> x32 uses 64-bit off_t only.  That's not a problem; the problems are 
> tv_nsec not of type long, a bug we should avoid for all new ports (padding 
> on tv_nsec is fine; treating that padding as a significant high part of a 
> 64-bit value on input to glibc / kernel interfaces isn't), and maybe some 
> other types being 64-bit unnecessarily, although as far as I know the 
> suggested issues there 
> <https://sourceware.org/bugzilla/show_bug.cgi?id=16438> are all 
> theoretical.

Let's not get into the tv_nsec discussion today, that is not thankfully
not relevant for arm64 any more at this point. The system call ABI for
arm64/ilp32 is now the same as for any other 32-bit architecture using
the generic ABI, the question we're trying to solve here is only whether it
is ok for new 32-bit glibc ports to only offer a 64-bit off_t as the kernel
currently does (using __kernel_loff_t) or if we still need to support the
_FILE_OFFSET_BITS=32 case.

If I got you right, we can use 64-bit off_t now, so we just need someone
to figure out how to make that the default in glibc for new architectures
while keeping the existing 32-bit architectures unchanged.

	Arnd



More information about the linux-arm-kernel mailing list