This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] Make _FILE_OFFSET_BITS=64 default.


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]