[RFA] Introduce solib_loaded observer

Daniel Jacobowitz drow@false.org
Sun Jan 9 00:01:00 GMT 2005


On Sun, Jan 09, 2005 at 12:14:06AM +0100, Mark Kettenis wrote:
> This patch introduces a new solib_loaded observer that parallels the
> solub_unloaded observer that we already have.  I need this observer to
> properly implement a threads stratum for FreeBSD and OpenBSD
> user-space threads library support.  With this observer I'll also be
> able to fix the problems we're having with statically linked programs
> that use the threading library on Linux.  If you think about it a bit,
> the problems with static thread libraries stem from the fact that we
> abuse the now deprecated target_new_objfile_hook to get notified about
> newly loaded libraries.  Unfortunately that hook is also called when
> the main executable is loaded, which causes all kinds of trouble.

Actually, I've already posted patches for the Linux problem.  The basic
"abuse" of the target_new_objfile_hook isn't really the stumbling
block, rather, the attempt to use it for both running and non-running
programs.  The necessary fix was to use inferior_created.  Still, it'll
definitely be cleaner to use a solib_loaded hook there, and I look
forward to that.

I'll ping that patch after I get back from travelling next week.

> The patch below doesn't only implement the new observer.  The reason
> for that is that when the solib_loaded observer is called, the symbols
> for the new library haven't been loaded yet.  So I've split out the
> code to read in those symbols out from solib_add() into a seperate
> function, and made that public.

Could you explain why this is necessary, instead of calling the
observer after loading symbols?  I don't see notification at that point
as particularly useful.  Certainly the first thing the GNU/Linux code
would want to do would be to load the symbols.

-- 
Daniel Jacobowitz



More information about the Gdb-patches mailing list