title: Removing a library included in a shared library
body: <p><strong>Background of the question:</strong>
  I've a library, say <em>mylib.so</em> that includes an old <em>libpng</em>.
  Now (due to recent Google Play policies) I've to use a newer <em>libpng</em>; but this can be difficult, as the library was compiled long ago, and it can be very long to gather again all the libraries needed, with the old version... and so on.</p>
  
  <p><strong>Question:</strong></p>
  
  <p>Is it possible to "remove" specific entries from the file <em>mylib.so</em>, so that I can then link both <em>mylib.so</em> and the new <em>libpng.so</em> from my apps, and everything will run nicely (obviously, if the libpng is backward compatible with the one previously linked <em>inside</em> mylib.so)?</p>
  
  <p>I don't know the internals of shared libraries, but I hope that somehow the linker can be able to do this without to recompile the whole <em>mylib.so</em>...
  Am I too optimistic?</p>
  
  <p><strong>Extra question</strong> (not the main one, but I'd like to understand it): if <em>mylib.so</em> includes an old <em>libpng</em> and I link to both <em>mylib.so</em> and a new <em>libpng</em>... what happens? I mean, the linker is allowing me to link 2 libraries probably with a similar names of exported symbols... but it's a bit confusing...</p>