On Thu, 31 Oct 2002 12:20:14 -0500 (EST)
Daniel Eischen <[EMAIL PROTECTED]> wrote:

> I wonder how it works for Solaris (you can see both the non-underscore
> and single-underscore symbols resolve to the same thing)?  Perhaps their
> stubs in libc pull the libgcc trick?

Solaris libc uses something called ti_jmp_table to locate pthread symbols.
Both _pthread and pthread functions resolve to the same stub which does
something like this:

1) fetch a function pointer from the ti_jmp_table
2) jump to it.

By default, ti_jump_table entries contain pointers to dummy function like
_return_zero if no threading library is loaded. When the threading library is
loaded, ti_jump_table is populated with new pointers to functions implemented
in threading library library. GDB did not allow me to track down where exactly
this happens, I presume .init function in libpthread.so does that.

Just FYI.
-- 
Alexander Kabaev

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to