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