DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) ibm-aix

Info Catalog (mysql.info) hp-ux-11-x (mysql.info) other-unix-notes (mysql.info) 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
 produces 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 gives 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 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.
 
 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'.
 
 Users of AIX 4.3 should use `gmake' instead of the `make' utility
 included with AIX.
 
Info Catalog (mysql.info) hp-ux-11-x (mysql.info) other-unix-notes (mysql.info) sunos
automatically generated byinfo2html