-
All threads use library at same (virtual) address
If that address is already used by the thread, the library code, must be relocated in that thread's address space.
- PIC - library code written as position independent code.
Each process maintains a table of addresses of shared routines as mapped into the process.
Position independent call: address of the call is at an offset in the table. The call is indirect through the table.
Windows: dynamic link libraries - .dll
Linux: shared objects - .so
But, versioning problem ...