Hello,
I'm using Boost 1.42, IBM XL C++ 10.1, and AIX 5.3.

On AIX the way to enable large file support is to define _LARGE_FILES on the compiler command line. When I attempt to build Boost with this definition, I see errors like the following:

"/home/wmason/src/cap-aix/fim/../opt/include/aix/boost/v1.42/boost/date_time/date_parsing.hpp", line 50.21: 1540-0215 (S) The wrong number of arguments have been specified for "tolower(int)".

This causes catastrophic failure of Boost to build.

Fortunately, by poking around the sources I found that I can enable large file support in Boost on AIX with IBM's compiler by defining _LARGEFILE64_SOURCE. Although this bypasses IBM's recommended way of enabling large file support, it does work to build Boost with large file support.

The problem is that my product enables large file support the normal way, which leads me back to the above error when I try to build.

I could just manually enable large file support in my code, but this causes portability problems. Not all operating systems support large files the same way, so trying to do it manually on every system will be a headache. Our portability strategy involves enabling large file support the normal way on every system, which in many cases, including AIX's, involves defining things on the command line.

Is there any way to use normal large file support on AIX and not have Boost go down in flames?

Thanks very much for any help,
Will