(mysql.info) mit-pthreads
Info Catalog
(mysql.info) compilation-problems
(mysql.info) installing-source
(mysql.info) 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. See linux.
If your system does not provide native thread support, you should build
MySQL using the MIT-pthreads package. This includes older FreeBSD
systems, SunOS 4.x, Solaris 2.4 and earlier, and some others. See
which-os.
MIT-pthreads is not part of the MySQL 5.0 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 creates 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 do not know
whether MIT-pthreads is being used and use Unix socket file
connections by default. Because Unix socket files do not work
under MIT-pthreads on some platforms, this means you need to use
-h or -host with a value other than `localhost' 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, but that is not recommended,
anyway.
* 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 problem is to kill the `mysqld' server and
restart it. This has happened to us only when we have forcibly
stopped the server and restarted it immediately.
* With MIT-pthreads, the `sleep()' system call isn't interruptible
with `SIGINT' (break). This is noticeable only 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 might 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 have not been able to make `readline' work with MIT-pthreads.
(This is not necessary, but may be of interest to some.)
Info Catalog
(mysql.info) compilation-problems
(mysql.info) installing-source
(mysql.info) windows-source-build
automatically generated byinfo2html