-
Position Independent Code:
-
Since the shared library could be loaded to any part of the address
space, it cannot hard code addresses of its functions and data. This
must be resolved when the library is loaded.
-
They can take a really long time to load.
-
OS's attempt to mitigate this in various ways.
-
Extra levels of indirection in non-virtual function calls.
-
No inlining across library boundaries.