Appendix E. Porting to Other Systems
This appendix helps you port MySQL to other operating systems. Do
check the list of currently supported operating systems first. See
Section 2.1.1, “Operating Systems Supported by MySQL”. 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
(https://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 Leroy, <[email protected]>
.
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 (https://www.humanfactor.com/pthreads/).
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 https://www.mit.edu/afs/sipb/project/pthreads/
and a programming introduction at
https://www.mit.edu:8001/people/proven/IAP_2000/).
These can be used for some operating systems that do not have POSIX
threads. See Section 2.8.5, “MIT-pthreads Notes”.
It is also possible to use another user level thread package named
FSU Pthreads (see
https://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
Section 2.8.3, “Installing from the Development Source Tree”.
All steps needed to remake everything from the most basic files.
/bin/rm */.deps/*.P
/bin/rm -f config.cache
aclocal
autoheader
aclocal
automake
autoconf
./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 Section E.1, “Debugging a MySQL Server”.
Note: 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!