Subject: Re: why ld.elf_so is slow starting mozilla
To: <>
From: David Laight <>
List: tech-toolchain
Date: 10/03/2002 11:06:07
> I *think* that this is always safe -- _rtld_list_main is always
> searched first, and the objects cannot be unloaded...

It isn't quite safe...
I think dlsym() ought to search the items loaded by 'needed' requests
even if these are global libraries.
(see XXX comment in _rtld_dlsym code).

The following ought to work.
Replace the current
dldags - dlopen()ed libraries that caused this module to be loaded
dldagsym - libraries in same namespace as this library
(dagmembers stays the same)

This requires:
1) dagmembers be generated first (maybe by _rtld_load_needed_objects)
2) for each 'dagmembers' add non-main dagmembers to dldagsym
3) scan and remove stale dldagsym entries whenever a library
   is unloaded.

Both lists need only contain each object once.

dlsym should then scan the dagmembers list.

I see a 'broken' ld.elf_so comming to a system near me soon :-)


David Laight: