[uClibc]Double resolutions -- Is this normal?

spudmonkey at racsa.co.cr spudmonkey at racsa.co.cr
Tue May 7 18:34:12 UTC 2002


Hi,

I've noticed the following behavior with my incarnation the
_dl_linux_resolve and I would like to know if anyone knows if this is
normal behavior.

Here is the scenario.  I have a test program that references exit(), but
does not call it in the normal case.  In the normal case, it just
returns to __uClibc_main(), where exit() is called.

The behavior that I am seeing is that the call from exit() from
__uClibc_main() invokes the resolver and _dl_find_hash() is called.  The
weird thing is that _dl_find_hash finds the PLT declaration of exit() in
the main program -- NOT the real declaration in libuClibc.

The result is that __uClibc_main's exit call resolves to the exit() PLT
entry in the test program which, when called, takes us back through yet
another trip through _dl_linux_resolve.

Is this normal?  If so, does anyone know of a way to get this back down
to one lookup?

Thanks in advance,

Greg Nutt




More information about the uClibc mailing list