
At 04:33 AM 2/1/2004, Momchil Velikov wrote:
All files must be compiled with the same _FILE_OFFSET_BITS. You don't want to get binary incompatible objects just because one happened to include the above header[1] and the other didn't.
~velco
[1] The program may have reasons to use struct stat independed of the presence of boost.
Hum... Perhaps mistakenly, I assumed stat() was a macro that expanded to call stat64() if _FILE_OFFSET_BITS=64 was defined. Put another way, is a program linking these two files OK? file_a.cpp #define _FILE_OFFSET_BITS=64 #include <sty/stat.h> long long func_a() { struct stat s; if ( stat( "foo", &s ) != 0 ) { throw ... } return s.st_size; } file_b.cpp #include <sty/stat.h> long func_b() { struct stat s; if ( stat( "bar", &s ) != 0 ) { throw ... } return s.st_size; } If that causes an ABI clash, then we would have to use the explicit 64-bit stat64() interface if available, and otherwise default to stat(). Is there a de facto standard feature availability macro to determine if _LARGEFILE64_SOURCE is supported? Thanks, --Beman