id summary reporter owner description type status milestone component version severity resolution keywords cc 2244 build error in regex icu on AIX 5.3 with IBM Visual Age 9 michael.hufer@… John Maddock "I get the following compile error when compiling the regex library with the Visual Age 9 compiler on AIX 5.3:[[BR]] {{{ acpp.compile.c++ /home/mhufer/xgen-externals/boost/AIX-5.3/boost/bin.v2/libs/regex/build/vacpp/release/address-model-32/link-static/optimization-space/threading-multi/icu.o ""./boost/regex/icu.hpp"", line 359.17: 1540-0403 (S) ""boost::make_u32regex(const UChar *, boost::regex_constants::syntax_option_type)"" is already defined. ""./boost/regex/icu.hpp"", line 353.17: 1540-0425 (I) ""make_u32regex"" is defined on line 353 of ""./boost/regex/icu.hpp"". ""./boost/regex/icu.hpp"", line 459.13: 1540-0403 (S) ""boost::u32regex_match(const wchar_t *, match_results > > &, const u32regex &, match_flag_type)"" is already defined. ""./boost/regex/icu.hpp"", line 451.13: 1540-0425 (I) ""u32regex_match"" is defined on line 451 of ""./boost/regex/icu.hpp"". ""./boost/regex/icu.hpp"", line 523.13: 1540-0403 (S) ""boost::u32regex_match(const wchar_t *, const u32regex &, match_flag_type)"" is already defined. ""./boost/regex/icu.hpp"", line 515.13: 1540-0425 (I) ""u32regex_match"" is defined on line 515 of ""./boost/regex/icu.hpp"". ""./boost/regex/icu.hpp"", line 644.13: 1540-0403 (S) ""boost::u32regex_search(const wchar_t *, match_results > > &, const u32regex &, match_flag_type)"" is already defined. ""./boost/regex/icu.hpp"", line 636.13: 1540-0425 (I) ""u32regex_search"" is defined on line 636 of ""./boost/regex/icu.hpp"". ""./boost/regex/icu.hpp"", line 705.13: 1540-0403 (S) ""boost::u32regex_search(const wchar_t *, const u32regex &, match_flag_type)"" is already defined. ""./boost/regex/icu.hpp"", line 697.13: 1540-0425 (I) ""u32regex_search"" is defined on line 697 of ""./boost/regex/icu.hpp"". ""./boost/regex/v4/u32regex_iterator.hpp"", line 170.40: 1540-0403 (S) ""boost::make_u32regex_iterator(const UChar *, const u32regex &, regex_constants::match_flag_type)"" is already defined. ""./boost/regex/v4/u32regex_iterator.hpp"", line 164.42: 1540-0425 (I) ""make_u32regex_iterator"" is defined on line 164 of ""./boost/regex/v4/u32regex_iterator.hpp"". ""./boost/regex/v4/u32regex_token_iterator.hpp"", line 286.46: 1540-0403 (S) ""boost::make_u32regex_token_iterator(const UChar *, const u32regex &, int, regex_constants::match_flag_type)"" is already defined. ""./boost/regex/v4/u32regex_token_iterator.hpp"", line 280.48: 1540-0425 (I) ""make_u32regex_token_iterator"" is defined on line 280 of ""./boost/regex/v4/u32regex_token_iterator.hpp"". ""./boost/regex/v4/u32regex_token_iterator.hpp"", line 318.46: 1540-0403 (S) ""template boost::make_u32regex_token_iterator(const UChar *, const u32regex &, const int (&)[N], regex_constants::match_flag_type)"" is already defined. ""./boost/regex/v4/u32regex_token_iterator.hpp"", line 311.48: 1540-0425 (I) ""make_u32regex_token_iterator"" is defined on line 311 of ""./boost/regex/v4/u32regex_token_iterator.hpp"". ""./boost/regex/v4/u32regex_token_iterator.hpp"", line 348.46: 1540-0403 (S) ""boost::make_u32regex_token_iterator(const UChar *, const u32regex &, const vector > &, regex_constants::match_flag_type)"" is already defined. ""./boost/regex/v4/u32regex_token_iterator.hpp"", line 342.48: 1540-0425 (I) ""make_u32regex_token_iterator"" is defined on line 342 of ""./boost/regex/v4/u32regex_token_iterator.hpp"". xlC_r -c -DBOOST_ALL_NO_LIB=1 -DBOOST_HAS_ICU=1 -DNDEBUG -qcpluscmt -O2 -qcompact -qfuncsect -qeh -qrtti -I""."" -I""/home/mhufer/xgen-externals/install/AIX-5.3/icu-3.8.1/include"" -o ""/home/mhufer/xgen-externals/boost/AIX-5.3/boost/bin.v2/libs/regex/build/vacpp/release/address-model-32/link-static/optimization-space/threading-multi/icu.o"" ""libs/regex/src/../src/icu.cpp"" ...failed vacpp.compile.c++ /home/mhufer/xgen-externals/boost/AIX-5.3/boost/bin.v2/libs/regex/build/vacpp/release/address-model-32/link-static/optimization-space/threading-multi/icu.o... }}} It seems that for this compiler either BOOST_NO_WREGEX or U_WCHAR_IS_UTF16 must be defined in the regex/config.hpp. I opted for the latter and added the following lines in boost/config.hpp: {{{ #ifdef __IBMCPP__ # define U_WCHAR_IS_UTF16 #endif }}} Note: I only use the V9 compiler and don't know whether defining this is necessary with older versions of the Visual Age compiler. So a ""#if (__IBMCPP__ >= 900 )"" might actually be better... " Bugs closed Boost 1.37.0 regex Boost 1.36.0 Problem fixed AIX vacpp regex michael.hufer@…