This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Tru64 non-virtual thunks multiply defined
- From: Ian Lance Taylor <iant at google dot com>
- To: "Peter O'Gorman" <pogma at thewrittenword dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 19 Dec 2008 12:47:26 -0800
- Subject: Re: Tru64 non-virtual thunks multiply defined
- References: <20081219173222.GA18155@localhost.localdomain>
"Peter O'Gorman" <pogma@thewrittenword.com> writes:
> When building qt-3.3.8 and wxGTk on Tru64 UNIX 5.1
> (alphaev67-dec-osf5.1) with gcc-4.2.4, we got linker failures about
> duplicate non-virtual thunks, e.g. from qt:
> /usr/ccs/bin/ld:
> .obj/release-shared-mt/qmotifdnd_x11.o: non-virtual thunk to QDragMoveEvent::~QDragMoveEvent(): multiply defined
> .obj/release-shared-mt/qmotifdnd_x11.o: non-virtual thunk to QDragMoveEvent::~QDragMoveEvent(): multiply defined
> .obj/release-shared-mt/qmotifdnd_x11.o: non-virtual thunk to QDragEnterEvent::~QDragEnterEvent(): multiply defined
> .obj/release-shared-mt/qmotifdnd_x11.o: non-virtual thunk to QDragEnterEvent::~QDragEnterEvent(): multiply defined
>
> This appears to be because the non-virtual thunks are not output weak on this
> platform, so, those that appear in multiple objects will cause linker errors
> like this (in the above case, there are _ZThn16_N14QDragMoveEventD0Ev and
> _ZThn16_N14QDragMoveEventD1Ev in both qdnd_x11.o and qmotifdnd_x11.o).
>
> Tru64 appears to have some weak symbol support, is there a reason that
> these thunks are not weak?
Tru64 is not widely used by gcc developers. I do see support for
generating weak symbols in the source code, but I don't know why it
isn't helping here. This is most likely a bug somewhere. Please
report it according to http://gcc.gnu.org/bugs.html . Thanks.
This message would be more appropriate for the mailing list
gcc-help@gcc.gnu.org. Please take any followups there. Thanks.
Ian