On Fri, 2002-04-12 at 06:15, Adam 'WeirdArms' Wiggins wrote:
>       A quick question. How do dynamic libraries on ARM Linux locate
> their data segment, are all .data references relative to a register (sb
> looks like it is for this purpose) or if a register contains the address
> of the global offset table or what.
>       The reason I ask is that currently the glibc seems to map the
> text/data of dynamic libraries with one mapping which is then splits. For
> some work I'm doing I'd like to map the .text and .data at arbitarily
> different points in the processes address space.

That won't work with existing libraries.  They depend on establishing a
fixed offset between text and data during final link.  You can relocate
the object in its entirety but you can't move bits of it around
independently.

ucLinux does something along the lines that you are suggesting.  One
register is used as a static base pointer, which is set up by the kernel
to point to the GOT or the start of .data.

p.


_______________________________________________
http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm
http://www.arm.linux.org.uk/armlinux/mailinglists.php
Please visit the above addresses for information on this list.

Reply via email to