it is important to make "depmod -a" faster because it is run during the
boot process of the computer from the init scripts, and it takes several
seconds which are a lot of time relative to the whole boot time.
I think I have an idea how to make it faster:
First, the current situation is this:
in the file depmod.c where the dependency checking is done, the program
goes over all object files and for each object file over all the symbols
and tries to resolve each symbol(see in which object file it is declared).
for each symbol it tries to resolve, it goes again over all object files
and tries to find the symbol in each object file until it is found in one
of them. the algorithm can take O(N^2) where N is the number of object
files in the system. In my Linux 6.1 system N=~400 .
I think a better approach than making a hash table for each object file
like it is today, would be to put all symbols from all objects in one hash
table. that will make finding a symbol and the object file in which it is
declared much faster.
This is improved in modutils-2.3.10, which has a flag
to only create a new modules.dep if needed (i.e., timestamp
on modules >= timestamp on modules.dep).