25 Jul
2010
25 Jul
'10
5:01 p.m.
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