I was able to create a shared library for a simple function containing openMP declarations just like you are doing. The only difference is that Im not using any external library.
So can you describe your "external library" and does it also use openMP?
I too was able to create a .so for a simple case with -fPIC and so googled around and got this link. It talks about various cases and how to fix -fPIC errors.
Hope You may find this useful.
Sorry, the 4.2.2-1 version of libopenmp.a was not compiled PIC and we didn't supply a libopenmp.so. We will be supplying a shared object for libopenmp in the 4.2.2-2 release, which we currently plan to deliver in the early part of June.
Doug : Thanks for the response. I will wait for the next release then.
Others : PIC works as long as I do not use OpenMP. Its only PIC+OpenMP that currently does not work.