科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道4.11.13 SCO 注意事项

4.11.13 SCO 注意事项

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

当前的移植仅在“sco3.2v5.0.4”和“sco3.2v5.0.5”系统上被测试,在“sco 3.2v4.2”一个移植也有很大进展。

作者:天极软件 来源:天极软件 2008年1月16日

关键字: MySQL MySQL 5 SCO

  • 评论
  • 分享微博
  • 分享邮件

当前的移植仅在“sco3.2v5.0.4”和“sco3.2v5.0.5”系统上被测试,在“sco 3.2v4.2”一个移植也有很大进展。

此时在OpenServer上推荐的编译器是gcc 2.95.2,用它你应该能编译MySQL

CC=gcc CXX=gcc ./configure ... (options)
  1. 对于OpenServer 5.0.X,你需要在Skunkware 95上使用GDS(95q4c),这是必要的,因为在Skunkware 97上的GNU gcc 2.7.2 没有GNU as。你也可以使用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/
    
  2. 对该产品和开发系统,你需要GCC 2.5.?的移植。他们在这个SCO UNIX版本上是必需的,你不能只使用GCC Dev系统。
  3. 你应该得到 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得到一个预编译的包。
  4. 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开发系统,没有它,你正缺少所需的库和链接器。
  5. 为了在你的系统上构造FSU Pthreads,做下列工作:
    1. “thread/src”目录下运行./configure并且选择SCO OpenServer选项。这个命令拷贝“Makefile.SCO5”“Makefile”
    2. 运行make
    3. 为了在缺省的“/usr/include”目录安装,作为root登录,然后cd 到“thread/src”目录,并运行make install
  6. 记得在制作MySQL时要使用GNU make
  7. 在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)
    
    
  8. 如果你不是作为root启动safe_mysqld,你将可能每进程只有缺省的110个打开文件。mysqld将在日志文件写下关于此的注解。
  9. 用SCO 3.2 V5.0.5,你应该使用一个FSU Pthreads版本3.5c或更新。下列configure命令应该工作:
    shell> CC="gcc -belf" ./configure --prefix=/usr/local/mysql --disable-shared
    
  10. 用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的版本)链接了GNU malloc,如果你甭到内存使用的问题,确定“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

这时如果他们用icccc编译,Perl动态装载器(dynaloader)将不装载DBI模块。

当用cc编译时,Perl工作得最好。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章