Don't use fstat64 when _LARGEFILE_SOURCE is defined

Using fstat64 on ancient distributions like RHEL5 causes errors because
fstat64 is declared inline, but there's no definition. Modern compilers
don't like that without the -fgnu89-inline flag.
pull/654/head
Mark Swaanenburg 8 years ago
parent 97cdbc45e8
commit 4013d71792

@ -248,7 +248,7 @@ inline size_t filesize(FILE *f)
#else // unix #else // unix
int fd = fileno(f); int fd = fileno(f);
//64 bits(but not in osx or cygwin, where fstat64 is deprecated) //64 bits(but not in osx or cygwin, where fstat64 is deprecated)
#if !defined(__FreeBSD__) && !defined(__APPLE__) && (defined(__x86_64__) || defined(__ppc64__)) && !defined(__CYGWIN__) #if !defined(__FreeBSD__) && !defined(__APPLE__) && !defined(_LARGEFILE_SOURCE) && (defined(__x86_64__) || defined(__ppc64__)) && !defined(__CYGWIN__)
struct stat64 st ; struct stat64 st ;
if (fstat64(fd, &st) == 0) if (fstat64(fd, &st) == 0)
return static_cast<size_t>(st.st_size); return static_cast<size_t>(st.st_size);

Loading…
Cancel
Save