Boost logo

Boost :

From: Beman Dawes (bdawes_at_[hidden])
Date: 2004-02-01 09:23:37

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.
>[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?

   #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;

   #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?



Boost list run by bdawes at, gregod at, cpdaniel at, john at