[Cygwin] linker errors due to multiple definitions of typeinfo of many library 
symbols
--------------------------------------------------------------------------------------

                 Key: STDCXX-422
                 URL: https://issues.apache.org/jira/browse/STDCXX-422
             Project: C++ Standard Library
          Issue Type: Bug
          Components: Build
    Affects Versions: 4.2
         Environment: shared optimized (12d) build with gcc-3.4.4 on 
CYGWIN_NT-5.1 mug 1.5.24(0.156/4/2) 2007-01-31 10:57 i686 Cygwin
            Reporter: Martin Sebor
            Priority: Blocker


Most programs are failing to link with gcc 3.4.4 on Cygwin with errors similar 
to the following:

gcc 18.exception.o -o 18.exception -L$(BUILDDIR)/rwtest -lrwtest  
-L$(BUILDDIR)/lib  -lstd -lsupc++ -lcatgets -liconv -lm 
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12adc): multiple 
definition of `typeinfo name for __rw::__rw_badbit_set'
18.exception.o:18.exception.cpp:(.rdata$_ZTSN4__rw15__rw_badbit_setE[typeinfo 
name for __rw::__rw_badbit_set]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12648): multiple 
definition of `typeinfo for std::out_of_range'
18.exception.o:18.exception.cpp:(.rdata$_ZTISt12out_of_range[typeinfo for 
std::out_of_range]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12b54): multiple 
definition of `typeinfo name for std::bad_typeid'
18.exception.o:18.exception.cpp:(.rdata$_ZTSSt10bad_typeid[typeinfo name for 
std::bad_typeid]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12c54): multiple 
definition of `typeinfo name for std::length_error'
18.exception.o:18.exception.cpp:(.rdata$_ZTSSt12length_error[typeinfo name for 
std::length_error]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12c68): multiple 
definition of `typeinfo name for std::out_of_range'
18.exception.o:18.exception.cpp:(.rdata$_ZTSSt12out_of_range[typeinfo name for 
std::out_of_range]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x13170): multiple 
definition of `typeinfo name for std::underflow_error'
18.exception.o:18.exception.cpp:(.rdata$_ZTSSt15underflow_error[typeinfo name 
for std::underflow_error]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12bf4): multiple 
definition of `typeinfo name for std::range_error'
18.exception.o:18.exception.cpp:(.rdata$_ZTSSt11range_error[typeinfo name for 
std::range_error]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x128a4): multiple 
definition of `typeinfo for std::bad_cast'
18.exception.o:18.exception.cpp:(.rdata$_ZTISt8bad_cast[typeinfo for 
std::bad_cast]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x1250c): multiple 
definition of `typeinfo for __rw::__rw_eofbit_set'
18.exception.o:18.exception.cpp:(.rdata$_ZTIN4__rw15__rw_eofbit_setE[typeinfo 
for __rw::__rw_eofbit_set]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12604): multiple 
definition of `typeinfo for std::range_error'
18.exception.o:18.exception.cpp:(.rdata$_ZTISt11range_error[typeinfo for 
std::range_error]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12be4): multiple 
definition of `typeinfo name for std::logic_error'
18.exception.o:18.exception.cpp:(.rdata$_ZTSSt11logic_error[typeinfo name for 
std::logic_error]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12e7c): multiple 
definition of `typeinfo name for std::overflow_error'
18.exception.o:18.exception.cpp:(.rdata$_ZTSSt14overflow_error[typeinfo name 
for std::overflow_error]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12db8): multiple 
definition of `typeinfo name for std::runtime_error'
18.exception.o:18.exception.cpp:(.rdata$_ZTSSt13runtime_error[typeinfo name for 
std::runtime_error]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12aac): multiple 
definition of `typeinfo name for __rw::__rw_failure'
18.exception.o:18.exception.cpp:(.rdata$_ZTSN4__rw12__rw_failureE[typeinfo name 
for __rw::__rw_failure]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x126f8): multiple 
definition of `typeinfo for std::overflow_error'
18.exception.o:18.exception.cpp:(.rdata$_ZTISt14overflow_error[typeinfo for 
std::overflow_error]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x134e4): multiple 
definition of `typeinfo name for std::bad_alloc'
18.exception.o:18.exception.cpp:(.rdata$_ZTSSt9bad_alloc[typeinfo name for 
std::bad_alloc]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12b14): multiple 
definition of `typeinfo name for __rw::__rw_failbit_set'
18.exception.o:18.exception.cpp:(.rdata$_ZTSN4__rw16__rw_failbit_setE[typeinfo 
name for __rw::__rw_failbit_set]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x124e8): multiple 
definition of `typeinfo for __rw::__rw_failure'
18.exception.o:18.exception.cpp:(.rdata$_ZTIN4__rw12__rw_failureE[typeinfo for 
__rw::__rw_failure]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12794): multiple 
definition of `typeinfo for std::underflow_error'
18.exception.o:18.exception.cpp:(.rdata$_ZTISt15underflow_error[typeinfo for 
std::underflow_error]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12af8): multiple 
definition of `typeinfo name for __rw::__rw_eofbit_set'
18.exception.o:18.exception.cpp:(.rdata$_ZTSN4__rw15__rw_eofbit_setE[typeinfo 
name for __rw::__rw_eofbit_set]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12c40): multiple 
definition of `typeinfo name for std::domain_error'
18.exception.o:18.exception.cpp:(.rdata$_ZTSSt12domain_error[typeinfo name for 
std::domain_error]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12630): multiple 
definition of `typeinfo for std::domain_error'
18.exception.o:18.exception.cpp:(.rdata$_ZTISt12domain_error[typeinfo for 
std::domain_error]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x124f4): multiple 
definition of `typeinfo for __rw::__rw_exception'
18.exception.o:18.exception.cpp:(.rdata$_ZTIN4__rw14__rw_exceptionE[typeinfo 
for __rw::__rw_exception]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12c90): multiple 
definition of `typeinfo name for std::bad_exception'
18.exception.o:18.exception.cpp:(.rdata$_ZTSSt13bad_exception[typeinfo name for 
std::bad_exception]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x1338c): multiple 
definition of `typeinfo name for std::bad_cast'
18.exception.o:18.exception.cpp:(.rdata$_ZTSSt8bad_cast[typeinfo name for 
std::bad_cast]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12518): multiple 
definition of `typeinfo for __rw::__rw_failbit_set'
18.exception.o:18.exception.cpp:(.rdata$_ZTIN4__rw16__rw_failbit_setE[typeinfo 
for __rw::__rw_failbit_set]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12660): multiple 
definition of `typeinfo for std::bad_exception'
18.exception.o:18.exception.cpp:(.rdata$_ZTISt13bad_exception[typeinfo for 
std::bad_exception]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x1263c): multiple 
definition of `typeinfo for std::length_error'
18.exception.o:18.exception.cpp:(.rdata$_ZTISt12length_error[typeinfo for 
std::length_error]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x13574): multiple 
definition of `typeinfo name for std::exception'
18.exception.o:18.exception.cpp:(.rdata$_ZTSSt9exception[typeinfo name for 
std::exception]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x125f8): multiple 
definition of `typeinfo for std::logic_error'
18.exception.o:18.exception.cpp:(.rdata$_ZTISt11logic_error[typeinfo for 
std::logic_error]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x1296c): multiple 
definition of `typeinfo for std::bad_alloc'
18.exception.o:18.exception.cpp:(.rdata$_ZTISt9bad_alloc[typeinfo for 
std::bad_alloc]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x127a0): multiple 
definition of `typeinfo for std::invalid_argument'
18.exception.o:18.exception.cpp:(.rdata$_ZTISt16invalid_argument[typeinfo for 
std::invalid_argument]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12500): multiple 
definition of `typeinfo for __rw::__rw_badbit_set'
18.exception.o:18.exception.cpp:(.rdata$_ZTIN4__rw15__rw_badbit_setE[typeinfo 
for __rw::__rw_badbit_set]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12ac4): multiple 
definition of `typeinfo name for __rw::__rw_exception'
18.exception.o:18.exception.cpp:(.rdata$_ZTSN4__rw14__rw_exceptionE[typeinfo 
name for __rw::__rw_exception]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x13184): multiple 
definition of `typeinfo name for std::invalid_argument'
18.exception.o:18.exception.cpp:(.rdata$_ZTSSt16invalid_argument[typeinfo name 
for std::invalid_argument]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x1255c): multiple 
definition of `typeinfo for std::bad_typeid'
18.exception.o:18.exception.cpp:(.rdata$_ZTISt10bad_typeid[typeinfo for 
std::bad_typeid]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x126bc): multiple 
definition of `typeinfo for std::runtime_error'
18.exception.o:18.exception.cpp:(.rdata$_ZTISt13runtime_error[typeinfo for 
std::runtime_error]+0x0): first defined here
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x12990): multiple 
definition of `typeinfo for std::exception'
18.exception.o:18.exception.cpp:(.rdata$_ZTISt9exception[typeinfo for 
std::exception]+0x0): first defined here
/usr/lib/gcc/i686-pc-cygwin/3.4.4/libsupc++.a(tinfo2.o):(.rdata$_ZTISt9type_info[typeinfo
 for std::type_info]+0x0): multiple definition of `typeinfo for std::type_info'
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x129d0): first defined 
here
/usr/lib/gcc/i686-pc-cygwin/3.4.4/libsupc++.a(tinfo2.o):(.rdata$_ZTSSt9type_info[typeinfo
 name for std::type_info]+0x0): multiple definition of `typeinfo name for 
std::type_info'
$(BUILDDIR)/lib/libstd.dll:ti_wmoney_put.cpp:(.rdata+0x13694): first defined 
here
collect2: ld returned 1 exit status
make: *** [18.exception] Error 1

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to