On Thu, 06 Oct 2011 20:43:38 +1300 (MSD), Valery V. Sedletski wrote:
On Sun, 2 Oct 2011 23:00:11 +0200, Adam Lackorzynski wrote:
....
I now built a shared lib as PIC and linked to the binary. And made a router function, which is at the fixed address in the binary, which acts as a wrapper for shared library functions. So, now I can call the shared lib functions from a fixed address. But another problem -- libloader.s.so loads at 0x10000 and prevents my OS/2 binary to load. The area at 0x10000 is the default OS/2 binary start address and I cannot change this :( Is there a way to move libloader.s.so from the address 0x10000 or to avoid loading it at all? Now I have my shared lib dynamically linked with the binary, and it gets loaded by ldso (aka libld-l4.s.so). Maybe, there is a mode of loading shared libs when libloader.s.so is not needed (for example, I am not sure if it is needed to be loaded when I load it via dlopen() e.g.)
Maybe, I must build a custom libloader.s.so version which loads at different address? Or maybe, there is a legal way to move libloader.s.so to another address? -- I know that, for example, thread lib heap can be moved from its default position by changing a variable which is defined as a weak symbol. So, maybe it could be done likewise? Help, please..
Thanks in advance, valery