README.platforms revision 353a646825b211670860c41f5b5e508e76698522
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye Apache HTTP Server
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye Platform specific notes:
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye ------------------------
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye================
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye Darwin (OS X):
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye Apache 2 relies heavily on the use of autoconf and libtool to
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye provide a build environment. Darwin provides these tools as part
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye of the Developers Tools package. Under Darwin, however, GNUlibtool
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye is installed as 'glibtool' to avoid conflicting with the Darwin
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye 'libtool' program. Apache 2 knows about this so that's not a
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye As of OS X 10.2 (Jaguar), the bundled versions work perfectly. Partly
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye this is due to the fact that /bin/sh is now 'bash' and not 'zsh' as
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye well as the fact that the bundled versions are up-to-date:
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye autoconf 2.52 and (g)libtool 1.4.2.
fcb68bae47907ba23c545e379c81c3ee6e19f778Lubos Kosco You will note that GNU libtool should actually be installed as
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye glibtool, to avoid conflict with a Darwin program of the same
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco There have been some reports that autoconf 2.52 prevents Apache's
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye build system from correctly handling passing multi-value envvars
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco to the build system (eg: CFLAGS="-g -O3" ./configure), causing
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye errors. Use of bash does not seem to help in this situation. If
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye this affects you, downgrading to autoconf 2.13 (which is installed
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye on Darwin) will help.
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye With Leopard (at least up to 10.5.2), when running configure
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye you will likely see errors such as:
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye rm: conftest.dSYM: is a directory
b6e48c95305391ca75f99817def61159230969faTrond Norbye This is a known issue and will be fixed in a later version of the
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye autoconf suite. These errors can be safely ignored.
a90c307564052f582357f820eadec4390e6a86c6Trond Norbye For later versions of OS X, (10.8 and 10.9), be sure to have Xcode
a90c307564052f582357f820eadec4390e6a86c6Trond Norbye AND Xcode Command Line Tools installed. httpd will built both with
a90c307564052f582357f820eadec4390e6a86c6Trond Norbye gcc and clang.
cd1fe74964370b3f6b4ae79635fd1074f7a94d3dSven-Kristofer Pilz autoconf 2.52 creates scripts that are incompatible with the Posix
a90c307564052f582357f820eadec4390e6a86c6Trond Norbye shell implementation (/bin/sh) on FreeBSD. Be sure to use v2.13
760369283613b2d5c2449cdc5b7a74e16d929750Trond Norbye of autoconf.
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco Threaded MPMs are not supported on FreeBSD 4.x. Current releases of
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco FreeBSD 5.x (5.2 or later) support threaded MPMs correctly. You must pass
a90c307564052f582357f820eadec4390e6a86c6Trond Norbye '--enable-threads=yes' to APR's configure in order to enable threads.
9f5a7adefcd3e07345b92f0deb1ed1c30df6eec2Trond Norbye Additionally, you must use libthr or libkse via libmap.conf as the default
a90c307564052f582357f820eadec4390e6a86c6Trond Norbye libc_r is still broken as of this writing. Please consult the man page for
760369283613b2d5c2449cdc5b7a74e16d929750Trond Norbye libmap.conf for more details about configuring libthr or libkse.
cd1fe74964370b3f6b4ae79635fd1074f7a94d3dSven-Kristofer Pilz================
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye The dlopen() system call in HP-UX has problems when loading/unloading
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye C++ modules. The problem can be resolved by using shl_load() instead
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye of dlopen(). This is fixed in the Apache 2.0.44 release.
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye To enable loading of C++ modules, the httpd binary has to be linked with
5e0ccd8bb84a766f65680b4cc1e43b356d1d78b8Trond Norbye the following libraries :
5e0ccd8bb84a766f65680b4cc1e43b356d1d78b8Trond Norbye HP-UX (11.0 / 11i):
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye When using shl_load : "cpprt0_stub.s -lcl"
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye When using dlopen : "cpprt0_stub.s -lcl -lCsup"
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye HP-UX (11i version 1.5 and greater):
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye When using dlopen/shl_load : "cpprt0_stub.s -lcl -lunwind"
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye The cpprt0_stub.s can be downloaded from the web site :
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye http://h21007.www2.hp.com/hpux-devtools/CXX/hpux-devtools.0107/0083.html
4db6dbfe971f3c68c0945e5da3b6d5a3248054daTrond Norbye Compile cpprt0_stub.s with the PIC option
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye================
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye AIX, using the vendor C compiler with optimization:
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye There is an issue with compiling server/core.c with optimization enabled
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye which has been seen with C for AIX 5.0.2.3 and above. (5.0.2.0, 5.0.2.1,
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye and 5.0.2.2 have an additional problem with Apache 2.0.x, so either upgrade
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye the compiler or don't use optimization in order to avoid it.)
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye cc_r works fine with -O2 but xlc_r does not. In order to use xlc_r with
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye -O2, apply the patch at
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye http://www.apache.org/dist/httpd/patches/apply_to_2.0.49/aix_xlc_optimization.patch
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye (That patch works with many recent levels of Apache 2+.)
cd1fe74964370b3f6b4ae79635fd1074f7a94d3dSven-Kristofer Pilz================
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye On Solaris, better performance may be achieved by using the Sun Studio
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye compiler instead of gcc. As of version 11, it is now free (registration
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye required). Download the compiler from:
4db6dbfe971f3c68c0945e5da3b6d5a3248054daTrond Norbye http://developers.sun.com/prodtech/cc/downloads/index.jsp
4db6dbfe971f3c68c0945e5da3b6d5a3248054daTrond Norbye If you use Sun Studio, the following compiler flags (CFLAGS) are
5e0ccd8bb84a766f65680b4cc1e43b356d1d78b8Trond Norbye recommended:
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye -XO4 -xchip=generic
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye================
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye You will need to ensure that you have either libtool 1.5.6
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye or 2.2.6b, or later. Expat 2.0.1 and PCRE 8.02 are also
5e0ccd8bb84a766f65680b4cc1e43b356d1d78b8Trond Norbye recommended to be installed. If building PCRE from source,
38115c792a2142d264ca2617b11962301f079c0aTrond Norbye you'll also need g++.