GNU Info

Info Node: (mysql.info)MIT-pthreads

(mysql.info)MIT-pthreads


Prev: Compilation problems Up: Installing source
Enter node , (file) or (file)node

MIT-pthreads Notes
------------------

This section describes some of the issues involved in using
MIT-pthreads.

Note that on Linux you should NOT use MIT-pthreads but install
LinuxThreads!  Note: 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.
Note: Which OS.

   * 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 or not 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 or not MIT-pthreads is being used and will use Unix
     socket connections by default.  Because Unix sockets do not work
     under MIT-pthreads, 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 `--use-locking' option.

   * 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 the server down
     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.)


automatically generated by info2www version 1.2.2.9