On Fri, Dec 19, 2008 at 12:47:26PM -0800, Ian Lance Taylor wrote: > "Peter O'Gorman" <pogma@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxx Please take any followups there. Thanks. Well, I was going to try and fix it. But, you're right, have no idea where to start. Sumbitted as PR38581. Thanks for the response, Peter -- Peter O'Gorman pogma@xxxxxxxxxxxxxxxxxx