On Wed, 2007-08-22 at 20:38 +0100, Thiemo Seufer wrote: <snip> > > Can anyone explain me why there's randomness in symbol mangling? If I compare > > the symbols file of gnunet-qt for example I get differences like this between > > i386 and alpha: > > @@ -67,10 +67,10 @@ > > _ZTV13GPluginLoader@Base 0.7.1-1 > > _ZTV6GEvent@Base 0.7.1-1 > > _ZTV7GPlugin@Base 0.7.1-1 > > - _ZThn8_N11GTextEditorD0Ev@Base 0.7.1-1 > > - _ZThn8_N11GTextEditorD1Ev@Base 0.7.1-1 > > - _ZThn8_N7GPluginD0Ev@Base 0.7.1-1 > > - _ZThn8_N7GPluginD1Ev@Base 0.7.1-1 > > + _ZThn16_N11GTextEditorD0Ev@Base 0.7.1-1 > > + _ZThn16_N11GTextEditorD1Ev@Base 0.7.1-1 > > + _ZThn16_N7GPluginD0Ev@Base 0.7.1-1 > > + _ZThn16_N7GPluginD1Ev@Base 0.7.1-1 > > libgnunetqtmodule_about.so.1 gnunet-qt #MINVER# > > _ZN11Ui_WndAbout7setupUiEP7QWidget@Base 0.7.1-1 > > _ZN12GAboutPlugin11linkHandlerERK4QUrl@Base 0.7.1-1 > > > > But if you check what it refers too, they refer to the same symbol: > > $ c++filt _ZThn8_N11GTextEditorD0Ev > > non-virtual thunk to GTextEditor::~GTextEditor() > > $ c++filt _ZThn16_N11GTextEditorD0Ev > > non-virtual thunk to GTextEditor::~GTextEditor() > > > > And if I convert the symbols files with c++filt then both files are identical. > > Different object/vtable layout, see > http://www.codesourcery.com/cxx-abi/abi.html#mangling Another difference: (u)int64_t are aliases for (unsigned) long long on 32-bit systems and are mangled as 'x' ('y'). On 64-bit systems they are aliases for (unsigned) long and are mangled as 'l' ('m'). Ben. -- Ben Hutchings The program is absolutely right; therefore, the computer must be wrong.
Attachment:
signature.asc
Description: This is a digitally signed message part