[Boost-bugs] [Boost C++ Libraries] #2244: build error in regex icu on AIX 5.3 with IBM Visual Age 9

Subject: [Boost-bugs] [Boost C++ Libraries] #2244: build error in regex icu on AIX 5.3 with IBM Visual Age 9
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2008-08-22 10:20:14


#2244: build error in regex icu on AIX 5.3 with IBM Visual Age 9
-----------------------------------------+----------------------------------
 Reporter: michael.hufer_at_[hidden] | Owner: johnmaddock
     Type: Bugs | Status: new
Milestone: Boost 1.37.0 | Component: regex
  Version: Boost 1.36.0 | Severity: Problem
 Keywords: AIX vacpp regex |
-----------------------------------------+----------------------------------
 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 wchar_t
 *,std::allocator<boost::sub_match<const wchar_t *> > > &, 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 wchar_t
 *,std::allocator<boost::sub_match<const wchar_t *> > > &, 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 <std::size_t N> 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<int,std::allocator<int> > &,
 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...

-- 
Ticket URL: <http://svn.boost.org/trac/boost/ticket/2244>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:49:58 UTC