Differences between revisions 11 and 12
Revision 11 as of 2012-12-25 19:57:02
Size: 2652
Editor: EricCovener
Comment:
Revision 12 as of 2013-06-30 17:11:39
Size: 2924
Editor: EricCovener
Comment:
Deletions are marked like this. Additions are marked like this.
Line 8: Line 8:
  * This is probably fixed in trunk (by using CP instead of install)
Line 19: Line 20:

== 2.4 specific info ==
 * If you compile mod_unixd as static, you also need this in server/Makefile +EXPORT_DIRS = $(top_srcdir)/include $(top_srcdir)/os/$(OS_DIR) $(top_srcdir)/modules/arch/unix/

Compiling on AIX

prerequisites

  • xlc and gcc both are reported to work
  • It's strongly suggested to install the coreutils RPM and be sure /opt/freeware/bin/install is high in your PATH and found by APR configure for BSD-compatible install.
    • covener believes this might solve failures to install DSO's.
    • This is probably fixed in trunk (by using CP instead of install)
  • Building a recent autoconf, m4, libtool, and zlib (and maybe PCRE?) to some shared prefix doesn't hurt (e.g. $HOME/gnu)
  • For something long forgotten, adding that prefix to your LIBPATH helps some stage of the build
    • export PATH=$HOME/gnu/bin:/opt/freeware/bin:$PATH
    • export LIBPATH=$LIBPATH:$HOME/gnu/

  • Setting CONFIG_SHELL=/usr/bin/bash can speed up ./configure significantly.
  • Old tarballs with an old config.guess/config.sub require AIX 6.1 and later to impersonate AIX 5.3
    • export ac_cv_build="powerpc-ibm-aix5.3.0.0"
    • export ac_cv_build_alias="powerpc-ibm-aix5.3.0.0"
  • To build from trunk, you'll need a working python. You can install gdbm and python2.6 from the "AIX Toolbox for Linux" RPMs, or from http://www.perzl.org/.

  • Grab a srclib/expat, or expat and expat-devel from http://www.perzl.org

  • Grab a srclib/pcre, or pcre and pcre-devel from http://www.perzl.org

2.4 specific info

  • If you compile mod_unixd as static, you also need this in server/Makefile +EXPORT_DIRS = $(top_srcdir)/include $(top_srcdir)/os/$(OS_DIR) $(top_srcdir)/modules/arch/unix/

64-bit

  • Re-configure after changing any of these.
  • Set both OBJECT_MODE=64 and CC="xlc_r -q64"
  • Sometimes you need to also set:
    • export AR="ar -X64"
    • export lt_cv_path_NM="/usr/bin/nm -B -X64"
  • If you're building with SSL:
    • install pkg-config from perzl or toolbox
    • install openssl and openssl-devel from perzl or toolbox
    • ???

  • If you use a bundled expat, you might find the link of apr-util fails. The following change might help:
    • perl -p -i.orig -e \"s#[^ ]+libexpat.la#-L$curdir/srclib/apr-util/xml/expat/lib/ -lexpat#; s#[^ ]+libapr-1.la##;\" $PWD/srclib/apr-util/Makefile

AIX layout discussion

Ideal:

  • man pages in /usr/share/man/...
  • read only, system independent files in /opt/httpd/...
  • system dependent files in /var/httpd/...

so:

  • no files in /usr/local
  • /opt/httpd for binaries and static files (to be a USR part of an installp package)
  • /var/httpd as base for files that are system dependent and may be modified
  • /var/httpd/etc as base for config files
  • /usr/share/man for the man pages so that man httpd-foo works directly
  • intention is that using /opt, /var, installation will directly support system WPARs
  • /etc/httpd is moved to /var/httpd/etc so that only one filesystem is needed. A symbolic link could be placed in /etc

AIXPlatform (last edited 2014-07-16 17:16:31 by EricCovener)