apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brad Nicholes" <BNICHO...@novell.com>
Subject Re: RFC: Unix LFS support for 1.0
Date Mon, 22 Mar 2004 13:45:02 GMT
>throughout.  Some of this work is already done for Netware, but it
>appears to be incomplete since it doesn't use readdir{,_r}64, nor
struct
>stat64; but maybe Netware does things differently.

FYI, the stat structure on NetWare by default is 64bit compatible. 
Through all of the testing that I have done on NetWare, LFS works.  The
problem is finding a client to test with that supports LFS.

Brad


Brad Nicholes
Senior Software Engineer
Novell, Inc., the leading provider of Net business solutions
http://www.novell.com 

>>> Joe Orton <joe@manyfish.co.uk> Monday, March 22, 2004 6:17:30 AM
>>>
A concrete proposal... the two requirements are:

1. APR 1.0 should support large files on Unix systems which have a 
32-bit off_t but support the LFS standard
and
2. APR must not export -D_FILE_OFFSET_BITS=64 by default to get a
64-bit
off_t, since this breaks the ABI of any other packages which use off_t
in their API, and is generally a Bad Thing.  But users should be
allowed
to build like this by passing the appropriate CPPFLAGS to configure if
they want.

The proposed solution is that APR must use the "transitional" LFS API
on
such platforms, define apr_off_t as off64_t; and use lseek64 and
friends
throughout.  Some of this work is already done for Netware, but it
appears to be incomplete since it doesn't use readdir{,_r}64, nor
struct
stat64; but maybe Netware does things differently.

If anyone has issues with this approach, please speak up soon!

Work in progress patch attached, todo list currently:

- AIX and Solaris have variants for their sendfile interfaces which
take
an off64_t in the appropriate place; need to hook these up and check
HP-UX too (### help welcome! :)

- what to do about old Linux 2.2's which have no sendfile64(): disable
sendfile support, or disable LFS support? both change the ABI

- automatically add -D_LARGEFILE64_SOURCE to CPPFLAGS on platforms
which
need it.  Linux doesn't because it's implied by -D_GNU_SOURCE, other
platforms do.



Mime
View raw message