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.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to