Re: 2 patches for dpkg
On Tue, 20 May 2008, Modestas Vainius wrote:
> By the way, do you have any idea what that error code 11 from dpkg-shlibdeps
> really means (in the log I linked in the previous mail)?
No, sorry. All "normal" errors end up printing something on stderr, here I
saw nothing. So it probably means that the process got killed.
> > The output of find_symbols_file depend not only on $pkg but also on
> > $soname and $lib. You can't assume that you can reuse the same symbols
> > file simply because a previous call of find_symbols with the same $kg
> > returned something. The key of %dpkg_symfile_cache should really be
> > $dpkg_symfile and not $pkg.
> Point taken. I chose the key quite poorly. find_symbols_file() does a bit of
> repetitive I/O, which I wanted to avoid too (it is hardly worth it probably,
> but still...). I'll improve this part.
Don't try replace the kernel.... he does the caching for the I/O (at least
for the test of existence of a file he will be more effective than you).
If you want however, you can add a cache to the function
symfile_has_soname() to avoid parsing the same file multiple times.
> > Why are you using $pkg and $lib as key for this cache? $lib should be
> > enough as there's only one objdump output for a given binary file...
> Because that part of code is enclosed in a 'foreach my $pkg
> (@{$file2pkg->{$lib}})' which implies that there might be more than one $pkg
> for each $lib.
This happens only when a file has been diverted. It's seldom the case for
a library. And even in that case, the objdump of $lib is always the same
(it's always the lib that diverted the other out of the way).
> I'll resend a fixed 0002 patch in a few days.
Cool!
Cheers,
--
Raphaël Hertzog
Le best-seller français mis à jour pour Debian Etch :
http://www.ouaza.com/livre/admin-debian/
Reply to: