В Autoconf пропущено автоматическое определение xlC, поэтому при компиляции MySQL следует задавать команду configure наподобие следующей (в этом примере используется компилятор IBM):
export CC="xlc_r -ma -O3 -qstrict -qoptimize=3 -qmaxmem=8192 " export CXX="xlC_r -ma -O3 -qstrict -qoptimize=3 -qmaxmem=8192" export CFLAGS="-I /usr/local/include" export LDFLAGS="-L /usr/local/lib" export CPPFLAGS=$CFLAGS export CXXFLAGS=$CFLAGS
./configure --prefix=/usr/local \ --localstatedir=/var/mysql \ --sysconfdir=/etc/mysql \ --sbindir='/usr/local/bin' \ --libexecdir='/usr/local/bin' \ --enable-thread-safe-client \ --enable-large-files
Здесь указаны опции, используемые для компиляции дистрибутива MySQL, который находится по адресу http://www-frec.bull.com/.
Если в приведенных выше строках конфигурации вы изменяете -O3 на -O2, следует также удалить опцию -qstrict (это ограничение компилятора IBM C).
При использовании gcc или egcs для компиляции MySQL следует применять флаг -fno-exceptions, потому что обработчик исключительных ситуаций в gcc/egcs
не безопасен в реализации потоков! (Это проверено на egcs 1.1.) Существуют также некоторые известные проблемы с ассемблером IBM, которые могут привести к генерации неудачного кода при использовании его с gcc.
Для использования egcs или gcc 2.95 на AIX мы рекомендуем следующую строку конфигурирования:
CC="gcc -pipe -mcpu=power -Wa,-many" \ CXX="gcc -pipe -mcpu=power -Wa,-many" \ CXXFLAGS="-felide-constructors -fno-exceptions -fno-rtti" \ ./configure --prefix=/usr/local/mysql --with-low-memory
Для того чтобы компиляция была успешной, здесь необходимо указывать ключи -Wa,-many. В IBM известно о существовании данной проблемы, но ее специалисты не торопятся исправлять ошибку, поскольку существует способ обхода. Нам неизвестно, необходимо ли использование -fno-exceptions с gcc
2.95, но поскольку в MySQL нет обработчика исключительных ситуаций, а эта опция способствует созданию более быстрого кода, мы рекомендуем всегда использовать ее с egcs/gcc.