Boost logo

Boost Users :

Subject: [Boost-users] AIX large file support
From: Will Mason (willchido_at_[hidden])
Date: 2010-10-09 17:06:48


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



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net