summaryrefslogtreecommitdiff
path: root/docs/installation/build_unix_macosx.html
blob: b600cf5c45853d26e8feec32774437173766b53d (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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Mac OS X</title>
    <link rel="stylesheet" href="gettingStarted.css" type="text/css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
    <link rel="start" href="index.html" title="Berkeley DB Installation and Build Guide" />
    <link rel="up" href="build_unix.html" title="Chapter 7.  Building Berkeley DB for UNIX/POSIX" />
    <link rel="prev" href="build_unix_linux.html" title="Linux" />
    <link rel="next" href="build_unix_qnx.html" title="QNX" />
  </head>
  <body>
    <div xmlns="" class="navheader">
      <div class="libver">
        <p>Library Version 12.1.6.1</p>
      </div>
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">Mac OS X</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="build_unix_linux.html">Prev</a> </td>
          <th width="60%" align="center">Chapter 7.  Building Berkeley DB for UNIX/POSIX
    </th>
          <td width="20%" align="right"> <a accesskey="n" href="build_unix_qnx.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="sect1" lang="en" xml:lang="en">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title" style="clear: both"><a id="build_unix_macosx"></a>Mac OS X</h2>
          </div>
        </div>
      </div>
      <div class="orderedlist">
        <ol type="1">
          <li>
            <span class="bold">
              <strong>When trying to link multiple
                Berkeley DB language interfaces (for example, Tcl,
                C++, Java, Python) into a single process, I get
                "multiple definitions" errors from dyld.</strong>
            </span>
            <p> 
                To fix this problem, set the environment variable
                MACOSX_DEPLOYMENT_TARGET to 10.3 (or your current
                version of OS X), and reconfigure and rebuild Berkeley
                DB from scratch. See the OS X ld(1) and dyld(1) man
                pages for information about how OS X handles symbol
                namespaces, as well as undefined and multiply-defined
                symbols.
            </p>
          </li>
          <li>
            <span class="bold">
              <strong>When trying to use system-backed
                shared memory on OS X I see failures about "too many
                open files".</strong>
            </span>
            <p>
	            The default number of shared memory segments on OS
                X is too low. To fix this problem, create a file named
                <code class="literal">/etc/sysctl.conf</code>, containing the
                variable assignments: 
            </p>
            <pre class="programlisting">kern.sysv.shmmax=134217728
kern.sysv.shmmin=1
kern.sysv.shmmni=32
kern.sysv.shmseg=32
kern.sysv.shmall=1024</pre>
            <p>
	            and then reboot the system.
            </p>
            <p>
	            Check the version of OS X carefully because some
	            versions require all five parameters to be set. 
            </p>
            <p>
                The <code class="literal">SHMMAX</code> variable should be set to a value
                that is an exact multiple of 4096. Some versions of
                OS X ignore the value if it is not an exact multiple. 
            </p>
            <p>
	            Please check and verify with the OS X documentation
	            on the proper setting of these parameters. In some
	            cases a reboot is necessary and in others it is possible
	            to change them dynamically using <code class="literal">sysctl</code>.
            </p>
            <p>
                The <code class="literal">/etc/sysctl.conf</code> file exists in OS X
                10.3.9 and later. If you are running a version of OS X
                previous to 10.3.x, edit the <code class="literal">/etc/rc</code>
                file and change the values in the following commands:
            </p>
            <pre class="programlisting">sysctl -w kern.sysv.shmmax=134217728
sysctl -w kern.sysv.shmseg=32</pre>
            <p>
	            and then reboot the system.
            </p>
            <p>
	            OS X system updates will overwrite <code class="literal">/etc/rc</code>
	            so any changes to the file must be redone after sytem updates. 
            </p>
          </li>
        </ol>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="build_unix_linux.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="build_unix.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="build_unix_qnx.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">Linux </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> QNX</td>
        </tr>
      </table>
    </div>
  </body>
</html>