$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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.
 >
 >~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