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

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.
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.

John Maddock wrote:
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.
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?
I think it's the same 'config checks on fresh build go to stdout' bug that I've mentioned before. I hope to fix it soonish as part of Boost.Locale configuration work. - Volodya

On Sat, Sep 25, 2010 at 5:01 AM, Vladimir Prus
John Maddock wrote:
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.
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?
I think it's the same 'config checks on fresh build go to stdout' bug that I've mentioned before. I hope to fix it soonish as part of Boost.Locale configuration work.
- Volodya
OK, I can not find the bug 'config checks on fresh build go to stdout'. Can you point me to it so I can keep track of when it is fixed.
Thanks, Rob

On Sat, Sep 25, 2010 at 5:01 AM, Vladimir Prus
John Maddock wrote:
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.
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?
I think it's the same 'config checks on fresh build go to stdout' bug that I've mentioned before. I hope to fix it soonish as part of Boost.Locale configuration work.
- Volodya
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

Robert McCullough wrote:
On Sat, Sep 25, 2010 at 5:01 AM, Vladimir Prus
wrote: John Maddock wrote:
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.
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?
I think it's the same 'config checks on fresh build go to stdout' bug that I've mentioned before. I hope to fix it soonish as part of Boost.Locale configuration work.
- Volodya
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?
The workaround is "mkdir <boost-root>/bin.v2" HTH, Volodya

On Sat, Sep 25, 2010 at 4:45 AM, John Maddock
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.
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.
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
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.
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. ost-users http://lists.boost.org/mailman/listinfo.cgi/boost-users
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:
On Sat, Sep 25, 2010 at 4:45 AM, John Maddock
wrote: 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.
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. ost-users http://lists.boost.org/mailman/listinfo.cgi/boost-users
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
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

On Tue, Sep 28, 2010 at 1:50 AM, Vladimir Prus
Robert McCullough wrote:
On Sat, Sep 25, 2010 at 4:45 AM, John Maddock
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.
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. ost-users http://lists.boost.org/mailman/listinfo.cgi/boost-users
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
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
I found my problem. I was building boost with the bjam -q option. When I build using the bjam -q option the build stops on the above error and does not build the libraries. I removed the -q and it ignored the above error, as you explained, and everything built fine.
Thanks, Rob

No, the regex lib does not go on to build.
Are you sure? What are the error messages?
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?
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.

On Tue, Sep 28, 2010 at 4:18 AM, John Maddock
No, the regex lib does not go on to build.
Are you sure? What are the error messages?
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?
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.
I found my problem. I was building boost with the bjam -q option. When I build using the bjam -q option the build stops on the above error and does not build the libraries. I removed the -q and it ignored the above error and everything built fine.
Thanks, Rob

AMDG On 9/28/2010 7:59 AM, Robert McCullough wrote:
I found my problem. I was building boost with the bjam -q option. When I build using the bjam -q option the build stops on the above error and does not build the libraries. I removed the -q and it ignored the above error and everything built fine.
For the record, this has been fixed in the trunk. In Christ, Steven Watanabe
participants (4)
-
John Maddock
-
Robert McCullough
-
Steven Watanabe
-
Vladimir Prus