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