This patch ensures that shared libraries are, at minimum, user writable 
so that they may be successfully stripped when generating file system 
and installation images.
