boost file system, program_option no longer build on HPUX/aCC/1.42

For 1.42 can no longer build boost on HP-UX. File-system, program-options and serialisation all show a similar problem + bjam --build-dir=./tmpBuildDir toolset=acc stage link=static --with-filesystem variant=debug ...patience... ....... acc.compile.c++ tmpBuildDir/boost/bin.v2/libs/ filesystem/build/acc/debug/link-static/threading-multi/utf8_codecvt_facet.o "./libs/detail/utf8_codecvt_facet.cpp", line 255: error #2014-D: extra text after expected end of preprocessing directive #elif WCHAR_MAX > 0x10000 The actual file <boost_root>/libs/detail/utf8_codecvt_facet.cpp appears to have been changed in boost 1.40 for the function get_cont_octet_out_count_impl FROM: // note the following code will generate on some platforms where // wchar_t is defined as UCS2. The warnings are superfluous as // the specialization is never instantitiated with such compilers. template<> int get_cont_octet_out_count_impl<4>(wchar_t word){ if (word < 0x80) { return 0; } if (word < 0x800) { return 1; } if (word < 0x10000) { return 2; } if (word < 0x200000) { return 3; } if (word < 0x4000000) { return 4; } return 5; } TO: template<> int get_cont_octet_out_count_impl<4>(wchar_t word){ if (word < 0x80) { return 0; } if (word < 0x800) { return 1; } // Note that the following code will generate warnings on some platforms // where wchar_t is defined as UCS2. The warnings are superfluous as the // specialization is never instantitiated with such compilers, but this // can cause problems if warnings are being treated as errors, so we guard // against that. Including <boost/detail/utf8_codecvt_facet.hpp> as we do // should be enough to get WCHAR_MAX defined. #if !defined(WCHAR_MAX) # error WCHAR_MAX not defined! #endif // cope with VC++ 7.1 or earlier having invalid WCHAR_MAX #if defined(_MSC_VER) && _MSC_VER <= 1310 // 7.1 or earlier return 2; #elif WCHAR_MAX > 0x10000 if (word < 0x10000) { return 2; } if (word < 0x200000) { return 3; } if (word < 0x4000000) { return 4; } return 5; #else return 2; #endif } Does any one know of a work around ? Any help appreciated. Best regards, Ta, Avi
participants (1)
-
Avi Bahra