error: unicode/uversion.h: No such file building Boost 1.44.0

Hi, I am trying to cross-compile Boost 1.44.0 for a powerpc on my Fedora 13 x86 workstation. I have written a bash build script do this build. It has worked fine for previous version of boost. i.e. 1.37.0, 1.40.0, 1.43.0 But when I tried to build 1.44.0 I get the following errors. libs/regex/build/has_icu_test.cpp:12:30: error: unicode/uversion.h: No such file or directory libs/regex/build/has_icu_test.cpp:13:28: error: unicode/utypes.h: No such file or directory libs/regex/build/has_icu_test.cpp:14:27: error: unicode/uchar.h: No such file or directory libs/regex/build/has_icu_test.cpp:15:26: error: unicode/coll.h: No such file or directory libs/regex/build/has_icu_test.cpp:26:2: warning: no newline at end of file libs/regex/build/has_icu_test.cpp: In function 'int main()': libs/regex/build/has_icu_test.cpp:23: error: 'UErrorCode' was not declared in this scope libs/regex/build/has_icu_test.cpp:23: error: expected `;' before 'err' libs/regex/build/has_icu_test.cpp:24: error: 'UChar32' was not declared in this scope libs/regex/build/has_icu_test.cpp:24: error: expected `;' before 'c' libs/regex/build/has_icu_test.cpp:25: error: 'err' was not declared in this scope ...failed updating 1 target... Performing configuration checks Here is my build script: #!/bin/sh ## # Builds boost. ## BOOST_VER=boost_1_44_0 BJAM_VER=boost-jam-3.1.18 BUILD_BJAM_LOG=build-ppc_6xx_BJAM.log BOOST_DEBUG_BUILD=ppc_6xx_build_debug BOOST_DEBUG_INSTALL=ppc_6xx_install_debug BUILD_DEBUG_LOG=build-ppc_6xx_debug.log BOOST_REL_BUILD=ppc_6xx_build_rel BOOST_REL_INSTALL=ppc_6xx_install_rel BUILD_REL_LOG=build-ppc_6xx_rel.log LIB_DEBUG=lib/ppc_6xx/${BOOST_VER}/debug/ LIB_REL=lib/ppc_6xx/${BOOST_VER}/release/ echo "Extracting Boost version " ${BOOST_VER} " ..." tar -jxf ${BOOST_VER}.tar.bz2 echo "Copying patch file ./basic_binary_iarchive.ipp to ./"${BOOST_VER}"/boost/archive/impl" cp ./basic_binary_iarchive.ipp ./${BOOST_VER}/boost/archive/impl echo "Extracting Boost Jam version " ${BJAM_VER} " ..." tar -zxf ${BJAM_VER}.tgz echo "Building Boost Jam version " ${BJAM_VER} " ..." cd ${BJAM_VER} ./build.sh >../${BUILD_BJAM_LOG} 2>&1 cd .. echo "Copying Boost Jam to "./${BOOST_VER}" ..." cp ./${BJAM_VER}/bin.linuxx86/bjam ./${BOOST_VER} cd ${BOOST_VER} echo "using gcc : 4.2.2 : /opt/eldk-4.2/usr/bin/ppc_6xx-g++ ; " > tools/build/v2/user-config.jam echo "Building debug version of "${BOOST_VER}" into ./"${BOOST_DEBUG_INSTALL}" ..." ./bjam -q -d0 debug \ --toolset=gcc \ threading=multi \ address-model=32 \ --with-date_time \ --with-filesystem \ --with-graph \ --with-program_options \ --with-regex \ --with-serialization \ --with-system \ --with-thread \ --build-dir=../${BOOST_DEBUG_BUILD} \ --prefix=../${BOOST_DEBUG_INSTALL} \ install >../${BUILD_DEBUG_LOG} 2>&1 echo "Building release version of "${BOOST_VER}" into ./"${BOOST_REL_INSTALL}" ..." ./bjam -q -d0 release \ --toolset=gcc \ link=static \ threading=multi \ address-model=32 \ --with-date_time \ --with-filesystem \ --with-graph \ --with-program_options \ --with-regex \ --with-serialization \ --with-system \ --with-thread \ --build-dir=../${BOOST_REL_BUILD} \ --prefix=../${BOOST_REL_INSTALL} \ install >../${BUILD_REL_LOG} 2>&1 #--layout=system \ #'-sBUILD=release static multi/single' \ #link=static \ #--with-thread --with-signals --with-filesystem \ cd .. I have seen that other people have had similar problems. See here. http://lists.boost.org/boost-users/2010/09/62265.php But I have not been able to fix it. Any ideas. Thanks Rob

