В случае проблем компиляции при
установленных DEC CC и
gcc попробуйте запустить
configure следующим
образом:
CC=cc CFLAGS=-O CXX=gcc CXXFLAGS=-O3 \ ./configure --prefix=/usr/local/mysql
Если возникнут проблемы с файлом
c_asm.h, можно создать и
использовать ``фиктивный''
c_asm.h при помощи
следующих команд:
touch include/c_asm.h CC=gcc CFLAGS=-I./include \ CXX=gcc CXXFLAGS=-O3 \ ./configure --prefix=/usr/local/mysql
Отметим, что перечисленные ниже
проблемы с программой ld
могут быть решены путем загрузки
последнего набора патчей от DEC
(Compaq) с
http://ftp.support.compaq.com/public/unix/.
При использовании OSF/1 4.0D и
компилятора DEC C V5.6-071 на Digital Unix V4.0
(Rev. 878) компилятор начинает вести
себя странно (неопределенные
asm-символы). Кроме того,
/bin/ld также, похоже,
содержит ошибки (проблемы с
ошибками _exit undefined
возникающими при линковании
mysqld). На этих системах
нам удалось организовать
компиляцию MySQL с помощью
следующей строки configure,
заменив /bin/ld
аналогичным файлом из версии OSF
4.0C:
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql
С Digital-компилятором "C++ V6.1-029" должно работать:
CC=cc -pthread
CFLAGS=-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all \
-arch host
CXX=cxx -pthread
CXXFLAGS=-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all \
-arch host -noexceptions -nortti
export CC CFLAGS CXX CXXFLAGS
./configure --prefix=/usr/mysql/mysql
--with-mysqld-ldflags=-all-static \
--disable-shared --with-named-thread-libs="-lmach -lexc -lc"
В некоторых версиях OSF/1 испорчена
функция alloca(). Ситуацию
можно поправить удалением из
файла config.h строки, в
которой определяется
HAVE_ALLOCA.
Может также существовать
некорректный прототип для
функции alloca() в
/usr/include/alloca.h.
Предупреждение, вызванное этим,
можно игнорировать.
configure будет
автоматически использовать
следующие потоковые библиотеки:
--with-named-thread-libs="-lpthread -lmach -lexc
-lc".
При использовании gcc можно
попробовать запустить
configure следующей
строкой:
shell> CFLAGS=-D_PTHREAD_USE_D4 CXX=gcc CXXFLAGS=-O3 ./configure ...
Возникновение проблем с сигналами (MySQL неожиданно аварийно завершает работу при большой нагрузке), может означать, что вы обнаружили ошибку при работе операционной системы с потоками и сигналами. В данном случае можно запретить MySQL использовать сигналы путем конфигурации его следующим образом:
shell>CFLAGS=-DDONT_USE_THR_ALARM \CXXFLAGS=-DDONT_USE_THR_ALARM \./configure ...
Это не повлияет на
производительность MySQL, но
приведет к побочному эффекту,
который проявляется как
невозможность оборвать работу
клиента со спящим соединением
командами mysqladmin kill или
mysqladmin shutdown. Вместо
этого клиент завершит работу при
попытке послать следующую
команду.
При использовании gcc
2.95.2 может возникать следующая
ошибка компиляции:
sql_acl.cc:1456: Internal compiler error in `scan_region', at except.c:2566 Please submit a full bug report.
Чтобы выйти из положения в этом
случае, следует перейти в каталог
sql и выполнить
последнюю строку gcc
(просто выделите ее, например,
мышкой и вставьте в терминал),
изменив в ней -O3 на
-O0 (или добавьте
-O0 непосредственно
после gcc, если у вас в
строке компиляции отсутствует
какая-либо опция -O).
После выполнения указанных
действий вернитесь в каталог
верхнего уровня и запустите
make повторно.
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.
