2.6.6.7 Примечания к Alpha-DEC-OSF/1
В случае проблем компиляции при установленных 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
повторно.