Instalación de PCRE de 32 bits en RHEL 5: resolución de dependencia para la instalación de Apache 2.4

Instalación de PCRE de 32 bits en RHEL 5: resolución de dependencia para la instalación de Apache 2.4

Necesito instalar Apache 2.4 versión de 32 bits en RHEL 5. No instalaré Apache de 64 bits porque la aplicación que se ejecuta en la máquina RHEL5 necesita Apache de 32 bits (o eso es lo que pienso debido al comportamiento anterior).

Recibo "no se pudieron leer los símbolos", lo makeque probablemente se deba a que las bibliotecas pcre son de ELF de 64 bits cuando la instalación espera que sean de ELF de 32 bits.

**/usr/local/lib/libpcre.so: could not read symbols: File in wrong format**
collect2: ld returned 1 exit status
make[1]: *** [httpd] Error 1
make[1]: Leaving directory `/opt/myapp/httpd-2.4.7'
make: *** [all-recursive] Error 1

La configuración para Apache 2.4 se ejecuta como:

CFLAGS="-m32"; export CFLAGS
LDFLAGS="-m32"; export LDFLAGS
"./configure" \
"--prefix=/opt/myapp/apache2.4" \
"--with-mpm=worker" \
"--enable-static-support" \
"--enable-ssl=static" \
"--enable-modules=most" \
"--disable-authndbd" \
"--disable-authn-dbm" \
"--disable-dbd" \
"--enable-static-logresolve" \
"--enable-static-rotatelogs" \
"--enable-proxy=static" \
"--enable-proxyconnect=static" \
"--enable-proxy-ftp=static" \
"--enable-proxy-http=static" \
"--enable-rewrite=static" \
"--enable-so=static" \
"--with-ssl=/opt/myapp/apache2.4/openssl" \
"--host=x86_32-unknown-linux-gnu" \
"host_alias=x86_32-unknown-linux-gnu" \
"CFLAGS=-m32" \
"LDFLAGS=-m32" \
"--with-included-apr" \
"--with-pcre=/usr/local" \
"$@"

He instalado PCRE sin ningún error usando:

./configure --prefix=/usr/local --enable-pcre32

Cuando hago pcretest aparece esto (¿Compilado con soporte de 8 bits?):

$ /usr/local/bin/pcretest -C
PCRE version 8.33 2013-05-28
Compiled with
  8-bit support
  No UTF-8 support
  No Unicode properties support
  No just-in-time compiler support
  Newline sequence is LF
  \R matches all Unicode newlines
  Internal link size = 2
  POSIX malloc threshold = 10
  Default match limit = 10000000
  Default recursion depth limit = 10000000
  Match recursion uses stack

Pero cuando reviso las bibliotecas creadas (que se supone que admiten aplicaciones de 32 bits), obtengo ELF de 64 bits.

$ file libpcre32.so.0.0.1
libpcre32.so.0.0.1: **ELF 64-bit** LSB shared object, AMD x86-64, version 1 (SYSV), not stripped

Respuesta1

Su --enable_pcre32 configureopción se refiere a la opción de 32 bits en pcresí misma (se puede habilitar para manejar versiones de expresiones regulares de 16 o 32 bits, ¿presumiblemente para cosas Unicode?)

Intente compilar pcrecon las -m32opciones que utilizó en su configuración de Apache.

información relacionada