Does the regex lib go on to build OK? Those compiler errors are from a configuration check that looks to see if ICU is present or not - you shouldn't actually see those messages at all (they should be suppressed and written to file rather like autoconf does). Is there a bjam command line that reliably reproduces this? Thanks, John.

On Sat, Sep 25, 2010 at 5:01 AM, Vladimir Prus
Hi Volodya, Do you think you will have a fix for this in the next day or so? Is there a work around I can use until it is fixed? Thanks, Rob

On Sat, Sep 25, 2010 at 4:45 AM, John Maddock
No, the regex lib or any other lib is built OK. yes, the bjam command line in my build script. ./bjam -q -d0 debug \ --toolset=gcc \ threading=multi \ address-model=32 \ --with-date_time \ --with-filesystem \ --with-graph \ --with-program_options \ --with-regex \ --with-serialization \ --with-system \ --with-thread \ --build-dir=../${BOOST_DEBUG_ BUILD} \ --prefix=../${BOOST_DEBUG_INSTALL} \ install >../${BUILD_DEBUG_LOG} 2>&1 Thanks, Rob

On Sat, Sep 25, 2010 at 4:45 AM, John Maddock
John, No, the regex lib does not go on to build. The compiler error: libs/regex/build/has_icu_test.cpp:12:30: error: unicode/uversion.h: No such file or directory is from trying to compile has_icu_test.cpp with my cross-compiler tools which do not have the icu libraries and header files installed. So it can not find unicode/uversion.h. Why is it trying to compile has_icu_test.cpp when has_icu builds = no, as shown below in my output? libs/regex/build/has_icu_test.cpp:12:30: error: unicode/uversion.h: No such file or directory libs/regex/build/has_icu_test.cpp:13:28: error: unicode/utypes.h: No such file or directory libs/regex/build/has_icu_test.cpp:14:27: error: unicode/uchar.h: No such file or directory libs/regex/build/has_icu_test.cpp:15:26: error: unicode/coll.h: No such file or directory libs/regex/build/has_icu_test.cpp:26:2: warning: no newline at end of file libs/regex/build/has_icu_test.cpp: In function 'int main()': libs/regex/build/has_icu_test.cpp:23: error: 'UErrorCode' was not declared in this scope libs/regex/build/has_icu_test.cpp:23: error: expected `;' before 'err' libs/regex/build/has_icu_test.cpp:24: error: 'UChar32' was not declared in this scope libs/regex/build/has_icu_test.cpp:24: error: expected `;' before 'c' libs/regex/build/has_icu_test.cpp:25: error: 'err' was not declared in this scope ...failed updating 1 target... Performing configuration checks - has_icu builds : no Component configuration: - date_time : building - filesystem : building - graph : building - graph_parallel : not building - iostreams : not building - math : not building - mpi : not building - program_options : building - python : not building - random : not building - regex : building - serialization : building - signals : not building - system : building - test : not building - thread : building - wave : not building Thanks, Rob

Robert McCullough wrote:
I think you misread this output. The error message is from the configuration check -- exactly the check that causes "has_icu builds" to output "no". Besides slight inconvenience, this should not cause any problems, and regex should be built, albeit without ICU support. Do you actually observe that regex is not built? If so, there must be some further error messages. Would you please put a complete build log somewhere? - Volodya

No, the regex lib does not go on to build.
Are you sure? What are the error messages?
Compiling has_icu_test.cpp is the test that's carried out when performing the configuration checks - those errors should be directed to file and not console - that's the bug that's being investigated. John.
participants (4)
-
John Maddock
-
Robert McCullough
-
Steven Watanabe
-
Vladimir Prus