Для HP-UX версий 11.x мы рекомендуем использовать MySQL не ниже 3.23.15.
Из-за некоторых критических ошибок в стандартных библиотеках HP-UX до попытки запуска MySQL на HP-UX 11.0 необходимо установить следующие патчи:
PHKL_22840 Streams cumulative PHNE_22397 ARPA cumulative
Применение данных патчей решит
проблему получения
EWOULDBLOCK от recv()
и EBADF от accept()
в потоковых приложениях.
При использовании gcc
2.95.1 в системе, к которой не были
применены патчи, возникнет
ошибка:
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:
Проблема заключается в том, что
HP-UX существуют несовместимые
определения функции
pthreads_atfork().
Конфликтующие прототипы
находятся в
/usr/include/sys/unistd.h:184 и в
/usr/include/sys/pthread.h:440
(подробности приведены ниже).
Одно из возможных решений
заключается в том, чтобы
скопировать
/usr/include/sys/unistd.h в
mysql/include и
отредактировать unistd.h
так, чтобы определение совпадало
с определением из
pthread.h. Ниже приведен
результат работы diff:
183,184c183,184 < extern int pthread_atfork(void (*prepare)(), void (*parent)(), < void (*child)()); --- > extern int pthread_atfork(void (*prepare)(void), void (*parent)(void), > void (*child)(void));
После этого должна работать конфигурационная программа со следующими параметрами:
CFLAGS="-fomit-frame-pointer -O3 -fpic" CXX=gcc \ CXXFLAGS="-felide-constructors -fno-exceptions -fno-rtti -O3" \ ./configure --prefix=/usr/local/mysql --disable-shared
Если вы используете MySQL 4.0.5 с компилятором HP-UX, то вам подойдет (проверено на cc B.11.11.04):
CC=cc CXX=aCC CFLAGS=+DD64 CXXFLAGS=+DD64 ./configure --with-extra-character-set=complex
Вы можете игнорировать ошибки, подобные этой:
aCC: warning 901: unknown option: `-3': use +help for online documentation
При получении следующего
сообщения об ошибке при работе
configure
checking for cc option to accept ANSI C... no configure: error: MySQL requires a ANSI C compiler (and a C++ compiler). Try gcc. See the Installation chapter in the Reference Manual.
следует удостовериться, что путь к компилятору K&R не указан раньше, чем путь к компиляторам HP-UX C и C++.
Еще одна причина, по которой вы не
сможете скомпилировать MySQL,
заключается в том, что вы забыли
указать флаг +DD64,
описанный выше.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
