Stefan Jones wrote:

So I have started making a small C program which does the
"Checking dynamic linking consistency..." part of the revdep-rebuild
program (I think this the the most time intensive part).

This program can then be called by the script.

So far all I see the program needing to do is
read /root/.revdep-rebuild.1_files and
use /root/.revdep-rebuild.2_ldpath as the LD_LIBRARY_PATH
and write any bad files to /root/.revdep-rebuild.3_rebuild


I have finished doing the above for linux/glibc, it can be found at http://dev.gentoo.org/~cretin/revdep-rebuild.tar.bz2

I just made a small C-program to check the dependencies, it uses ld-linux.so.2 check if the file is an ELF and then to check if it's libraries are present.

For other archs you can use present system or do something else, the original revdep-rebuild script is still used, just a bit is cut out and uses the binary instead, so other archs can use the old code easily.

The speed up is quite noticeable:
( see results.txt in the tarball )

Now we have:
real    0m46.803s
user    0m4.544s
sys     0m41.075s

Instead of:
real    8m12.674s
user    0m20.569s
sys     7m41.593s

for revdep-rebuild --keep-temp -i -- -p

Anyway, this is really proof of concept only, can do another version using scanelf using a list from another source of all available system libraries (ldconfig -p on linux)

Stefan
--
gentoo-dev@gentoo.org mailing list

Reply via email to