如果使用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