Appendix E Porting to Other Systems
* debugging-server Debugging a MySQL Server
* debugging-client Debugging a MySQL Client
* the-dbug-package The DBUG Package
* rts-threads Comments about RTS Threads
* thread-packages Differences Between Thread Packages
This appendix helps you port MySQL to other operating systems. Do check
the list of currently supported operating systems first. See
which-os. If you have created a new port of MySQL, please let us know
so that we can list it here and on our Web site
(`http://www.mysql.com/'), recommending it to other users.
Note: If you create a new port of MySQL, you are free to copy and
distribute it under the GPL license, but it does not make you a
copyright holder of MySQL.
A working POSIX thread library is needed for the server. On Solaris 2.5
we use Sun PThreads (the native thread support in 2.4 and earlier
versions is not good enough), on Linux we use LinuxThreads by Xavier
The hard part of porting to a new Unix variant without good native
thread support is probably to port MIT-pthreads. See
`mit-pthreads/README' and Programming POSIX Threads
Up to MySQL 4.0.2, the MySQL distribution included a patched version of
Chris Provenzano's Pthreads from MIT (see the MIT Pthreads Web page at
`http://www.mit.edu/afs/sipb/project/pthreads/' and a programming
introduction at `http://www.mit.edu:8001/people/proven/IAP_2000/').
These can be used for some operating systems that do not have POSIX
threads. See mit-pthreads.
It is also possible to use another user level thread package named FSU
Pthreads (see `http://moss.csc.ncsu.edu/~mueller/pthreads/'). This
implementation is being used for the SCO port.
See the `thr_lock.c' and `thr_alarm.c' programs in the `mysys'
directory for some tests/examples of these problems.
Both the server and the client need a working C++ compiler. We use
`gcc' on many platforms. Other compilers that are known to work are
SPARCworks, Sun Forte, Irix `cc', HP-UX `aCC', IBM AIX `xlC_r'), Intel
`ecc/icc' and Compaq `cxx').
To compile only the client use `./configure --without-server'.
There is currently no support for only compiling the server, nor is it
likely to be added unless someone has a good reason for it.
If you want/need to change any `Makefile' or the configure script you
also need GNU Automake and Autoconf. See installing-source-tree.
All steps needed to remake everything from the most basic files.
/bin/rm -f config.cache
./configure --with-debug=full --prefix='your installation directory'
# The makefiles generated above need GNU make 3.75 or newer.
# (called gmake below)
gmake clean all install init-db
If you run into problems with a new port, you may have to do some
debugging of MySQL! See debugging-server.
* Before you start debugging `mysqld', first get the test programs
`mysys/thr_alarm' and `mysys/thr_lock' to work. This ensures that your
thread installation has even a remote chance to work!
automatically generated byinfo2html