Building MySQL from Source  /  Notes on Installing MySQL on AIX from Source

Chapter 8 Notes on Installing MySQL on AIX from Source

General notes on building MySQL from source on IBM AIX:

  • Automatic xlC detection is missing from Autoconf, so a number of variables need to be set before running configure. The following example uses the IBM compiler:

    export CC="xlc_r -ma -O3 -qstrict -qoptimize=3 -qmaxmem=8192 "
    export CXX="xlC_r -ma -O3 -qstrict -qoptimize=3 -qmaxmem=8192"
    export CFLAGS="-I /usr/local/include"
    export LDFLAGS="-L /usr/local/lib"
    ./configure --prefix=/usr/local \
                    --localstatedir=/var/mysql \
                    --sbindir='/usr/local/bin' \
                    --libexecdir='/usr/local/bin' \
                    --enable-thread-safe-client \

    The preceding options are used to compile the MySQL distribution that can be found at

  • If you change the -O3 to -O2 in the preceding configure line, you must also remove the -qstrict option. This is a limitation in the IBM C compiler.

  • If you compile MySQL with gcc, you must use the -fno-exceptions flag because the exception handling in gcc is not thread-safe. There are also some known problems with IBM's assembler that may cause it to generate bad code when used with gcc.

  • If you have problems with signals (MySQL dies unexpectedly under high load), you may have found an OS bug with threads and signals. In this case, you can tell MySQL not to use signals by configuring as follows:

    CXXFLAGS="-felide-constructors -fno-exceptions -fno-rtti \
    ./configure --prefix=/usr/local/mysql --with-debug \

    This does not affect the performance of MySQL, but has the side effect that you cannot kill clients that are sleeping on a connection with mysqladmin kill or mysqladmin shutdown. Instead, the client dies when it issues its next command.

  • On some versions of AIX, linking with libbind.a makes getservbyname() dump core. This is an AIX bug and should be reported to IBM.