Debido a algunos errores críticos en las bibliotecas estándar de HP-UX, se deberían instalar los siguientes parches antes de ejecutar MySQL en HP-UX 11.0:
PHKL_22840 Streams cumulative PHNE_22397 ARPA cumulative
Esto soluciona el problema de obtener
EWOULDBLOCK
EWOULDBLOCK
de recv()
y EBADF
de
accept()
en aplicaciones con subprocesos o
hebradas (threaded).
Si se está empleando gcc 2.95.1 en un sistema HP-UX 11.x sin parches, se podría obtener el siguiente error:
In file included from /usr/include/unistd.h:11, from ../include/global.h:125, from mysql_priv.h:15, from item.cc:19: /usr/include/sys/unistd.h:184: declaration of C function ... /usr/include/sys/pthread.h:440: previous declaration ... In file included from item.h:306, from mysql_priv.h:158, from item.cc:19:
El problema es que HP-UX no define
pthreads_atfork()
en forma consistente.
Tiene prototipos conflictivos en
/usr/include/sys/unistd.h
:184 y
/usr/include/sys/pthread.h
:440.
Una solución es copiar
/usr/include/sys/unistd.h
dentro de
mysql/include
y editar
unistd.h
y cambiarlo para que coincida
con la definición en pthread.h
. Hay que
hallar esta línea:
extern int pthread_atfork(void (*prepare)(), void (*parent)(), void (*child)());
Y cambiarla para que sea así:
extern int pthread_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void));
Después de realizar el cambio, la siguiente línea de configure debería funcionar:
CFLAGS="-fomit-frame-pointer -O3 -fpic" CXX=gcc \ CXXFLAGS="-felide-constructors -fno-exceptions -fno-rtti -O3" \ ./configure --prefix=/usr/local/mysql --disable-shared
Si se está empleando el compilador HP-UX, se puede utilizar el siguiente comando (el cual fue probado con cc B.11.11.04):
CC=cc CXX=aCC CFLAGS=+DD64 CXXFLAGS=+DD64 ./configure \ --with-extra-character-set=complex
Se podrá ignorar cualquier error de este tipo:
aCC: warning 901: unknown option: `-3': use +help for online documentation
Si se obtiene el siguiente error desde configure, verificar si no se tiene la ruta al compilador K&R antes que la ruta al compilador HP-UX para C y C++:
checking for cc option to accept ANSI C... no configure: error: MySQL requires an ANSI C compiler (and a C++ compiler). Try gcc. See the Installation chapter in the Reference Manual.
Otra razón que puee impedir la compilación es que no se
hayan definido los flags +DD64
tal como se
ha descripto.
Otra posibilidad para HP-UX 11 es emplear los binarios MySQL provistos en http://dev.mysql.com/downloads, los cuales fueron compilados y probados por MySQL AB. También se han recibido informes de que los binarios de MySQL provistos con HP-UX 10.20 se ejecutan correctamente en HP-UX 11. Si se encuentran problemas, se debería verificar si HP-UX tiene todos los parches necesarios.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.