Scott Cantor closed XERCESC-1956.

> x86-64 binary distribution can't be statically linked into a shared library
> ---------------------------------------------------------------------------
>                 Key: XERCESC-1956
>                 URL: https://issues.apache.org/jira/browse/XERCESC-1956
>             Project: Xerces-C++
>          Issue Type: Bug
>          Components: Build
>    Affects Versions: 3.1.1
>         Environment: Linux x86-64
>            Reporter: Lee Doron
> I'm creating a shared object library that uses Xerces-C++. I'd prefer to link 
> my code to the static library (libxerces-c.a). However, when I try to do 
> that, I get a link error: "relocation R_X86_64_32S against `a local symbol' 
> can not be used when making a shared object; recompile with -fPIC". (I've 
> encountered this on Linux so far, but this is actually cross-platform code 
> that will also run on Windows and Mac, so if there would be a similar problem 
> on those platforms, please consider this bug to include them.) It appears 
> that it is impossible to statically link a shared object against 64-bit code 
> that is position dependent, since the shared object must contain only 
> position-independent code. The static libraries can only be linked directly 
> into an executable.
> To fix this, I suggest that you please compile the static libraries for 
> 64-bit Intel binary distributions such that they have position-independent 
> code (the -fPIC option on gcc, as mentioned in the error above). Then it will 
> be possible to link them either into an executable or into a shared object 
> library. Thanks!

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org
For additional commands, e-mail: c-dev-h...@xerces.apache.org

Reply via email to