В настоящее время пакет тестировался только на системах ``sco3.2v5.0.4'' и ``sco3.2v5.0.5''. Заметный прогресс отмечается в отношении пакета на ``sco3.2v4.2''.
В настоящее время в качестве компилятора под OpenServer мы рекомендуем gcc 2.95.2. Используя его, можно скомпилировать MySQL при помощи следующей строки:
CC=gcc CXX=gcc ./configure ... (опции)
На OpenServer 5.0.X необходимо использовать gcc-2.95.2p1 или более свежую версию от Skunkware - https://www.caldera.com/skunkware/ и выбрать пакет для OpenServer или получить его по ftp по адресу ftp2.caldera.com в каталоге pub/skunkware/osr5/devtools/gcc.
Следует использовать портированную версию GCC 2.5.x для этого продукта и систему Development. Они необходимы для данной версии Caldera (SCO) Unix. Использовать просто систему GCC Dev нельзя.
Необходимо загрузить пакет FSU Pthreads и установить его. Его можно найти по адресу https://www.cs.wustl.edu/~schmidt/ACE_wrappers/FSU-threads.tar.gz. Можно также получить уже скомпилированный пакет на https://www.mysql.com/Downloads/SCO/FSU-threads-3.5c.tar.gz.
FSU Pthreads могут быть скомпилированы на Caldera (SCO) Unix 4.2 c tcpip. На OpenServer 3.0 или Open Desktop 3.0 (OS 3.0 ODT 3.0) с использованием Caldera (SCO) Development System вам понадобится хороший пакет GCC 2.5.x ODT или OS 3.0. Однако при отсутствии хорошо портированной версии возникнет масса проблем. Для портирования этой программы требуется система SCO Unix Development. Без нее у вас не будет необходимых библиотек и редактора связей.
-
Для сборки FSU Pthreads в своей системе нужно выполнить следующие действия:
Запустите
./configure
в каталогеthreads/src
и выберите опцию SCO OpenServer. Эта команда скопируетMakefile.SCO5
вMakefile
.Запустите
make
.Для установки в каталог по умолчанию -
/usr/include
войдите в систему с правами пользователяroot
, перейдите в каталогthread/src
и запуститеmake install
.
Не забудьте использовать GNU
make
при сборке MySQL.При запуске
safe_mysqld
не с правами пользователяroot
вы получите разрешение открывать одновременно только 110 файлов на процесс (это значение установлено по умолчанию).mysqld
сообщит об этом в файле протокола.-
На SCO 3.2V5.0.5 вы должны использовать FSU Pthreads версии 3.5c или выше, а также gcc 2.95.2 или более новую версию! Приведенная ниже команда
configure
должна выполняться корректно:shell> ./configure --prefix=/usr/local/mysql --disable-shared
-
На SCO 3.2V4.2 следует использовать FSU Pthreads версии 3.5c или выше. Приведенная ниже команда
configure
должна выполняться корректно:shell> CFLAGS="-D_XOPEN_XPG4" CXX=gcc CXXFLAGS="-D_XOPEN_XPG4" \ ./configure \ --prefix=/usr/local/mysql \ --with-named-thread-libs="-lgthreads -lsocket -lgen -lgthreads" \ --with-named-curses-libs="-lcurses"
У вас могут возникнуть проблемы с некоторыми включаемыми файлами. В таком случае новые, специфические для SCO включаемые файлы можно найти по адресу https://www.mysql.com/Downloads/SCO/SCO-3.2v4.2-includes.tar.gz. Этот архив следует распаковать в каталог дерева исходных текстов MySQL с именем
include
Замечания по разработке под Caldera (SCO):
MySQL должен автоматически обнаруживать FSU Pthreads и линковать
mysqld
с использованием-lgthreads -lsocket -lgthreads
.Библиотеки разработки в Caldera (SCO) реентрантны в FSU Pthreads. Специалисты Caldera утверждают, что библиотечные функции Caldera реентрантны, поэтому они должны быть реентрантны с FSU Pthreads. FSU Pthreads на OpenServer пытаются использовать SCO-схему, чтобы создать реентрантные библиотеки.
FSU Pthreads (по крайней мере версия на https://www.mysql.com/) поставляется как линкованная с GNU
malloc
. При возникновении проблем с использованием памяти, убедитесь, чтоgmalloc.o
включен вlibgthreads.a
иlibgthreads.so
.В FSU Pthreads используют pthread следующие системные вызовы:
read()
,write()
,getmsg()
,connect()
,accept()
,select()
, andwait()
.CSSA-2001-SCO.35.2 (в списках заказов патч упоминается как патч по системе безопасности erg711905-dscr_remap) (версия 2.0.0) портит FSU-потоки и вызывает неустойчивую работу
mysqld
. Если вы собираетесь запускатьmysqld
на машине с установленным OpenServer 5.0.6, этот патч применять не следует.
Если необходимо установить DBI на Caldera (SCO), следует отредактировать
Makefile
в DBI-xxx и каждом подкаталоге.
Для приведенного ниже кода подразумевается использование gcc 2.95.2 или более новой версии:
СТАРЫЙ: НОВЫЙ: CC = cc CC = gcc CCCDLFLAGS = -KPIC -W1,-Bexport CCCDLFLAGS = -fpic CCDLFLAGS = -wl,-Bexport CCDLFLAGS = LD = ld LD = gcc -G -fpic LDDLFLAGS = -G -L/usr/local/lib LDDLFLAGS = -L/usr/local/lib LDFLAGS = -belf -L/usr/local/lib LDFLAGS = -L/usr/local/lib LD = ld LD = gcc -G -fpic OPTIMISE = -Od OPTIMISE = -O1 OLD: CCCFLAGS = -belf -dy -w0 -U M_XENIX -DPERL_SCO5 -I/usr/local/include НОВЫЙ: CCFLAGS = -U M_XENIX -DPERL_SCO5 -I/usr/local/include
Это вызвано тем, что dynaloader
из Perl не загружает DBI-модулей, если они
скомпилированы компиляторами icc
или cc
.
Perl будет работать лучше, если его скомпилировать компилятором cc
.