diff options
Diffstat (limited to 'docs/installation/build_unix_solaris.html')
-rw-r--r-- | docs/installation/build_unix_solaris.html | 199 |
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> |