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.
