[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

libc5 ld.so



I've been having a look at the libc5 ld.so, and, unfortunately, there
seems to be no simple fix to get it to work. The way it figures out
where in memory it has been loaded has to be completely reworked.

The way it does it now is to look at the interpreter base that the
kernel passes it. The problem is that the kernel only passes this
information if it actually gets loaded as an interpreter, as opposed
to being explicitly invoked, when the kernel treats it as any other
statically linked program.

When ld.so doesn't get the interpreter base from the kernel it uses 0.
I've patched it to use the code from the glibc ld.so to find where it
is, and it's a slight improvement - I can only get it to segfault
with LD_PRELOAD set to something loadable, or when running a program
from the command line. Not that it prints anything with
LD_TRACE_LOADED_OBJECTS set...

I'm sending a Cc to David Engel in the hope that he might be able to
shed some light on the subject.

/Anders


-- 
 -- Of course I'm crazy, but that doesn't mean I'm wrong.
Anders Hammarquist   |       Mud at Kingdoms        | iko@netg.se
NetGuide Scandinavia |   telnet kingdoms.se 1812    | Fax: +46 31 50 79 39
http://www.netg.se   |                              | Tel: +46 31 50 79 40


--
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
debian-sparc-request@lists.debian.org . 
Trouble?  e-mail to templin@bucknell.edu .


Reply to: