[RFC] Make _FILE_OFFSET_BITS=64 default.

Joseph S. Myers joseph@codesourcery.com
Thu Mar 20 12:11:00 GMT 2014


On Thu, 20 Mar 2014, Rich Felker wrote:

> On Thu, Mar 20, 2014 at 01:46:15AM +0000, Joseph S. Myers wrote:
> > There's another problem with using such an assertion in fts.h: it's not 
> > the correct condition for the two ABIs to be the same.  On MIPS n64, 
> > struct stat and struct stat64 have different layout and so 
> > _FILE_OFFSET_BITS=64 is an ABI change despite __off_t and __off64_t having 
> > the same size (and part of the public fts interface is a pointer to struct 
> > stat).
> 
> This is beyond disgusting; why was something like that ever allowed
> into the ABI, rather than just using the stat64 struct/syscall (or
> whichever one is saner) regardless of whether the stat or stat64
> userspace function is called?

This predates my maintaining the MIPS port, and long predates notions of 
carefully choosing the best ABI, hopefully architecture-independent, 
rather than having an ABI that at least approximately follows some other 
Unix for that architecture.  (I don't know if this particular ABI 
peculiarity - a userspace-only peculiarity, there's only one set of n64 
syscalls - arises from an attempt to be IRIX-compatible, but some 
peculiarities do.)

-- 
Joseph S. Myers
joseph@codesourcery.com



More information about the Libc-alpha mailing list