Suggested reading:
Ulrich Drepper’s How to write shared libraries: http://www.akkadia.org/drepper/dsohowto.pdf
Ulrich Drepper’s Good Practices in library design, implementation, and maintenance: http://www.akkadia.org/drepper/goodpractice.pdf
dsohowto is much more detailed. goodpractice is a quick read.