
Hi, I feel awkward to post almost the same question again. But I really have a problem when I build 32 bits boost.regex with icu support on a 64 bits Linux machine. If I build 64 bits regex with icu support, they are fine. If I build 32 bits regex without icu support, they are fine. When I tried to build 32 bits regex with icu support, I used command for ICU building ./runConfigureICU Linux --disable-64bit-libs ./configure --prefix=/home/qhwang/mylibs_32/icu --disable-64bit-libs I checked icu libraries they are not dependent on 64bits libraries. So I'm confident they are 32bits. But when I use the command to build 32 bits regex ./bjam --prefix=/home/qhwang/mylibs/boost/ --with-regex --build-dir=/tmp/boost_build/ --build-type=complete --address-mode=32 --architecture=x86 -sHAVE_ICU=1 -sICU_PATH=/home/qhwang/mylibs/icu/ install Bjam showed ...failed updating 4 targets... ...skipped 12 targets... ...updated 7477 targets... there were only static libraries built. When I linked them to my program which were also compiled in 32 bits, the linker complained the libraries were incompatable. Could someone give me some help again? Thanks in advance. Qihong

AMDG Qihong Wang wrote:
I feel awkward to post almost the same question again. But I really have a problem when I build 32 bits boost.regex with icu support on a 64 bits Linux machine.
If I build 64 bits regex with icu support, they are fine. If I build 32 bits regex without icu support, they are fine. When I tried to build 32 bits regex with icu support, I used command for ICU building
./runConfigureICU Linux --disable-64bit-libs ./configure --prefix=/home/qhwang/mylibs_32/icu --disable-64bit-libs I checked icu libraries they are not dependent on 64bits libraries. So I'm confident they are 32bits. But when I use the command to build 32 bits regex ./bjam --prefix=/home/qhwang/mylibs/boost/ --with-regex --build-dir=/tmp/boost_build/ --build-type=complete --address-mode=32 --architecture=x86 -sHAVE_ICU=1 -sICU_PATH=/home/qhwang/mylibs/icu/ install
remove the "--" from address-model and architecture. In Christ, Steven Watanabe

Before post this problem I tried without -- for address-mode and architecture, bjam won't work for me. It printed out .... warning: For more configuration options, please consult warning: http://boost.org/boost-build2/doc/html/bbv2/advanced/configuration.html /mnt/home/qhwang/teststh/testboost/boost_1_38_0/tools/build/v2/build/feature.jam:320: in validate-feature from module feature error: unknown feature "<address-mode>" /mnt/home/qhwang/teststh/testboost/boost_1_38_0/tools/build/v2/build/feature.jam:354: in expand-subfeatures-aux from module feature /mnt/home/qhwang/teststh/testboost/boost_1_38_0/tools/build/v2/build/feature.jam:419: in feature.expand-subfeatures from module feature ...... I don't remember how did I successfully compile regex 32 without icu before. Any idea? Thanks, Qihong On Fri, Apr 10, 2009 at 6:51 PM, Steven Watanabe <watanabesj@gmail.com>wrote:
AMDG
Qihong Wang wrote:
I feel awkward to post almost the same question again. But I really have a problem when I build 32 bits boost.regex with icu support on a 64 bits Linux machine.
If I build 64 bits regex with icu support, they are fine. If I build 32 bits regex without icu support, they are fine. When I tried to build 32 bits regex with icu support, I used command for ICU building
./runConfigureICU Linux --disable-64bit-libs ./configure --prefix=/home/qhwang/mylibs_32/icu --disable-64bit-libs I checked icu libraries they are not dependent on 64bits libraries. So I'm confident they are 32bits. But when I use the command to build 32 bits regex ./bjam --prefix=/home/qhwang/mylibs/boost/ --with-regex --build-dir=/tmp/boost_build/ --build-type=complete --address-mode=32 --architecture=x86 -sHAVE_ICU=1 -sICU_PATH=/home/qhwang/mylibs/icu/ install
remove the "--" from address-model and architecture.
In Christ, Steven Watanabe
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Oh yeah, I did it. What a funny and unforgettable mistake I had. Thanks for the help. On Sat, Apr 11, 2009 at 1:20 AM, Steven Watanabe <watanabesj@gmail.com>wrote:
AMDG
Qihong Wang wrote:
Before post this problem I tried without -- for address-mode and architecture, bjam won't work for me.
address-model not address-mode.
In Christ, Steven Watanabe
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Qihong Wang wrote:
Hi,
I feel awkward to post almost the same question again. But I really have a problem when I build 32 bits boost.regex with icu support on a 64 bits Linux machine.
If I build 64 bits regex with icu support, they are fine. If I build 32 bits regex without icu support, they are fine. When I tried to build 32 bits regex with icu support, I used command for ICU building
I addition to what Steven said:
./runConfigureICU Linux --disable-64bit-libs ./configure --prefix=/home/qhwang/mylibs_32/icu --disable-64bit-libs
There's no such parameter to Boost's configure.
I checked icu libraries they are not dependent on 64bits libraries. So I'm confident they are 32bits. But when I use the command to build 32 bits regex ./bjam --prefix=/home/qhwang/mylibs/boost/ --with-regex --build-dir=/tmp/boost_build/ --build-type=complete --address-mode=32 --architecture=x86 -sHAVE_ICU=1 -sICU_PATH=/home/qhwang/mylibs/icu/ install
Bjam showed ...failed updating 4 targets... ...skipped 12 targets... ...updated 7477 targets... there were only static libraries built. When I linked them to my program which were also compiled in 32 bits, the linker complained the libraries were incompatable.
Do you mean that linker emitted a message that say, literally: "the libraries are incompatible" ? I somehow doubt this is the case. - Volodya

The actual message is /usr/bin/ld: skipping incompatible /home/qhwang/mylibs_32/boost/lib/libboost_regex-gcc41-mt.a when searching for -lboost_regex-gcc41-mt /usr/bin/ld: cannot find -lboost_regex-gcc41-mt The linker skipped incompatibale 64bits regex which I specified in Makefile and tried to find the compatible 32 bits regex in system lib directory. But I didn't install regex there. On Sat, Apr 11, 2009 at 2:00 AM, Vladimir Prus <vladimir@codesourcery.com>wrote:
Qihong Wang wrote:
Hi,
I feel awkward to post almost the same question again. But I really have a problem when I build 32 bits boost.regex with icu support on a 64 bits Linux machine.
If I build 64 bits regex with icu support, they are fine. If I build 32 bits regex without icu support, they are fine. When I tried to build 32 bits regex with icu support, I used command for ICU building
I addition to what Steven said:
./runConfigureICU Linux --disable-64bit-libs ./configure --prefix=/home/qhwang/mylibs_32/icu --disable-64bit-libs
There's no such parameter to Boost's configure.
I checked icu libraries they are not dependent on 64bits libraries. So I'm confident they are 32bits. But when I use the command to build 32 bits regex ./bjam --prefix=/home/qhwang/mylibs/boost/ --with-regex --build-dir=/tmp/boost_build/ --build-type=complete --address-mode=32 --architecture=x86 -sHAVE_ICU=1 -sICU_PATH=/home/qhwang/mylibs/icu/ install
Bjam showed ...failed updating 4 targets... ...skipped 12 targets... ...updated 7477 targets... there were only static libraries built. When I linked them to my program which were also compiled in 32 bits, the linker complained the libraries were incompatable.
Do you mean that linker emitted a message that say, literally:
"the libraries are incompatible"
? I somehow doubt this is the case.
- Volodya
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
participants (3)
-
Qihong Wang
-
Steven Watanabe
-
Vladimir Prus