DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(mysql.info.gz) IBM-AIX

Info Catalog (mysql.info.gz) HP-UX 11 (mysql.info.gz) Other Unix Notes (mysql.info.gz) SunOS
 
 2.12.5.3 IBM-AIX notes
 ......................
 
 Automatic detection of `xlC' 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"
      export CPPFLAGS=$CFLAGS
      export CXXFLAGS=$CFLAGS
 
      ./configure --prefix=/usr/local \
                      --localstatedir=/var/mysql \
                      --sbindir='/usr/local/bin' \
                      --libexecdir='/usr/local/bin' \
                      --enable-thread-safe-client \
                      --enable-large-files
 
 The preceding options are used to compile the MySQL distribution that
 can be found at `http://www-frec.bull.com/'.
 
 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 are using `gcc' or `egcs' to compile MySQL, you _must_ use the
 `-fno-exceptions' flag, because the exception handling in `gcc'/`egcs'
 is not thread-safe!  (This is tested with `egcs' 1.1.)  There are also
 some known problems with IBM's assembler that may cause it to generate
 bad code when used with `gcc'.
 
 We recommend the following `configure' line with `egcs' and `gcc' 2.95
 on AIX:
 
      CC="gcc -pipe -mcpu=power -Wa,-many" \
      CXX="gcc -pipe -mcpu=power -Wa,-many" \
      CXXFLAGS="-felide-constructors -fno-exceptions -fno-rtti" \
      ./configure --prefix=/usr/local/mysql --with-low-memory
 
 The `-Wa,-many' option is necessary for the compile to be successful.
 IBM is aware of this problem but is in no hurry to fix it because of the
 workaround that is available.  We don't know if the `-fno-exceptions'
 is required with `gcc' 2.95, but because MySQL doesn't use exceptions
 and the option generates faster code, we recommend that you should
 always use it with `egcs' / `gcc'.
 
 If you get a problem with assembler code, try changing the `-mcpu=XXX'
 option to match your CPU. Typically `power2', `power', or `powerpc' may
 need to be used.  Alternatively, you might need to use `604' or `604e'.
 We are not positive but suspect that `power' would likely be safe most
 of the time, even on a power2 machine.
 
 If you don't know what your CPU is, execute a `uname -m' command.  It
 will produce a string that looks like `000514676700', with a format of
 `xxyyyyyymmss' where `xx' and `ss' are always `00', `yyyyyy' is a
 unique system ID and `mm' is the ID of the CPU Planar.  A chart of
 these values can be found at
 `http://www16.boulder.ibm.com/pseries/en_US/cmds/aixcmds5/uname.htm'.
 This will give you a machine type and a machine model you can use to
 determine what type of CPU you have.
 
 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:
 
      CFLAGS=-DDONT_USE_THR_ALARM CXX=gcc \
      CXXFLAGS="-felide-constructors -fno-exceptions -fno-rtti \
      -DDONT_USE_THR_ALARM" \
      ./configure --prefix=/usr/local/mysql --with-debug \
          --with-low-memory
 
 This doesn't affect the performance of MySQL, but has the side effect
 that you can't kill clients that are "sleeping" on a connection with
 `mysqladmin kill' or `mysqladmin shutdown'.  Instead, the client will
 die 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.
 
 For AIX 4.2.1 and `gcc', you have to make the following changes.
 
 After configuring, edit `config.h' and `include/my_config.h' and change
 the line that says this:
 
      #define HAVE_SNPRINTF 1
 
 to this:
 
      #undef HAVE_SNPRINTF
 
 And finally, in `mysqld.cc', you need to add a prototype for
 `initgroups()'.
 
      #ifdef _AIX41
      extern "C" int initgroups(const char *,int);
      #endif
 
 If you need to allocate a lot of memory to the `mysqld' process, it's
 not enough to just use `ulimit -d unlimited'. You may also have to
 modify `mysqld_safe' to add a line something like this:
 
      export LDR_CNTRL='MAXDATA=0x80000000'
 
 You can find more information about using a lot of memory at
 `http://publib16.boulder.ibm.com/pseries/en_US/aixprggd/genprogc/lrg_prg_support.htm'.
 
Info Catalog (mysql.info.gz) HP-UX 11 (mysql.info.gz) Other Unix Notes (mysql.info.gz) SunOS
automatically generated byinfo2html