This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/14607] [3.3 Regression] Duplicate symbol "vtable for node" in files div.o and env.o
- From: "dave at hiauly1 dot hia dot nrc dot ca" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 11 Jun 2004 22:40:38 -0000
- Subject: [Bug c++/14607] [3.3 Regression] Duplicate symbol "vtable for node" in files div.o and env.o
- References: <20040316171907.14607.danglin@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From dave at hiauly1 dot hia dot nrc dot ca 2004-06-11 22:40 -------
Subject: Re: [3.3 Regression] Duplicate symbol "vtable for nod
> What |Removed |Added
> ----------------------------------------------------------------------------
> Target Milestone|3.3.4 |3.3.5
I'm not sure this milestone is reasonable. I did quite a bit
of investigation on this problem and came to the conclusion that
on targets that don't support one-only semantics we are more or
less scuppered by the C++ "ABI" used by GCC.
I have been testing a fix using the support for COMDAT that's
present in the hpux 10.20 linker to implement one-only support.
If I go ahead with this fix on [3.3/3.4], the new libstdc++
library will not be compatible with the previously installed
libraries. I also note that using COMDAT instead on secondary
definition symbols (as in hpux 11) will make programs compiled
under hpux 10.20 incompatible with hpux 11. As a result, any
existing old binaries will need recompilation and linking. On
the other hand, C++ is more or less broken for any non trivial
programs at the moment. So, implementing one-only support
would be a significant improvement.
Dave
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14607