Hello all,
I am trying to compile a static libcrypto.a into a shared library. Every time
I do this I receive the following error:
[100%] Building CXX object
CMakeFiles/testprovider.dir/soapTestServiceGatewayProxy.cpp.o
Linking CXX shared library libtestprovider.so
/usr/bin/ld:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libcrypto.a(x86_64cpuid.o):
relocation R_X86_64_PC32 against `OPENSSL_cpuid_setup' can not be used when
making a shared object; recompile with -fPIC
Here are the environments I have tested this with:
CentOS 5 (x64)
- gcc 4.1.2-51.el5
- openssl-0.9.8r
- configured with ./config -fPIC
RHEL 5.5 (x64)
- gcc 4.1.2-15.el5
- openssl-0.9.8r
- configured with ./config -fPIC
I have tried passing -Wl,-Bsymbolic to the compiler when linking my shared
library to libcrypto.a and had no luck. I did try to compile after passing the
no-asm flag and it allowed me to link, but I have grave concerns about the
performance implications. The library is very performance critical. As it is
now, we can test functionality using a shared libcrypto.so, but this is not
ideal for production testing if we can avoid it.
Any thoughts? I had found some information out here -
http://rt.openssl.org/Ticket/Display.html?id=2466&user=guest&pass=guest . Does
anyone know in which release the formal patch noted in that link was included?
Regards,
Frank
________________________________
This message is intended only for the use of the individual or entity to which
it is addressed and may contain information that is privileged, confidential
and exempt from disclosure under applicable law. If the reader of this message
is not the intended recipient or the employee or agent responsible for
delivering the message to the intended recipient, you are hereby notified that
any dissemination, distribution or copying of this communication is strictly
prohibited. If you have received this message in error, please notify the
sender by reply transmission and delete the message. The contents of this
message that do not relate to the official business of our company shall be
understood as neither given nor endorsed by it.