Solve 32-bit versus 64-bit compatibility issues
[httpd-crcsyncproxy.git] / README.platforms
blob36a5bc87b7a08e240585df671f956123f00ab5ad
2                           Apache HTTP Server
4   Platform specific notes:
5   ------------------------
7 ================
8   Darwin (OS X):
9    Apache 2 relies heavily on the use of autoconf and libtool to
10    provide a build environment.  Darwin provides these tools as part
11    of the Developers Tools package. Under Darwin, however, GNUlibtool
12    is installed as 'glibtool' to avoid conflicting with the Darwin
13    'libtool' program.  Apache 2 knows about this so that's not a
14    problem.
16    As of OS X 10.2 (Jaguar), the bundled versions work perfectly. Partly
17    this is due to the fact that /bin/sh is now 'bash' and not 'zsh' as
18    well as the fact that the bundled versions are up-to-date: 
19    autoconf 2.52 and (g)libtool 1.4.2.
21    Earlier versions of OS X are not so fortunate, and the bundled tools
22    are not only older versions, but also, for the most part, do not work
23    well.  If you are interested in developing under Darwin, we
24    recommend that you obtain and install replacement versions of what
25    are normally installed on Darwin (and OS X, as of v10.1.5).  If
26    you build your own versions of autoconf 2.52 and libtool 1.4.2, be
27    aware that there are some Darwin specific patches to the official
28    code that still must be applied for them to fully work.  A useful
29    page to check out is:
31       http://fink.sourceforge.net/doc/porting/libtool.php
33    Pier Fumagalli also provides pre-built Darwin packages of the
34    patched autoconf and libtool suites, available at:
36       http://www.apache.org/~pier/macosx/
38    You will note that GNU libtool should actually be installed as
39    glibtool, to avoid conflict with a Darwin program of the same
40    name.  Pier's packages have this change already.  All files are
41    installed under /usr/local/ so to use these versions, and be sure
42    that /usr/local/bin is earlier in your PATH.
44    There have been some reports that autoconf 2.52 prevents Apache's
45    build system from correctly handling passing multi-value envvars
46    to the build system (eg: CFLAGS="-g -O3" ./configure),  causing
47    errors.  Use of bash does not seem to help in this situation.  If
48    this affects you, downgrading to autoconf 2.13 (which is installed
49    on Darwin) will help.
51    With Leopard (at least up to 10.5.2), when running configure
52    you will likely see errors such as:
54       rm: conftest.dSYM: is a directory
56    This is a known issue and will be fixed in a later version of the
57    autoconf suite. These errors can be safely ignored.
59 ==========
60   FreeBSD:
61    autoconf 2.52 creates scripts that are incompatible with the Posix
62    shell implementation (/bin/sh) on FreeBSD.  Be sure to use v2.13
63    of autoconf.
65    Threaded MPMs are not supported on FreeBSD 4.x.  Current releases of
66    FreeBSD 5.x (5.2 or later) support threaded MPMs correctly.  You must pass
67    '--enable-threads=yes' to APR's configure in order to enable threads.
68    Additionally, you must use libthr or libkse via libmap.conf as the default
69    libc_r is still broken as of this writing.  Please consult the man page for
70    libmap.conf for more details about configuring libthr or libkse.
71 ================
72   HP-UX:
73    The dlopen() system call in HP-UX has problems when loading/unloading
74    C++ modules. The problem can be resolved by using shl_load() instead
75    of dlopen(). This is fixed in the Apache 2.0.44 release.
76    To enable loading of C++ modules, the httpd binary has to be linked with
77    the following libraries :
79    HP-UX (11.0 / 11i):
80       When using shl_load        : "cpprt0_stub.s -lcl"
81       When using dlopen          : "cpprt0_stub.s -lcl -lCsup"
83    HP-UX (11i version 1.5 and greater):
84       When using dlopen/shl_load : "cpprt0_stub.s -lcl -lunwind"
86    The cpprt0_stub.s can be downloaded from the web site :
87       http://h21007.www2.hp.com/hpux-devtools/CXX/hpux-devtools.0107/0083.html
89    Compile cpprt0_stub.s with the PIC option
90      cc -c +z cpprt0_stub.s
91        - OR -
92      gcc -c -fPIC cpprt0_stub.s
93 ================
94   AIX, using the vendor C compiler with optimization:
95     There is an issue with compiling server/core.c with optimization enabled
96     which has been seen with C for AIX 5.0.2.3 and above.  (5.0.2.0, 5.0.2.1,
97     and 5.0.2.2 have an additional problem with Apache 2.0.x, so either upgrade 
98     the compiler or don't use optimization in order to avoid it.)
100     cc_r works fine with -O2 but xlc_r does not.  In order to use xlc_r with
101     -O2, apply the patch at 
103     http://www.apache.org/dist/httpd/patches/apply_to_2.0.49/aix_xlc_optimization.patch
105     (That patch works with many recent levels of Apache 2+.)
107 ================
108   Solaris:
110     On Solaris, better performance may be achieved by using the Sun Studio
111     compiler instead of gcc.  As of version 11, it is now free (registration
112     required).  Download the compiler from:
114     http://developers.sun.com/prodtech/cc/downloads/index.jsp
116     If you use Sun Studio, the following compiler flags (CFLAGS) are
117     recommended:
119       -XO4 -xchip=generic