This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Shared library mapped to different parts of the address space


"Rodrigo Dominguez" <roddomi@hotmail.com> writes:

> I am reading about position independent code (PIC). PIC is used mainly in
> shared libraries because they can be mapped to different parts of the
> address space in different processes. I am trying to trigger this behavior
> (to have a shared library that is mapped to different addresses in two
> different processes). To find out the actual mapping of the library I am
> using 'cat proc/<id>/maps'. However, I haven't been able to see this
> behavior. Does anybody have an example of how to trigger it? I am running
> this experiment on an x86-linux machine.

Many modern GNU/Linux systems use prelinking, which adjusts the shared
libraries so that they will be more efficient when loaded at a
specific address.  For more details: "man prelink".  If your shared
libraries are prelinked, then they will normally be loaded at the same
location.

The easiest way to see this happen is to write a program which uses
dlopen of shared libraries.  If you dlopen them in a different order
you will most likely see them at different addresses.

Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]