Boost logo

Boost Users :

Subject: [Boost-users] Boost link error with mingw
From: Eugen Dedu (Eugen.Dedu_at_[hidden])
Date: 2010-07-25 13:01:24


Hi everybody,

We compile ekiga for windows and boost signals is one of its
dependencies, so we need to compile it for windows. I use gcc-mingw32
from debian unstable (gcc configured for mingw, version 4.4.4-0.1) and I
do like this:
- download boost 1.43.0
- echo "using gcc : : i586-mingw32msvc-gcc : ;"
>$(BOOST_DIR)/user-config.jam
- cd $(BOOST_DIR); ./bjam $(confboost)

with:

confboost := --user-config=user-config.jam --layout=system
variant=release threading=multi link=shared runtime-link=shared
target-os=windows threadapi=win32 --without-math --without-python
--without-mpi --without-serialization --without-test --without-thread
--without-wave --without-date_time --without-system --without-filesystem
--without-graph --without-graph_parallel --without-iostreams
--without-program_options --without-regex --without-random -q stage

1. I have a link error:

Component configuration:

     - date_time : not building
     - filesystem : not building
     - graph : not building
     - graph_parallel : not building
     - iostreams : not building
     - math : not building
     - mpi : not building
     - program_options : not building
     - python : not building
     - random : not building
     - regex : not building
     - serialization : not building
     - signals : building
     - system : not building
     - test : not building
     - thread : not building
     - wave : not building

...patience...
...found 601 targets...
...updating 4 targets...
gcc.link.dll
bin.v2/libs/signals/build/gcc-mingw-4.4.4/release/target-os-windows/threadapi-win32/threading-multi/libboost_signals.dll.a
Creating library file:
bin.v2/libs/signals/build/gcc-mingw-4.4.4/release/target-os-windows/threadapi-win32/threading-multi/libboost_signals.dll.abin.v2/libs/signals/build/gcc-mingw-4.4.4/release/target-os-windows/threadapi-win32/threading-multi/trackable.o:trackable.cpp:(.text+0xc):
undefined reference to `___gxx_personality_sj0'
bin.v2/libs/signals/build/gcc-mingw-4.4.4/release/target-os-windows/threadapi-win32/threading-multi/trackable.o:trackable.cpp:(.text+0x6d):
undefined reference to `operator delete(void*)'
bin.v2/libs/signals/build/gcc-mingw-4.4.4/release/target-os-windows/threadapi-win32/threading-multi/trackable.o:trackable.cpp:(.text+0xac):
undefined reference to `___gxx_personality_sj0'
bin.v2/libs/signals/build/gcc-mingw-4.4.4/release/target-os-windows/threadapi-win32/threading-multi/trackable.o:trackable.cpp:(.text+0x10d):
undefined reference to `operator delete(void*)'
[...]

I have discovered that the link can proceed if I do:
- echo "using gcc : : i586-mingw32msvc-g++ : ;"
>$(BOOST_DIR)/user-config.jam
- cd $(BOOST_DIR); ./bjam $(confboost)

i.e. compile again after changing gcc to g++, but of course this is a
workaround. How to solve it properly?

(here is the output after changing to g++:
[..]
     - thread : not building
     - wave : not building

...patience...
...found 601 targets...
...updating 4 targets...
gcc.link.dll
bin.v2/libs/signals/build/gcc-mingw-4.4.4/release/target-os-windows/threadapi-win32/threading-multi/libboost_signals.dll.a
Creating library file:
bin.v2/libs/signals/build/gcc-mingw-4.4.4/release/target-os-windows/threadapi-win32/threading-multi/libboost_signals.dll.a
common.copy stage/lib/libboost_signals.dll.a
common.copy stage/lib/libboost_signals.dll
...updated 4 targets...
)

Second, I execute afterwards:
- cd $(BOOST_DIR); ./bjam $(confboost) install
2. Is $(confboost) still needed or not for install?
3. This command does nothing for about 1 minute 30 secs (I thought at
the beginning that it simply does not work, fortunately I let it execute
more than 10 seconds to see what happens), and only afterwards copy the
files. Executing through strace shows many lines like this:
brk(0x6116000) = 0x6116000
and these lines take almost all the installation time.

Best regards,

-- 
Eugen Dedu

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net