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 @@ > > [EMAIL PROTECTED] 0.7.1-1 > > [EMAIL PROTECTED] 0.7.1-1 > > [EMAIL PROTECTED] 0.7.1-1 > > - [EMAIL PROTECTED] 0.7.1-1 > > - [EMAIL PROTECTED] 0.7.1-1 > > - [EMAIL PROTECTED] 0.7.1-1 > > - [EMAIL PROTECTED] 0.7.1-1 > > + [EMAIL PROTECTED] 0.7.1-1 > > + [EMAIL PROTECTED] 0.7.1-1 > > + [EMAIL PROTECTED] 0.7.1-1 > > + [EMAIL PROTECTED] 0.7.1-1 > > libgnunetqtmodule_about.so.1 gnunet-qt #MINVER# > > [EMAIL PROTECTED] 0.7.1-1 > > [EMAIL PROTECTED] 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.
signature.asc
Description: This is a digitally signed message part