[Boost-users] error: unicode/uversion.h: No such file building Boost 1.44.0

2,578 views
Skip to first unread message

Robert McCullough

unread,
Sep 24, 2010, 3:14:53 PM9/24/10
to boost...@lists.boost.org
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

John Maddock

unread,
Sep 25, 2010, 4:45:21 AM9/25/10
to boost...@lists.boost.org
> 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.

_______________________________________________
Boost-users mailing list
Boost...@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users

Vladimir Prus

unread,
Sep 25, 2010, 5:01:03 AM9/25/10
to boost...@lists.boost.org
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

Robert McCullough

unread,
Sep 26, 2010, 3:53:59 PM9/26/10
to boost...@lists.boost.org
On Sat, Sep 25, 2010 at 4:45 AM, John Maddock <boost...@virgin.net> 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.

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

Robert McCullough

unread,
Sep 26, 2010, 4:01:34 PM9/26/10
to boost...@lists.boost.org


On Sat, Sep 25, 2010 at 5:01 AM, Vladimir Prus <vlad...@codesourcery.com> 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

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

Robert McCullough

unread,
Sep 27, 2010, 9:22:23 AM9/27/10
to boost...@lists.boost.org
On Sat, Sep 25, 2010 at 5:01 AM, Vladimir Prus <vlad...@codesourcery.com> 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?

Thanks,
Rob


Vladimir Prus

unread,
Sep 27, 2010, 11:29:58 AM9/27/10
to boost...@lists.boost.org
Robert McCullough wrote:

The workaround is "mkdir <boost-root>/bin.v2"

HTH,

Robert McCullough

unread,
Sep 27, 2010, 4:43:25 PM9/27/10
to boost...@lists.boost.org
On Sat, Sep 25, 2010 at 4:45 AM, John Maddock <boost...@virgin.net> 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.

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

Vladimir Prus

unread,
Sep 28, 2010, 1:50:59 AM9/28/10
to boost...@lists.boost.org
Robert McCullough wrote:

> On Sat, Sep 25, 2010 at 4:45 AM, John Maddock <boost...@virgin.net>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>

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

John Maddock

unread,
Sep 28, 2010, 4:18:59 AM9/28/10
to boost...@lists.boost.org
> 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.

Robert McCullough

unread,
Sep 28, 2010, 10:59:42 AM9/28/10
to boost...@lists.boost.org


On Tue, Sep 28, 2010 at 4:18 AM, John Maddock <boost...@virgin.net> wrote:
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

Robert McCullough

unread,
Sep 28, 2010, 10:57:20 AM9/28/10
to boost...@lists.boost.org
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

Steven Watanabe

unread,
Sep 28, 2010, 6:50:07 PM9/28/10
to boost...@lists.boost.org
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

Reply all
Reply to author
Forward
0 new messages