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

Re: dpkg symbol dependencies



On Mon, 14 Apr 2008, Martin Koeppe wrote:
> I now found out why it didn't got the Depends: right: The parsing of  
> objdump output for NEEDED libs must have been changed. On linux the  
> header is "Dynamic Section" while on interix it is "Dynamic (.so) 
> Section".

Indeed, dpkg-shlibdeps now uses the new Objdump module for this. Before it
was calling objdump diretcly.

> I now have successfully adapted Objdump.pm for interix to work  
> basically, see diff. Thanks for the info. I had to make one change which 
> I don't fully understand:
>
> With add_dynamic_symbol($symbol) a symbol is added, with empty version, 
> if it doesn't have a version. But then locate_symbol() is called, but the 
> symbol name to locate has a dummy version "@Base" attached to it. Because 
> of this, on interix with my patch above the symbol can't be located 
> correctly. I therefore decided to always attach this dummy version "Base" 
> from the beginning, and it then works, but I think this is not the right 
> way of doing it.

I think it's ok. On linux, any defined symbol is associated to a version,
with a default version called "Base". Thus the objdump parsing always
return "Base" for the version... we only have an empty version for
the associated "undefined" symbols (users of the symbol), precisely those
that are not the target of "locate_symbol()". And dpkg-shlibdeps adds the
"@Base" by default too...

Cheers,
-- 
Raphaël Hertzog

Le best-seller français mis à jour pour Debian Etch :
http://www.ouaza.com/livre/admin-debian/


Reply to: