On Wed, Nov 02, 2005 at 10:33:50AM +0000, Joe Orton wrote:
> On Wed, Nov 02, 2005 at 10:25:54AM +0000, Colm MacCarthaigh wrote:
> > Doing a complete fresh install from tarball I got caught out by the
> > largefile support. Although we no longer need any magic CFLAGS for httpd
> > itself to handle > 2GB files, we do for sendfile for to work
> > - at least on my platform (Linux IA64).
>
> What is the problem that you are seeing?
If I configure and install httpd as normal, no CFLAGS, >2Gb downloads
don't work, and I get truncated results.
> > APR isn't picking up sendfile64 for me. Besides getting APR fixed, we
> > may need to handle this more gracefully within httpd for the cases where
> > the bundled apr isn't being used. If we don't have a sendfile capable of
> > sending >2GB files, we shouldn't try to use it for files >2GB.
>
> This sounds very confused. On 64-bit platforms there are never any
> magic CFLAGS needed, no sendfile64() needed, and should be no problems
> handling >2Gb files in the first place.
Doesn't seem to be that way on IA64, my sys/sendfile.h has:
/* Send up to COUNT bytes from file associated with IN_FD starting at
*OFFSET to descriptor OUT_FD. Set *OFFSET to the IN_FD's file position
following the read bytes. If OFFSET is a null pointer, use the normal
file position instead. Return the number of written bytes, or -1 in
case of error. */
#ifndef __USE_FILE_OFFSET64
extern ssize_t sendfile (int __out_fd, int __in_fd, off_t *__offset,
size_t __count) __THROW;
#else
# ifdef __REDIRECT
extern ssize_t __REDIRECT (sendfile,
(int __out_fd, int __in_fd, __off64_t *__offset,
size_t __count) __THROW,
sendfile64);
# else
# define sendfile sendfile64
# endif
#endif
#ifdef __USE_LARGEFILE64
extern ssize_t sendfile64 (int __out_fd, int __in_fd, __off64_t *__offset,
size_t __count) __THROW;
#endif
I'll see what I can narrow it down to.
--
Colm MacCárthaigh Public Key: [EMAIL PROTECTED]