Raphael Hertzog wrote: [snip] > 2/ Second example, libconfig0 has a supplementary symbols > _PROCEDURE_LINKAGE_TABLE_ on sparc and alpha. I don't know where it comes > from. > Is this a internal symbols that I missed? > On powerpc it has _SDA_BASE_ and _SDA2_BASE_. Same question as above. > On amd64 it has lost the "_DYNAMIC" symbol. Same question as above.
The symbols for PLT and dynamic section are magic for the dynamic loader, they aren't relevant WRT shared library dependencies. I guess the same applies to the powerpc SDA symbols. > Quick googling led me to believe that I can/should exclude all those. If > someone can confirm, it would be great. > > 3/ Third example, libgci0/0.9.5.dfsg-2 on mipsel has a "0x62" global symbol: > 009b6870 g D *ABS* 009b6170 0x62 > It also has a 0x63 symbol but this one is marked local so is already > discarded. > 009b4cb0 l D *ABS* 009b6580 0x63 > I have no idea where they come from and what they're used for. Can someone > from debian-mips enlighten me? Looks like a corrupted symbol table. > 4/ Fourth example, libgarlic2006 on alpha has many supplementary symbols > ending > in "___elabs". No idea what the root difference is. > > 5/ Fifth example, it looks like 64 bits ports tend to have differences in > common > like on libneon2.6 where various functions suffixed by "64" disappear on those > arches (ne_get_range64, ne_set_request_body_fd64, > ne_set_request_body_provider64). 64bit ports tend to handle 64bit offsets in their interface functions, so they don't need special versions for e.g. LFS. > If you want to investigate a bit more on differences, you can grab that file: > http://users.alioth.debian.org/~hertzog/comparison.tar.bz2 (139 Mb) > the "result-compare" contain the information about differences on all > packages. > You can then lookup the difference manually by diffing files in > result/sid/*.symbols.* > > > About C++ libraries > ------------------- > > 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 Thiemo -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]