¿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.
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:
#define SIZEOF_PID_T 4
#define SIZEOF_PTHREAD_T 16
make
nuevamente.Si la solución anterior no funciona, también puedes probar lo siguiente:
Espero que esto te ayude. Hazme saber si tienes alguna pregunta adicional.