Blame README.platforms

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