[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Dependencies on shared libs, news and difference between archs



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


Reply to: