If you are using Irix 6.5.3 or newer,
mysqld is able to create threads only if
you run it as a user that has CAP_SCHED_MGT
privileges (such as root
) or if you give
the mysqld server this privilege with the
following shell command:
chcap "CAP_SCHED_MGT+epi" /opt/mysql/libexec/mysqld
You may have to undefine some symbols in
config.h
after running
configure and before compiling.
In some Irix implementations, the alloca()
function is broken. If the mysqld server
dies on some SELECT
statements,
remove the lines from config.h
that
define HAVE_ALLOC
and
HAVE_ALLOCA_H
. If mysqladmin
create does not work, remove the line from
config.h
that defines
HAVE_READDIR_R
. You may have to remove the
HAVE_TERM_H
line as well.
SGI recommends that you install all the patches on this page as a set:
http://support.sgi.com/surfzone/patches/patchset/6.2_indigo.rps.html
At the very minimum, you should install the latest kernel
rollup, the latest rld
rollup, and the
latest libc
rollup.
You definitely need all the POSIX patches on this page, for pthreads support:
http://support.sgi.com/surfzone/patches/patchset/6.2_posix.rps.html
If you get the something like the following error when
compiling mysql.cc
:
"/usr/include/curses.h", line 82: error(1084): invalid combination of type
Type the following in the top-level directory of your MySQL source tree:
extra/replace bool curses_bool < /usr/include/curses.h > include/curses.h make
There have also been reports of scheduling problems. If only one thread is running, performance is slow. Avoid this by starting another client. This may lead to a two-to-tenfold increase in execution speed thereafter for the other thread. This is a poorly understood problem with Irix threads; you may have to improvise to find solutions until this can be fixed.
If you are compiling with gcc, you can use the following configure command:
CC=gcc CXX=gcc CXXFLAGS=-O3 \ ./configure --prefix=/usr/local/mysql --enable-thread-safe-client \ --with-named-thread-libs=-lpthread
On Irix 6.5.11 with native Irix C and C++ compilers ver. 7.3.1.2, the following is reported to work
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
User Comments
mysql up to 3.23.53 are not longer working on
irix after upgrading from irix-6.5.17 to 6.5.18.
statements with the word delayed like
"INSERT delayed into xxx VALUES (1)"
cause infinit hang of mysqld. Solution: save a copy
of libpthread.so from irix-6.5.17 and let a variable
LD_LIBRARYN32_PATH point to this location
works great (irix-6.5.17 with native compilers
7.3.1.3m) with
CC=cc -n32
CFLAGS=CXXFLAGS=-mips4 -O -OPT:Olimit=0
but i prevent the libraries lcrypt, lnsl, ldl and lgen
to be linked to the binaries, they are not
necessary at all. Don't use
libpthread.so of irix-6.5.18.
NOTE: If you are running IRIX 6.5.18, 6.5.19, or 6.5.20 mysqld may experience pthread deadlocks unless you install patch 5316.
Add your own comment.