当前的移植仅在“sco3.2v5.0.4”和“sco3.2v5.0.5”系统上被测试,在“sco 3.2v4.2”一个移植也有很大进展。
此时在OpenServer上推荐的编译器是gcc 2.95.2,用它你应该能编译MySQL:
CC=gcc CXX=gcc ./configure ... (options)
- 对于OpenServer 5.0.X,你需要在Skunkware 95上使用GDS(95q4c),这是必要的,因为在Skunkware 97上的GNU
gcc2.7.2 没有GNUas。你也可以使用egcs1.1.2或更新:http://www.egcs.com/。如果你正在使用egcs1.1.2,你必须执行下列命令:shell> cp -p /usr/include/pthread/stdtypes.h /usr/local/lib/gcc-lib/i386-pc-sco3.2v5.0.5/egcs-2.91.66/include/pthread/
- 对该产品和开发系统,你需要GCC 2.5.?的移植。他们在这个SCO UNIX版本上是必需的,你不能只使用GCC Dev系统。
- 你应该得到 FSU Pthreads 包并且首先安装它,它可在http://www.cs.wustl.edu/~ schmidt/ACE_wrappers/FSU-threads.tar.gz找到。你也可以从ftp://www.mysql.com/pub/mysql/Downloads/SCO/FSU-threads-3.5c.tar.gz得到一个预编译的包。
- FSU Pthreads能用带tcpip的SCO UNIX 4.2编译,或OpenServer 3.0或Open Desktop 3.0(OS 3.0 ODT 3.0),安装带有使用一个GCC 2.5.X ODT的SCO开发系统,或对OS 3.0你将需要一个GCC 2.5.?的良好移植。 没有一个良好的移植会有很多问题。对这个产品的移植需要SCO UNIX开发系统,没有它,你正缺少所需的库和链接器。
- 为了在你的系统上构造FSU Pthreads,做下列工作:
- 在“thread/src”目录下运行
./configure并且选择SCO OpenServer选项。这个命令拷贝“Makefile.SCO5”到“Makefile”。 - 运行
make。 - 为了在缺省的“/usr/include”目录安装,作为root登录,然后
cd到“thread/src”目录,并运行make install。
- 在“thread/src”目录下运行
- 记得在制作MySQL时要使用GNU
make。 - 在OSR 5.0.5上,你应该使用下列配置命令行:
shell> CC="gcc -DSCO" CXX="gcc -DSCO" ./configure
需要
-DSCO帮助配置正确检测一些线程函数。如果你忘记-DSCO,在编译时,你将得到下列错误消息:my_pthread.c: In function `my_pthread_mutex_init': my_pthread.c:374: `pthread_mutexattr_default' undeclared (first use this function)
- 如果你不是作为root启动
safe_mysqld,你将可能每进程只有缺省的110个打开文件。mysqld将在日志文件写下关于此的注解。 - 用SCO 3.2 V5.0.5,你应该使用一个FSU Pthreads版本3.5c或更新。下列
configure命令应该工作:shell> CC="gcc -belf" ./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 --with-debug --prefix=/usr/local/mysql --with-named-thread-libs="-lgthreads -lsocket -lgen -lgthreads" --with-named-curses-libs="-lcurses"你可能得到一些包括文件的某些问题。在这种情况下,你能在ftp://www.mysql.com/pub/mysql/Downloads/SCO/SCO-3.2v4.2-includes.tar.gz找到新的SCO特定的包括文件。你应该在你的MySQL源代码树的“include”目录下打开这个文件。
SCO开发注意事项:
- MySQL应该自动地检测FSU Pthreads并且用
-lgthreads -lsocket -lgthreads选项链接mysqld。 - SCO开发库在FSU Pthreads是重入(reentrant)的。SCO宣称它的库函数是重入的,因此他们一定在FSU Pthreads中是重入的。在 OpenServer上的 FSU Pthreads 试图使用SCO方案制作重入的库。
- FSU Pthreads(至少在
www.mysql.com的版本)链接了GNUmalloc,如果你甭到内存使用的问题,确定“gmalloc.o”被包含在“libgthreads.a”和“libgthreads.so”中。 - 在FSU Pthreads中,下列系统调用是pthreads感知的:
read()、write()、getmsg()、connect()、accept()、select()和wait()。
如果你想要在SCO上安装DBI,你必须编辑在DBI-xxx和每个子目录下的“Makefiles”:
OLD: NEW: CC = cc CC = gcc -belf CCCDLFLAGS = -KPIC -W1,-Bexport CCCDLFLAGS = -fpic CCDLFLAGS = -wl,-Bexport CCDLFLAGS = LD = ld LD = gcc -belf -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 -belf -G -fpic OPTIMISE = -Od OPTIMISE = -O1 OLD: CCCFLAGS = -belf -dy -w0 -U M_XENIX -DPERL_SCO5 -I/usr/local/include NEW: CCFLAGS = -U M_XENIX -DPERL_SCO5 -I/usr/local/include
这时如果他们用icc或cc编译,Perl动态装载器(dynaloader)将不装载DBI模块。
当用cc编译时,Perl工作得最好。

用户评论