gnu c++ linker errors on double processor machine

Gerrit P. Haase gerrit@familiehaase.de
Thu May 19 22:51:00 GMT 2005


Bernd Prager wrote:

> Hi everybody,
> 
> I'm experencing an odd error on a double processor machine.
> The same source code compiles well on all boxes I used but on a single 
> machine it fails.
> It's the only 2-processor box I use. That's why I assume the problem is 
> some weird concurrency issue but I'm not sure.
> 
> When I try to compile it a couple of times in a row sometimes 
> compilation works, sometimes it fails and it's really abitrary.
> Here's the error message:
> 
>  > make all
> Building target: Tst.exe
> g++ -L/usr/local/lib -L/usr/local/lib/mysql -o Tst.exe     Cfg.o Tst.o  
> -lmysqlpp -lmysqlclient -lz
> /usr/local/lib/libstdc++.a(tree.o)(.text$_ZSt20_Rb_tree_rotate_leftPSt18_Rb_tree_node_baseRS0_+0x0): 
> In function `_ZSt20_Rb_tree_black_countPKSt18_Rb_tree_node_baseS1_':
> /home/BerndPrager/gcc-3.4.3/i686-pc-cygwin/libstdc++-v3/src/../../.././libstdc++-v3/src/tree.cc:416: 
> multiple definition of 
> `std::_Rb_tree_rotate_left(std::_Rb_tree_node_base*, 
> std::_Rb_tree_node_base*&)'
> Cfg.o(.text$_ZSt20_Rb_tree_rotate_leftPSt18_Rb_tree_node_baseRS0_[std::_Rb_tree_rotate_left(std::_Rb_tree_node_base*, 
> std::_Rb_tree_node_base*&)]+0x0):/usr/include/c++/3.3.3/bits/stl_construct.h: 
> first defined here
> /usr/local/lib/libstdc++.a(tree.o)(.text$_ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_+0x0): 
> In function `_ZSt20_Rb_tree_black_countPKSt18_Rb_tree_node_baseS1_':
> /home/BerndPrager/gcc-3.4.3/i686-pc-cygwin/libstdc++-v3/src/../../.././libstdc++-v3/src/tree.cc:416: 
> multiple definition of 
> `std::_Rb_tree_rotate_right(std::_Rb_tree_node_base*, 
> std::_Rb_tree_node_base*&)'
> Cfg.o(.text$_ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_[std::_Rb_tree_rotate_right(std::_Rb_tree_node_base*, 
> std::_Rb_tree_node_base*&)]+0x0):/usr/include/c++/3.3.3/bits/stl_construct.h: 
> first defined here
> Cfg.o(.text$_ZNSt14__simple_allocISt13_Rb_tree_nodeISt4pairIKSsSsEESt24__default_alloc_templateILb1ELi0EEE8allocateEj[std::__simple_alloc<std::_Rb_tree_node<std::pair<std::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > const, 
> std::basic_string<char, std::char_traits<char>, std::allocator<char> > > 
>  >, std::__default_alloc_template<true, 0> >::allocate(unsigned 
> int)]+0x27): In function `_ZNKSt10_Select1stISt4pairIKSsSsEEclERKS2_':
> /usr/include/c++/3.3.3/bits/stl_construct.h: undefined reference to 
> `std::__default_alloc_template<true, 0>::allocate(unsigned int)'
> Cfg.o(.text$_ZNSt14__simple_allocISt13_Rb_tree_nodeISt4pairIKSsSsEESt24__default_alloc_templateILb1ELi0EEE10deallocateEPS4_j[std::__simple_alloc<std::_Rb_tree_node<std::pair<std::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > const, 
> std::basic_string<char, std::char_traits<char>, std::allocator<char> > > 
>  >, std::__default_alloc_template<true, 0> 
>  >::deallocate(std::_Rb_tree_node<std::pair<std::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > const, 
> std::basic_string<char, std::char_traits<char>, std::allocator<char> > > 
>  >*, unsigned int)]+0x23):/usr/include/c++/3.3.3/bits/stl_construct.h: 
> undefined reference to `std::__default_alloc_template<true, 
> 0>::deallocate(void*, unsigned int)'
> collect2: ld returned 1 exit status
> make: *** [Tst.exe] Error 1
> 
> Is that a known issue? Some flags or cygwin variable I can set to 
> prevent that?
> It's a WinXP box, gcc 3.4.3, CYGWIN_NT-5.1 1.5.16(0.128/4/2).
> 
> Thanks in advane for any suggestions or help.

Are there other differences between this and the other machines?
E.g. you use distcc here but not elsewhere, you use make -j3 and not 
elsewhere, you use ccache here but not elesewhere, ...?


Gerrit
-- 
=^..^=

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list