apache - sslcertificatekeyfile - ¿Compilar OpenSSL con la opción ''compartida''?
installing https certificate apache (4)
Así es como construí OpenSSL con bibliotecas compartidas. Tenga en cuenta que estoy usando un compilador cruzado, así que especifico las cosas que la mayoría no.
# hop into the downloads folder
cd ~/Downloads
# get the branch of openssl you want
git clone -b OpenSSL_1_0_2-stable --single-branch https://github.com/openssl/openssl.git
# make an installation directory
mkdir openssl-install
# go into the cloned openssl directory
cd openssl
# absolute paths needed for the configure
# the "-fPIC -mhard-float" are CFLAGS specific to my project
# the "-shared" is what creates the .so files
# find your desired configuration with `./Configure LIST`
./Configure linux-mips32 --prefix=/home/myusername/Downloads/openssl-install --openssldir=/system/ssl -fPIC -mhard-float -shared
# run the make file (with my specific compiler)
make CC=mips-linux-gnu-gcc RANLIB=mips-linux-gnu-ranlib LD=mips-linux-gnu-ld MAKEDEPPROG=mips-linux-gnu-gcc PROCESSOR=MIPS
En CentOS 5.4, OpenSSL compila bien sin opción ''compartida''. Pero cuando pasé esa opción la compilación falla con:
/ usr / bin / ld: libcrypto.a (x86_64-gcc.o): la reubicación R_X86_64_32 contra `un símbolo local ''no se puede usar al crear un objeto compartido; recompilar con -fPIC
Cuando intento: ./config shared CFLAGS=-fPIC
que no funciona.
¿Qué puedo hacer para que OpenSSL compile con la opción ''compartida''?
Gracias
El mismo problema aquí, PERO, por lo general, Makefiles considerará las variables de entorno para las opciones del compilador o enlazador.
Por lo tanto, si coloca la opción -fPIC
antes de llamar al script de configuración, debería encargarse de ello. Puedes hacerlo con:
CFLAGS=-fPIC ./config shared --prefix=/your/path
o
export CFLAGS=-fPIC
./config shared --prefix=/your/path
Funcionó para mí.
Hay una opción -fXXX
que puede pasar a config para que pueda hacerlo con:
./config -fPIC shared
La versión 1.0 de OpenSSL (publicada hoy) funciona bien con la opción compartida