(mysql.info.gz) MIT-pthreads
Info Catalog
(mysql.info.gz) Compilation problems
(mysql.info.gz) Installing source
(mysql.info.gz) Windows source build
2.8.5 MIT-pthreads Notes
------------------------
This section describes some of the issues involved in using
MIT-pthreads.
On Linux, you should _not_ use MIT-pthreads. Use the installed
LinuxThreads implementation instead. Linux.
If your system does not provide native thread support, you will need to
build MySQL using the MIT-pthreads package. This includes older
FreeBSD systems, SunOS 4.x, Solaris 2.4 and earlier, and some others.
Which OS.
Beginning with MySQL 4.0.2, MIT-pthreads is no longer part of the
source distribution. If you require this package, you need to download
it separately from
`http://www.mysql.com/Downloads/Contrib/pthreads-1_60_beta6-mysql.tar.gz'
After downloading, extract this source archive into the top level of the
MySQL source directory. It will create a new subdirectory named
`mit-pthreads'.
* On most systems, you can force MIT-pthreads to be used by running
`configure' with the `--with-mit-threads' option:
shell> ./configure --with-mit-threads
Building in a non-source directory is not supported when using
MIT-pthreads because we want to minimize our changes to this code.
* The checks that determine whether to use MIT-pthreads occur only
during the part of the configuration process that deals with the
server code. If you have configured the distribution using
`--without-server' to build only the client code, clients will not
know whether MIT-pthreads is being used and will use Unix socket
connections by default. Because Unix socket files do not work
under MIT-pthreads on some platforms, this means you will need to
use `-h' or `--host' when you run client programs.
* When MySQL is compiled using MIT-pthreads, system locking is
disabled by default for performance reasons. You can tell the
server to use system locking with the `--external-locking' option.
This is needed only if you want to be able to run two MySQL
servers against the same data files, which is not recommended.
* Sometimes the pthread `bind()' command fails to bind to a socket
without any error message (at least on Solaris). The result is
that all connections to the server fail. For example:
shell> mysqladmin version
mysqladmin: connect to server at '' failed;
error: 'Can't connect to mysql server on localhost (146)'
The solution to this is to kill the `mysqld' server and restart it.
This has only happened to us when we have forced down the server
and done a restart immediately.
* With MIT-pthreads, the `sleep()' system call isn't interruptible
with `SIGINT' (break). This is only noticeable when you run
`mysqladmin --sleep'. You must wait for the `sleep()' call to
terminate before the interrupt is served and the process stops.
* When linking, you may receive warning messages like these (at
least on Solaris); they can be ignored:
ld: warning: symbol `_iob' has differing sizes:
(file /my/local/pthreads/lib/libpthread.a(findfp.o) value=0x4;
file /usr/lib/libc.so value=0x140);
/my/local/pthreads/lib/libpthread.a(findfp.o) definition taken
ld: warning: symbol `__iob' has differing sizes:
(file /my/local/pthreads/lib/libpthread.a(findfp.o) value=0x4;
file /usr/lib/libc.so value=0x140);
/my/local/pthreads/lib/libpthread.a(findfp.o) definition taken
* Some other warnings also can be ignored:
implicit declaration of function `int strtoll(...)'
implicit declaration of function `int strtoul(...)'
* We haven't gotten `readline' to work with MIT-pthreads. (This
isn't needed, but may be interesting for someone.)
Info Catalog
(mysql.info.gz) Compilation problems
(mysql.info.gz) Installing source
(mysql.info.gz) Windows source build
automatically generated byinfo2html