summaryrefslogtreecommitdiff
path: root/docs/installation/build_unix_solaris.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/installation/build_unix_solaris.html')
-rw-r--r--docs/installation/build_unix_solaris.html199
1 files changed, 134 insertions, 65 deletions
diff --git a/docs/installation/build_unix_solaris.html b/docs/installation/build_unix_solaris.html
index 2ef6a973..2fdc2eab 100644
--- a/docs/installation/build_unix_solaris.html
+++ b/docs/installation/build_unix_solaris.html
@@ -14,7 +14,7 @@
<body>
<div xmlns="" class="navheader">
<div class="libver">
- <p>Library Version 11.2.5.3</p>
+ <p>Library Version 12.1.6.1</p>
</div>
<table width="100%" summary="Navigation header">
<tr>
@@ -22,9 +22,8 @@
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="build_unix_sco.html">Prev</a> </td>
- <th width="60%" align="center">Chapter 7. 
- Building Berkeley DB for UNIX/POSIX
- </th>
+ <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_sunos.html">Next</a></td>
</tr>
</table>
@@ -42,62 +41,94 @@
<ol type="1">
<li>
<span class="bold">
- <strong>I can't compile and run multithreaded applications.</strong>
+ <strong>I can't compile and run
+ multithreaded applications.</strong>
</span>
- <p>Special compile-time flags and additional libraries are required when
-compiling threaded applications on Solaris. If you are compiling a
-threaded application, you must compile with the D_REENTRANT flag and link
-with the libpthread.a or libthread.a libraries:</p>
+ <p>
+ Special compile-time flags and additional libraries
+ are required when compiling threaded applications on
+ Solaris. If you are compiling a threaded application,
+ you must compile with the D_REENTRANT flag and link
+ with the libpthread.a or libthread.a libraries:
+ </p>
<pre class="programlisting">cc -mt ...
cc -D_REENTRANT ... -lthread
cc -D_REENTRANT ... -lpthread</pre>
- <p>The Berkeley DB library will automatically build with the correct options.</p>
+ <p>
+ The Berkeley DB library will automatically build
+ with the correct options.
+ </p>
</li>
<li>
<span class="bold">
- <strong>I've installed gcc on my Solaris system, but configuration
-fails because the compiler doesn't work.</strong>
+ <strong>I've installed gcc on my Solaris
+ system, but configuration fails because the compiler
+ doesn't work.</strong>
</span>
- <p>On some versions of Solaris, there is a cc executable in the user's path,
-but all it does is display an error message and fail:</p>
+ <p>
+ On some versions of Solaris, there is a cc
+ executable in the user's path, but all it does is
+ display an error message and fail:
+ </p>
<pre class="programlisting">% which cc
/usr/ucb/cc
% cc
/usr/ucb/cc: language optional software package not installed</pre>
- <p>Because Berkeley DB always uses the native compiler in preference to gcc, this
-is a fatal error. If the error message you are seeing is the following,
-then this may be the problem:</p>
+ <p>
+ Because Berkeley DB always uses the native compiler
+ in preference to gcc, this is a fatal error. If the
+ error message you are seeing is the following, then
+ this may be the problem:
+ </p>
<pre class="programlisting">checking whether the C compiler (cc -O) works... no
configure: error: installation or configuration problem: C compiler
cannot create executables.</pre>
- <p>The simplest workaround is to set your CC environment variable to the
-system compiler and reconfigure; for example:</p>
+ <p>
+ The simplest workaround is to set your CC
+ environment variable to the system compiler and
+ reconfigure; for example:
+ </p>
<pre class="programlisting">env CC=gcc ../dist/configure</pre>
- <p>If you are using the --configure-cxx option, you may also want to specify
-a C++ compiler, for example the following:</p>
+ <p>
+ If you are using the --configure-cxx option, you
+ may also want to specify a C++ compiler, for example
+ the following:
+ </p>
<pre class="programlisting">env CC=gcc CCC=g++ ../dist/configure</pre>
</li>
<li>
<span class="bold">
- <strong>I see the error
-"libc internal error: _rmutex_unlock: rmutex not held", followed by a core
-dump when running threaded or JAVA programs.</strong>
+ <strong>I see the error "libc internal
+ error: _rmutex_unlock: rmutex not held", followed by a
+ core dump when running threaded or JAVA
+ programs.</strong>
</span>
- <p>This is a known bug in Solaris 2.5 and it is fixed by Sun patch 103187-25.</p>
+ <p>
+ This is a known bug in Solaris 2.5 and it is fixed
+ by Sun patch 103187-25.
+ </p>
</li>
<li>
<span class="bold">
- <strong>I see error reports of nonexistent files, corrupted metadata
-pages and core dumps.</strong>
+ <strong>I see error reports of nonexistent
+ files, corrupted metadata pages and core
+ dumps.</strong>
</span>
- <p>Solaris 7 contains a bug in the threading libraries (-lpthread,
--lthread), which causes the wrong version of the pwrite routine to be
-linked into the application if the thread library is linked in after
-the C library. The result will be that the pwrite function is called
-rather than the pwrite64. To work around the problem, use an explicit
-link order when creating your application.</p>
- <p>Sun Microsystems is tracking this problem with Bug Id's 4291109 and 4267207,
-and patch 106980-09 to Solaris 7 fixes the problem:</p>
+ <p>
+ Solaris 7 contains a bug in the threading libraries
+ (-lpthread, -lthread), which causes the wrong version
+ of the pwrite routine to be linked into the
+ application if the thread library is linked in after
+ the C library. The result will be that the pwrite
+ function is called rather than the pwrite64. To work
+ around the problem, use an explicit link order when
+ creating your application.
+ </p>
+ <p>
+ Sun Microsystems is tracking this problem with Bug
+ Id's 4291109 and 4267207, and patch 106980-09 to
+ Solaris 7 fixes the problem:
+ </p>
<pre class="programlisting">Bug Id: 4291109
Duplicate of: 4267207
Category: library
@@ -112,49 +143,87 @@ TI_PWRITE64 row (see near the end).</pre>
</li>
<li>
<span class="bold">
- <strong>I see corrupted databases when doing hot backups or creating
-a hot failover archive.</strong>
+ <strong>I see corrupted databases when doing
+ hot backups or creating a hot failover
+ archive.</strong>
</span>
- <p>The Solaris cp utility is implemented using the mmap system call, and
-so writes are not blocked when it reads database pages. See
-<a href="../programmer_reference/transapp_reclimit.html" class="olink">Berkeley DB recoverability</a>
-for more information.</p>
+ <p>
+ The Solaris cp utility is implemented using the
+ mmap system call, and so writes are not blocked when
+ it reads database pages. See <a href="../programmer_reference/transapp_reclimit.html" class="olink">Berkeley DB recoverability</a> for
+ more information.
+ </p>
</li>
<li>
<span class="bold">
- <strong>Performance is slow and the application is doing a lot of I/O
-to the disk on which the database environment's files are stored.</strong>
+ <strong>Performance is slow and the
+ application is doing a lot of I/O to the disk on which
+ the database environment's files are
+ stored.</strong>
</span>
- <p>By default, Solaris periodically flushes dirty blocks from memory-mapped
-files to the backing filesystem. This includes the Berkeley DB database
-environment's shared memory regions and can affect Berkeley DB performance.
-Workarounds include creating the shared regions in system shared memory
-(<a href="../api_reference/C/envopen.html#envopen_DB_SYSTEM_MEM" class="olink">DB_SYSTEM_MEM</a>) or application private memory
-(<a href="../api_reference/C/envopen.html#envopen_DB_PRIVATE" class="olink">DB_PRIVATE</a>), or configuring Solaris to not flush memory-mapped
-pages. For more information, see the "Solaris Tunable Parameters
-Reference Manual: fsflush and Related Tunables".</p>
+ <p>
+ By default, Solaris periodically flushes dirty
+ blocks from memory-mapped files to the backing
+ filesystem. This includes the Berkeley DB database
+ environment's shared memory regions and can affect
+ Berkeley DB performance. Workarounds include creating
+ the shared regions in system shared memory
+ (<a href="../api_reference/C/envopen.html#envopen_DB_SYSTEM_MEM" class="olink">DB_SYSTEM_MEM</a>) or application private memory
+ (<a href="../api_reference/C/envopen.html#envopen_DB_PRIVATE" class="olink">DB_PRIVATE</a>), or configuring Solaris to not flush
+ memory-mapped pages. For more information, see the
+ "Solaris Tunable Parameters Reference Manual: fsflush
+ and Related Tunables".
+ </p>
</li>
<li>
<span class="bold">
- <strong>I see errors about "open64" when building Berkeley DB applications.</strong>
+ <strong>I see errors about "open64" when
+ building Berkeley DB applications.</strong>
</span>
- <p>System include files (most commonly fcntl.h) in some releases of AIX
-and Solaris redefine "open" when large-file support is enabled
-for applications. This causes problems when compiling applications
-because "open" is a method in the Berkeley DB APIs. To work around this
-problem:
-</p>
+ <p>
+ System include files (most commonly fcntl.h) in
+ some releases of AIX and Solaris redefine "open" when
+ large-file support is enabled for applications. This
+ causes problems when compiling applications because
+ "open" is a method in the Berkeley DB APIs. To work
+ around this problem: </p>
<div class="orderedlist">
<ol type="a">
- <li>Avoid including the problematical system include files in source code
-files which also include Berkeley DB include files and call into the Berkeley DB
-API.</li>
- <li>Before building Berkeley DB, modify the generated include file db.h to itself
-include the problematical system include files.</li>
- <li>Turn off Berkeley DB large-file support by specifying the
-<a class="link" href="build_unix_conf.html#build_unix_conf.--disable-largefile">--disable-largefile</a> configuration option and rebuilding.</li>
+ <li>
+ Avoid including the problematical
+ system include files in source code files
+ which also include Berkeley DB include files
+ and call into the Berkeley DB API.
+ </li>
+ <li>
+ Before building Berkeley DB, modify the
+ generated include file db.h to itself include
+ the problematical system include files.
+ </li>
+ <li>
+ Turn off Berkeley DB large-file support
+ by specifying the <a class="link" href="build_unix_conf.html#build_unix_conf.--disable-largefile">
+ --disable-largefile</a> configuration
+ option and rebuilding.
+ </li>
</ol>
</div>
+ <p>
+ </p>
+ </li>
+ <li>
+ <span class="bold">
+ <strong> I see that Berkeley DB
+ automatically uses optimization level '-xO2' for the
+ Sun Workshop compiler. Can I change this to a higher
+ level? </strong>
+ </span>
+ <p>
+ We have noticed some test failures when compiling
+ with level '-xO3' and higher due to overaggressive
+ compiler optimizations. We do not recommend changing
+ this setting.
+ </p>
</li>
</ol>
</div>