Re: _FILE_OFFSET_BITS=64 considered harmful
| From: | Wez Furlong | Date: | Fri, 22 Oct 2004 09:53:25 +0000 |
| Subject: | Re: _FILE_OFFSET_BITS=64 considered harmful | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-13449@lists.php.net to get a copy of this message | ||
On Fri, 22 Oct 2004 10:45:08 +0100, Joe Orton <jorton@redhat.com> wrote:
> On Fri, Oct 22, 2004 at 09:53:14AM +0100, Wez Furlong wrote:
> > What I planned to do with the streams API for 5.1 was define
> > php_stream_off_t to be a 64-bit type (regardless of LFS support),
> > adjust the API where it is needed, and handle the LFS stuff centrally,
> > using the transitional LFS functions you mentioned if they are
> > present.
>
> The difference in that approach is that you introduce a bunch of new
> error cases on platforms *without* LFS support, where you'd have to
> check for passing an out-of-range 64-bit php_stream_off_t value to a
> function taking a 32-bit off_t. I think using php_stream_off_t = off_t
> or off64_t as appropriate is simpler for that reason.
I think it is important to force the size of the type, because we need to
be aware of the size of the type when passing it to/from zvals.
I'm happy with checking the range for non-LFS platforms,
as this should have minimal impact compared to the cost of actually
operating on the descriptor, and helps us to standardize on the API.
> But both approaches are feasible, the important thing is to avoid using
> -D_FILE_OFFSET_BITS=64, which just breaks so much.
OK, so we should roll back Edins patch from all branches and wait for
a safer fix.
--Wez.