Boost logo

Boost :

From: Caleb Epstein (caleb.epstein_at_[hidden])
Date: 2005-03-14 08:57:25

The file "operations_posix_windows.cpp" in the filesystem library
defines the macro _FILE_OFFSET_BITS=64 in an attempt to enable large
file support on POSIX platforms. Unfortunately, this definition comes
too late for it to work properly on Solaris, so Boost.Filesystem
incorrectly reports that large file support is unavailable (cf.

The _FILE_OFFSET_BITS macro definition needs to happen before the
inclusion of <sys/types.h>, but this system header is being pulled in
courtesy of <boost/config.hpp> which is included by
<boost/filesystem/config.hpp>. I'm attaching the output of g++ -H on
this file which lists header files as they are included, along with a
nesting depth so you can see what is going on.

Can this macro definition just be moved before any other includes? I
think it should be harmless on any non-POSIX platform. I think
defining it before ANY header is included or on the compiler
command-line is the only way for to make this work reliably.

Caleb Epstein
caleb dot epstein at gmail dot com

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