
At 02:51 AM 9/21/2004, Martin Wille wrote:
... There are two problems:
1. POSIX feature flags get set *after* the first #include of a POSIX header. This likely will confuse the POSIX feature flag system. This probably also explains why the code later #defines flags internally used by that system.
2. The feature flag system special-cases gcc. This makes things rather ugly for us because the type returned by readdir() changes with the compiler: dirent * for gcc, dirent64 * for icc. Those types, however, have the same layout if 64 bit support was enabled by #defining _FILE_OFFSET_BITS to 64 before #including a POSIX header.
I'm not sure that analysis is correct since (1) it is only affecting one particular version of one compiler, rather than all POSIX compilers, and (2) other than some Boost headers, which presumably don't include POSIX headers, the define is give before inclusion other headers. It any case, please try moving the define to the first line of the file, and let me know if that changes the results. Thanks, --Beman