When compiling shared libraries in gcc the -fPIC option compiles the code as position independent. Is there any reason (performance or otherwise) why you would not compile
position-independent code has a performance overhead on most architecture, because it requires an extra register.
position-independent code
So, this is for performance purpose.