Context: I can create a shared object library which is linked to a static library without any problems on 32bit linux. When I attempt the same build on 64bit linux, I see this linker error:

  • relocation R_X86_64_32S against `a local symbol' can not be used when making a shared object; recompile with -fPIC

This error is quite common on the web. The solution is to compile the statically linked library with position independent code (-fPIC).

What I do not understand is why this is not required for the 32bit build. Can anyone help out?

Edit
Report