ITEEDU

2.12.5.7. SGI Irix注意事项

如果使用Irix 6.5.3或更新版,如果用拥有CAP_SCHED_MGT权限的用户(例如root)运行mysqld或用下面的shell命令给mysqld服务器该权限,mysqld能够创建线程:

chcap "CAP_SCHED_MGT+epi" /opt/mysql/libexec/mysqld

可能需要在运行configure后且在编译前定义“config.h”里面的一些符号。

在一些Irix实现中,alloca()函数被破坏。如果mysqld服务器死于一些SELECT语句,把“config.h”定义HAVE_ALLOC和HAVE_ALLOCA_H的行删除即可。如果mysqladmin create不工作,把“config.h”定义HAVE_READDIR_R的行删除,你也可能必须删除HAVE_TERM_H行。

SGI推荐将本页上的所有补丁作为一个整体来安装:

http://support.sgi.com/surfzone/patches/patchset/6.2_indigo.rps.html

至少,应该安装最新的核心卷(rollup)、最新的rld卷和最新的libc卷。

很明确,对于pthreads支持,需要本页上所有的POSIX补丁:

http://support.sgi.com/surfzone/patches/patchset/6.2_posix.rps.html

如果在编译“mysql.cc”时,遇到类似于下面的错误:

"/usr/include/curses.h", line 82: error(1084):
invalid combinati在of type

那么应在MySQL源码树的顶级目录输入下列命令:

extra/replace bool curses_bool < /usr/include/curses.h > include/curses.h
make

应该也有安排上的问题报告。如果只有一个线程正在运行,事情会变慢的。通过启动另外一个客户端来避免它,这可以导致此后其它线程的执行速度增加2到10倍。这是Irix线程难以理解的问题;可能必须临时准备找出解决方案直到它能被修正。

 

如果你正在用gcc编译,可以使用下列configure命令:

 

CC=gcc CXX=gcc CXXFLAGS=-O3 \
./configure --prefix=/usr/local/mysql --enable-thread-safe-client \
    --with-named-thread-libs=-lpthread

在用原生Irix C和C++编译器7.3.1.2的Irix 6.5.11上,下面的项工作:

CC=cc CXX=CC CFLAGS='-O3 -n32 -TARG:platform=IP22 -I/usr/local/include \
-L/usr/local/lib' CXXFLAGS='-O3 -n32 -TARG:platform=IP22 \
-I/usr/local/include -L/usr/local/lib' \
./configure --prefix=/usr/local/mysql --with-innodb --with-berkeley-db \
    --with-libwrap=/usr/local \
    --with-named-curses-libs=/usr/local/lib/libncurses.a