( MIT-pthreads

Info Catalog ( Compilation problems ( Installing source ( Windows source build
 2.8.5 MIT-pthreads Notes
 This section describes some of the issues involved in using
 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
 After downloading, extract this source archive into the top level of the
 MySQL source directory. It will create a new subdirectory named
    * 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/ 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/ 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 ( Compilation problems ( Installing source ( Windows source build
automatically generated byinfo2html