es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo compilo Tomcat mod_jk en una MacBook Pro con chip M1?

Tengo instalado Homebrew Apache e intento conectar Coldfusion Server 2016 con Tomcat mod_jk.

Descargué el código fuente de https://tomcat.apache.org/download-connectors.cgi

Seguí las instrucciones para compilarlo, probé algunas formas diferentes, pero cuando llego al comando “make”, sigo obteniendo el mismo error:

“`/opt/homebrew/opt/apr/build-1/libtool –silent –mode=compile clang -I. -I/opt/homebrew/opt/httpd/include/httpd -DHAVE_CONFIG_H -g -O2 -Wall -DHAVE_APR -I/opt/homebrew/opt/apr/include/apr-1 -I/opt/homebrew/opt/apr-util/include/apr-1 -DHAVE_CONFIG_H -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -c jk_ajp12_worker.c -o jk_ajp12_worker.lo
En el archivo incluido desde jk_ajp12_worker.c:26:
En el archivo incluido desde ./jk_ajp12_worker.h:26:
En el archivo incluido desde ./jk_logger.h:26:
En el archivo incluido desde ./jk_global.h:340:
./jk_types.h:56:2: error: No se puede determinar el tamaño adecuado para pid_t

<pre><code><br /><br /><br /><h1>error No se puede determinar el tamaño adecuado para pid_t</h1>

</code></pre>

^
./jk_types.h:62:2: error: No se puede determinar el tamaño adecuado para pthread_t

<pre><code><br /><br /><br /><h1>error No se puede determinar el tamaño adecuado para pthread_t</h1>

</code></pre>

^
Se generaron 2 errores.
make[1]: *** [jk_ajp12_worker.lo] Error 1
make: *** [all-recursive] Error 1

<pre><code><br />Estos son los diferentes comandos que he intentado para compilar:
</code></pre>

./configure –with-apxs=/opt/homebrew/bin/apxs
./configure CFLAGS='-arch arm64e' APXSLDFLAGS='-arch arm64e' –with-apxs=/opt/homebrew/bin/apxs
./configure CFLAGS='-arch arm64e' APXSLDFLAGS='-arch arm64e' –with-apxs=/opt/homebrew/bin/apxs –host=arm

<pre><code><br />Recientemente adquirí una nueva MacBook Pro de 16" y migré todo desde mi MacBook Pro de 2017 (chip Intel). Estaba utilizando Apache de serie con Coldfusion Server 2016, pero cuando intenté iniciar Apache en la nueva MacBook, no le gustó mi archivo mod_jk.so y mostró un error:

</code></pre>

httpd: Error de sintaxis en la línea 542 de /opt/homebrew/etc/httpd/httpd.conf: Error de sintaxis en la línea 2 de /opt/homebrew/etc/httpd/mod_jk.conf:
No se puede cargar /Applications/ColdFusion2016/config/wsconfig/2/mod_jk.so en el servidor: dlopen(/Applications/ColdFusion2016/config/wsconfig/2/mod_jk.so, 0x000A):
se intentó: '/Applications/ColdFusion2016/config/wsconfig/2/mod_jk.so'
(archivo mach-o, pero es una arquitectura incompatible (tiene 'x86_64', necesita 'arm64e'))
“`

Agradezco cualquier ayuda o sugerencia. Gracias.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución:

    Parece que el error de compilación está relacionado con el tamaño de ciertos tipos en el archivo jk_types.h. Una posible solución es modificar el archivo manualmente definiendo el tamaño de los tipos. Puedes probar los siguientes pasos:

    1. Abre el archivo jk_types.h en un editor de texto.
    2. Busca las líneas que están causando el error de compilación (línea 56 y 62).
    3. Agrega las siguientes líneas antes de las líneas de error:

    #define SIZEOF_PID_T 4
    #define SIZEOF_PTHREAD_T 16

    1. Guarda el archivo.
    2. Intenta ejecutar el comando make nuevamente.

    Si la solución anterior no funciona, también puedes probar lo siguiente:

    1. Instala un archivo mod_jk.so precompilado para tu versión de Coldfusion Server 2016.
    2. Asegúrate de que la arquitectura del archivo mod_jk.so coincida con la arquitectura de tu nuevo MacBook Pro (arm64e).
    3. Copia el archivo mod_jk.so en el directorio de módulos de Apache.
    4. Actualiza tu archivo httpd.conf o mod_jk.conf para que apunte al nuevo archivo mod_jk.so.
    5. Inicia o reinicia Apache.

    Espero que esto te ayude. Hazme saber si tienes alguna pregunta adicional.

Comments are closed.