Примечания к Solaris 2.7/2.8


На Solaris 2.7 и 2.8 можно нормально использовать бинарные файлы для Solaris 2.6. Большинство вопросов по работе с Solaris 2.6 относятся также и к Solaris 2.7 и 2.8.

Необходимо отметить, что MySQL версии 3.23.4 и последующих может автоматически определять новые версии Solaris и избегать описанных ниже проблем!

В Solaris 2.7/2.8 имеются некоторые ошибки во включаемых файлах. При использовании gcc вы можете получить следующие сообщения об ошибках:

/usr/include/widec.h:42: warning: 'getwc' redefined
/usr/include/wchar.h:326: warning: this is the location of the previous definition

В этом случае для исправления ошибки нужно выполнить следующие действия:

Скопируйте /usr/include/widec.h в .../lib/gcc-lib/os/gcc-version/include и измените строку с номером 41, содержащую:

#if !defined(lint) && !defined(__lint)

на

#if !defined(lint) && !defined(__lint) && !defined(getwc)

Есть и альтернативный вариант - отредактировать /usr/include/widec.h непосредственно на месте. В любом случае после исправления необходимо удалить config.cache и запустить configure повторно!

Если при запуске make выдаются сообщения об ошибках наподобие упомянутых ниже, причина в том, что программа configure не обнаружила файл curses.h (возможно, из-за ошибок в /usr/include/widec.h):

In file included from mysql.cc:50:
/usr/include/term.h:1060: syntax error before ','
/usr/include/term.h:1081: syntax error before ';'

Решить эту проблему можно одним из способов:

  • Конфигурировать с CFLAGS=-DHAVE_CURSES_H CXXFLAGS=-DHAVE_CURSES_H ./configure (эта запись должна быть цельной строкой, без пробелов).

  • Отредактировать /usr/include/widec.h, как описано выше, и перезапустить configure.

  • Удалить строку #define HAVE_TERM из config.h и запустить make повторно.

Если редактор связей не может обнаружить -lz при линковании вашей клиентской программы, то проблема, возможно, заключается в том, что файл libz.so установлен в /usr/local/lib. Данную проблему можно решить любым из приведенных выше способов:

  • Добавить /usr/local/lib к LD_LIBRARY_PATH.

  • Создать ссылку на libz.so из /lib.

  • Если используется Solaris 8, можно установить необязательную библиотеку zlib с CD-диска с дистрибутивом Solaris 8.

  • Конфигурировать MySQL с опцией --with-named-z-libs=no.