hi,
For some special reason , I'd like to control the memory address for the shared libraries in my dynamically linked process.
And it is the "ld" which interpret the dynamically linked library, and in my system, the "ld-linux.so.2" is put at 0x00812000. Then I use "prelink -r" command to change it address into "0x40000000", and use the "gcc -specs" to choose the new "ld-linux.so.2" as my default interpreter, the the program is compiled and when I use "ldd" I can see the "ld-linux.so.2" is put at "0x4000000" , but when I run the process, it crashed? I find it crash at "_dl_bebug_initialize()" , which access a not exist memory address, "0x008294e0" , I think it is the "got" in the former image.
so is there any solution? Thanks a lot!
ps :
Though I have update the gcc specs to choose the new "ld-linux.so.2" as my default interpreter, how can I choose other libraries, such as "libc.so.6","libgcc_s.so.1" and so on.
Double post... continue
here.