Re: [RFA] Introduce solib_loaded observer

Daniel Jacobowitz
2005-01-09T00:01:11Z

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