summaryrefslogtreecommitdiffstats
path: root/README.platforms
blob: 4e998ea5e0921ce4a7251aaf4b91fd28a516d9ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
                          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.

   Earlier versions of OS X are not so fortunate, and the bundled tools
   are not only older versions, but also, for the most part, do not work
   well.  If you are interested in developing under Darwin, we
   recommend that you obtain and install replacement versions of what
   are normally installed on Darwin (and OS X, as of v10.1.5).  If
   you build your own versions of autoconf 2.52 and libtool 1.4.2, be
   aware that there are some Darwin specific patches to the official
   code that still must be applied for them to fully work.  A useful
   page to check out is:

      http://fink.sourceforge.net/doc/porting/libtool.php

   Pier Fumagalli also provides pre-built Darwin packages of the
   patched autoconf and libtool suites, available at:

      http://www.apache.org/~pier/macosx/

   You will note that GNU libtool should actually be installed as
   glibtool, to avoid conflict with a Darwin program of the same
   name.  Pier's packages have this change already.  All files are
   installed under /usr/local/ so to use these versions, and be sure
   that /usr/local/bin is earlier in your PATH.

   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.

==========
  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.

================
  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