summaryrefslogtreecommitdiff
path: root/docs/installation/build_unix_conf.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/installation/build_unix_conf.html')
-rw-r--r--docs/installation/build_unix_conf.html946
1 files changed, 542 insertions, 404 deletions
diff --git a/docs/installation/build_unix_conf.html b/docs/installation/build_unix_conf.html
index 88135f3b..65cb1716 100644
--- a/docs/installation/build_unix_conf.html
+++ b/docs/installation/build_unix_conf.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.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_sql.html">Next</a></td>
</tr>
</table>
@@ -38,495 +37,634 @@
</div>
</div>
</div>
- <p>There are several arguments you can specify when configuring Berkeley DB.
-Although only the Berkeley DB-specific ones are described here, most of the
-standard GNU autoconf arguments are available and supported. To see a
-complete list of possible arguments, specify the --help flag to the
-configure program.</p>
- <p>The Berkeley DB specific arguments are as follows:</p>
+ <p>
+ There are several arguments you can specify when configuring
+ Berkeley DB. Although only the Berkeley DB-specific ones are
+ described here, most of the standard GNU autoconf arguments
+ are available and supported. To see a complete list of
+ possible arguments, specify the --help flag to the configure
+ program.
+ </p>
+ <p>
+ The Berkeley DB specific arguments are as follows:
+ </p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p><a id="build_unix_conf.--disable-largefile"></a>
- <span class="bold"><strong>--disable-largefile</strong></span>
- </p>
- <p>
- Some systems, notably versions of Solaris, require
- special compile-time options in order to create files larger
- than 2^32 bytes. These options are automatically enabled when
- Berkeley DB is compiled. For this reason, binaries built on
- current versions of these systems may not run on earlier
- versions of the system because the library and system calls
- necessary for large files are not available. To disable
- building with these compile-time options, enter
- --disable-largefile as an argument to configure.
- </p>
+ <span class="bold"><strong>--disable-largefile</strong></span>
+ </p>
+ <p>
+ Some systems, notably versions of Solaris, require
+ special compile-time options in order to create files
+ larger than 2^32 bytes. These options are
+ automatically enabled when Berkeley DB is compiled.
+ For this reason, binaries built on current versions of
+ these systems may not run on earlier versions of the
+ system because the library and system calls necessary
+ for large files are not available. To disable building
+ with these compile-time options, enter
+ --disable-largefile as an argument to configure.
+ </p>
</li>
<li>
<p>
- <span class="bold"><strong>--disable-shared, --disable-static</strong></span>
- </p>
- <p>
- On systems supporting shared libraries, Berkeley DB builds both
- static and shared libraries by default. (Shared libraries are
- built using
- <a class="ulink" href="http://www.gnu.org/software/libtool/libtool.html" target="_top">
- the GNU Project's Libtool</a> distribution, which supports
- shared library builds on many (although not all) systems.) To
- not build shared libraries, configure using the
- --disable-shared argument. To not build static libraries,
- configure using the --disable-static argument.
- </p>
+ <span class="bold"><strong>--disable-shared,
+ --disable-static</strong></span>
+ </p>
+ <p>
+ On systems supporting shared libraries, Berkeley DB
+ builds both static and shared libraries by default.
+ (Shared libraries are built using <a class="ulink" href="http://www.gnu.org/software/libtool/libtool.html" target="_top"> the GNU
+ Project's Libtool</a> distribution,
+ which supports shared library builds on many (although
+ not all) systems.) To not build shared libraries,
+ configure using the --disable-shared argument. To not
+ build static libraries, configure using the
+ --disable-static argument.
+ </p>
</li>
<li>
<p><a id="build_unix_conf.--disable-heap"></a>
- <span class="bold"><strong>--disable-heap</strong></span>
- </p>
- <p>
- Disables the Heap access method so that it cannot be used by
- Berkeley DB applications.
- </p>
+ <span class="bold"><strong>--disable-heap</strong></span>
+ </p>
+ <p>
+ Disables the Heap access method so that it cannot
+ be used by Berkeley DB applications.
+ </p>
</li>
<li>
<p>
- <span class="bold"><strong>--enable-compat185</strong></span>
- </p>
+ <span class="bold"><strong>--enable-compat185</strong></span>
+ </p>
<p>
- To compile or load Berkeley DB 1.85 applications against this
- release of the Berkeley DB library, enter --enable-compat185 as
- an argument to configure. This will include Berkeley DB 1.85
- API compatibility code in the library.
- </p>
+ To compile or load Berkeley DB 1.85 applications
+ against this release of the Berkeley DB library, enter
+ --enable-compat185 as an argument to configure. This
+ will include Berkeley DB 1.85 API compatibility code
+ in the library.
+ </p>
</li>
<li>
<p>
- <span class="bold"><strong>--enable-cxx</strong></span>
- </p>
- <p>
- To build the Berkeley DB C++ API, enter --enable-cxx as an
- argument to configure.
- </p>
+ <span class="bold"><strong>--enable-cxx</strong></span>
+ </p>
+ <p>
+ To build the Berkeley DB C++ API, enter
+ --enable-cxx as an argument to configure.
+ </p>
</li>
<li>
<p><a id="build_unix_conf.--enable-debug"></a>
- <span class="bold"><strong>--enable-debug</strong></span>
- </p>
- <p>
- To build Berkeley DB with <span class="bold"><strong>-g</strong></span>
- as a compiler flag and with <span class="bold"><strong>DEBUG</strong></span> #defined during compilation,
- enter --enable-debug as an argument to configure. This will
- create a Berkeley DB library and utilities with debugging
- symbols, as well as load various routines that can be called
- from a debugger to display pages, cursor queues, and so forth.
- If installed, the utilities will not be stripped. This
- argument should not be specified when configuring to build
- production binaries.
- </p>
+ <span class="bold"><strong>--enable-debug</strong></span>
+ </p>
+ <p>
+ To build Berkeley DB with <span class="bold"><strong>-g</strong></span>
+ as a compiler flag and with <span class="bold"><strong>DEBUG</strong></span> #defined
+ during compilation, enter --enable-debug as an
+ argument to configure. This will create a Berkeley DB
+ library and utilities with debugging symbols, as well
+ as load various routines that can be called from a
+ debugger to display pages, cursor queues, and so
+ forth. If installed, the utilities will not be
+ stripped. This argument should not be specified when
+ configuring to build production binaries.
+ </p>
</li>
<li>
<p><a id="build_unix_conf.--enable-debug_rop"></a>
- <span class="bold"><strong>--enable-debug_rop</strong></span>
- </p>
- <p>
- To build Berkeley DB to output log records for read operations,
- enter --enable-debug_rop as an argument to configure. This
- argument should not be specified when configuring to build
- production binaries.
- </p>
+ <span class="bold"><strong>--enable-debug_rop</strong></span>
+ </p>
+ <p>
+ To build Berkeley DB to output log records for read
+ operations, enter --enable-debug_rop as an argument to
+ configure. This argument should not be specified when
+ configuring to build production binaries.
+ </p>
</li>
<li>
<p><a id="build_unix_conf.--enable-debug_wop"></a>
- <span class="bold"><strong>--enable-debug_wop</strong></span>
- </p>
- <p>
- To build Berkeley DB to output log records for write
- operations, enter --enable-debug_wop as an argument to
- configure. This argument should not be specified when
- configuring to build production binaries.
- </p>
+ <span class="bold"><strong>--enable-debug_wop</strong></span>
+ </p>
+ <p>
+ To build Berkeley DB to output log records for
+ write operations, enter --enable-debug_wop as an
+ argument to configure. This argument should not be
+ specified when configuring to build production
+ binaries.
+ </p>
</li>
<li>
<p><a id="build_unix_conf.--enable-diagnostic"></a>
- <span class="bold"><strong>--enable-diagnostic</strong></span>
- </p>
- <p>
-
- To build Berkeley DB with run-time debugging checks, enter
- --enable-diagnostic as an argument to configure. This causes a
- number of additional checks to be performed when Berkeley DB is
- running, and also causes some failures to trigger process abort
- rather than returning errors to the application. Applications
- built using this argument should not share database
- environments with applications built without this argument.
- This argument should not be specified when configuring to build
- production binaries.
- </p>
+ <span class="bold"><strong>--enable-diagnostic</strong></span>
+ </p>
+ <p>
+ To build Berkeley DB with run-time debugging
+ checks, enter --enable-diagnostic as an argument to
+ configure. This causes a number of additional checks
+ to be performed when Berkeley DB is running, and also
+ causes some failures to trigger process abort rather
+ than returning errors to the application. Applications
+ built using this argument should not share database
+ environments with applications built without this
+ argument. This argument should not be specified when
+ configuring to build production binaries.
+ </p>
</li>
<li>
<p>
- <span class="bold"><strong>--enable-dump185</strong></span>
- </p>
- <p>
- To convert Berkeley DB 1.85 (or earlier) databases to this
- release of Berkeley DB, enter --enable-dump185 as an argument
- to configure. This will build the <a href="../api_reference/C/db_dump.html" class="olink">db_dump185</a> utility, which can dump
- Berkeley DB 1.85 and 1.86 databases in a format readable by the
- Berkeley DB <a href="../api_reference/C/db_load.html" class="olink">db_load</a> utility.
- </p>
- <p>
- The system libraries with which you are loading the
- <a href="../api_reference/C/db_dump.html" class="olink">db_dump185</a> utility must already contain the Berkeley DB 1.85 library
- routines for this to work because the Berkeley DB distribution
- does not include them. If you are using a non-standard library
- for the Berkeley DB 1.85 library routines, you will have to
- change the Makefile that the configuration step creates to load
- the <a href="../api_reference/C/db_dump.html" class="olink">db_dump185</a> utility with that library.
- </p>
+ <span class="bold"><strong>--enable-dump185</strong></span>
+ </p>
+ <p>
+ To convert Berkeley DB 1.85 (or earlier) databases
+ to this release of Berkeley DB, enter --enable-dump185
+ as an argument to configure. This will build the
+ <a href="../api_reference/C/db_dump.html" class="olink">db_dump185</a> utility, which can dump Berkeley DB 1.85 and 1.86
+ databases in a format readable by the Berkeley DB
+ <a href="../api_reference/C/db_load.html" class="olink">db_load</a> utility.
+ </p>
+ <p>
+ The system libraries with which you are loading the
+ <a href="../api_reference/C/db_dump.html" class="olink">db_dump185</a> utility must already contain the Berkeley DB 1.85
+ library routines for this to work because the Berkeley
+ DB distribution does not include them. If you are
+ using a non-standard library for the Berkeley DB 1.85
+ library routines, you will have to change the Makefile
+ that the configuration step creates to load the
+ <a href="../api_reference/C/db_dump.html" class="olink">db_dump185</a> utility with that library.
+ </p>
+ </li>
+ <li>
+ <p><a id="build_unix_conf.--enable-error_history"></a>
+ <span class="bold"><strong>--enable-error_history</strong></span>
+ </p>
+ <p>
+ Causes more detailed error messages to be displayed for most
+ error messages. The additional information includes the
+ process and thread identifiers, timestamp, and certain
+ previous unusual conditions detected during the API call.
+ Stack traces are also displayed, where they are supported.
+ </p>
+ <p>
+ This option is available only for Unix-like platforms which
+ support the pthread_getspecific() thread local storage
+ functions.
+ </p>
+ </li>
+ <li>
+ <p><a id="build_unix_conf.--enable-failchk_broadcast"></a>
+ <span class="bold"><strong>--enable-failchk_broadcast</strong></span>
+ </p>
+ <p>
+ Enable the mode of the <a href="../api_reference/C/envfailchk.html" class="olink">DB_ENV-&gt;failchk()</a> feature which causes
+ processes in the environment to be notified of an
+ application failure as soon as possible. When this feature
+ is enabled threads waiting on a mutex owned by a crashed
+ process will return a
+ <a href="../programmer_reference/program_errorret.html#program_errorret.DB_RUNRECOVERY" class="olink">
+ DB_RUNRECOVERY
+ </a> error. Without this feature, those
+ processes may hang until intervention by some other entity,
+ such as a "watcher process" as mentioned in
+ <a href="../programmer_reference/transapp_app.html" class="olink">
+ Architecting Transactional Data Store applications
+ </a> or a user interrupting the program.
+ </p>
</li>
<li>
<p><a id="build_unix_conf.--enable-java"></a>
- <span class="bold"><strong>--enable-java</strong></span>
- </p>
- <p>
- To build the Berkeley DB Java API, enter --enable-java as an
- argument to configure. To build Java, you must also build with
- shared libraries. Before configuring, you must set your PATH
- environment variable to include javac. Note that it is not
- sufficient to include a symbolic link to javac in your PATH
- because the configuration process uses the location of javac to
- determine the location of the Java include files (for example,
- jni.h). On some systems, additional include directories may be
- needed to process jni.h; see <a class="xref" href="build_unix_flags.html" title="Changing compile or load options">Changing compile or load options</a> for more information.
- </p>
+ <span class="bold"><strong>--enable-java</strong></span>
+ </p>
+ <p>
+ To build the Berkeley DB Java API, enter
+ --enable-java as an argument to configure. To build
+ Java, you must also build with shared libraries.
+ Before configuring, you must set your PATH environment
+ variable to include javac. Note that it is not
+ sufficient to include a symbolic link to javac in your
+ PATH because the configuration process uses the
+ location of javac to determine the location of the
+ Java include files (for example, jni.h). On some
+ systems, additional include directories may be needed
+ to process jni.h; see <a class="xref" href="build_unix_flags.html" title="Changing compile or load options">Changing compile or load
+ options</a> for more
+ information.
+ </p>
+ <p>
+ </p>
+ <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3>
+ The --enable-java option may not be specified
+ at the same time as --enable-smallbuild or
+ --disable-statistics.
+ </div>
+ <p>
+ </p>
</li>
<li>
<p><a id="build_unix_conf.--enable-posixmutexes"></a>
- <span class="bold"><strong>--enable-posixmutexes</strong></span>
- </p>
- <p>
- To force Berkeley DB to use the POSIX pthread mutex interfaces
- for underlying mutex support, enter --enable-posixmutexes as an
- argument to configure. This is rarely necessary: POSIX mutexes
- will be selected automatically on systems where they are the
- preferred implementation.
- </p>
- <p>
- The --enable-posixmutexes configuration argument is normally
- used in two ways: First, when there are multiple mutex
- implementations available and the POSIX mutex implementation is
- not the preferred one (for example, on Solaris where the LWP
- mutexes are used by default). Second, by default the Berkeley
- DB library will only select the POSIX mutex implementation if
- it supports mutexes shared between multiple processes, as
- described for the pthread_condattr_setpshared and
- pthread_mutexattr_setpshared interfaces. The
- --enable-posixmutexes configuration argument can be used to
- force the selection of POSIX mutexes in this case, which can
- improve application performance significantly when the
- alternative mutex implementation is a non-blocking one (for
- example test-and-set assembly instructions). However,
- configuring to use POSIX mutexes when the implementation does
- not have inter-process support will only allow the creation of
- private database environments, that is, environments where the
- <a href="../api_reference/C/envopen.html#envopen_DB_PRIVATE" class="olink">DB_PRIVATE</a> flag is specified to the <a href="../api_reference/C/envopen.html" class="olink">DB_ENV-&gt;open()</a> method.
- </p>
- <p>
- Specifying the --enable-posixmutexes configuration argument may require
- that applications and Berkeley DB be linked with the -lpthread library.
- </p>
+ <span class="bold"><strong>--enable-posixmutexes</strong></span>
+ </p>
+ <p>
+ To force Berkeley DB to use the POSIX pthread mutex
+ interfaces for underlying mutex support, enter
+ --enable-posixmutexes as an argument to configure.
+ This is rarely necessary: POSIX mutexes will be
+ selected automatically on systems where they are the
+ preferred implementation.
+ </p>
+ <p>
+ The --enable-posixmutexes configuration argument is
+ normally used in two ways: First, when there are
+ multiple mutex implementations available and the POSIX
+ mutex implementation is not the preferred one (for
+ example, on Solaris where the LWP mutexes are used by
+ default). Second, by default the Berkeley DB library
+ will only select the POSIX mutex implementation if it
+ supports mutexes shared between multiple processes, as
+ described for the pthread_condattr_setpshared and
+ pthread_mutexattr_setpshared interfaces. The
+ --enable-posixmutexes configuration argument can be
+ used to force the selection of POSIX mutexes in this
+ case, which can improve application performance
+ significantly when the alternative mutex
+ implementation is a non-blocking one (for example
+ test-and-set assembly instructions). However,
+ configuring to use POSIX mutexes when the
+ implementation does not have inter-process support
+ will only allow the creation of private database
+ environments, that is, environments where the
+ <a href="../api_reference/C/envopen.html#envopen_DB_PRIVATE" class="olink">DB_PRIVATE</a> flag is specified to the <a href="../api_reference/C/envopen.html" class="olink">DB_ENV-&gt;open()</a>
+ method.
+ </p>
+ <p>
+ Specifying the --enable-posixmutexes configuration
+ argument may require that applications and Berkeley DB
+ be linked with the -lpthread library.
+ </p>
</li>
<li>
<p><a id="build_unix_conf.--enable-pthread_api"></a>
- <span class="bold"><strong>--enable-pthread_api</strong></span>
- </p>
- <p>
- To configure Berkeley DB for a POSIX pthreads application (with
- the exception that POSIX pthread mutexes may not be selected as
- the underlying mutex implementation for the build), enter
- --enable-pthread_api as an argument to configure. The build
- will include the Berkeley DB replication manager interfaces and
- will use the POSIX standard pthread_self and pthread_yield
- functions to identify threads of control and yield the
- processor. The --enable-pthread_api argument requires POSIX
- pthread support already be installed on your system.
- </p>
- <p>
- Specifying the --enable-pthread_api configuration argument may
- require that applications and Berkeley DB be linked with the
- -lpthread library.
- </p>
+ <span class="bold"><strong>--enable-pthread_api</strong></span>
+ </p>
+ <p>
+ To configure Berkeley DB for a POSIX pthreads
+ application (with the exception that POSIX pthread
+ mutexes may not be selected as the underlying mutex
+ implementation for the build), enter
+ --enable-pthread_api as an argument to configure. The
+ build will include the Berkeley DB replication manager
+ interfaces and will use the POSIX standard
+ pthread_self and pthread_yield functions to identify
+ threads of control and yield the processor. The
+ --enable-pthread_api argument requires POSIX pthread
+ support already be installed on your system.
+ </p>
+ <p>
+ Specifying the --enable-pthread_api configuration
+ argument may require that applications and Berkeley DB
+ be linked with the -lpthread library.
+ </p>
</li>
<li>
<p><a id="build_unix_conf.--enable-sql"></a>
- <span class="bold"><strong>--enable-sql</strong></span>
- </p>
- <p>
- To build the command tool dbsql, enter --enable-sql as an argument to configure. The dbsql utility provides access to the Berkeley DB SQL interface. See
- <a class="xref" href="build_unix_sql.html" title="Configuring the SQL Interface">Configuring the SQL Interface</a>
- for more information.
- </p>
+ <span class="bold"><strong>--enable-sql</strong></span>
+ </p>
+ <p>
+ To build the command tool dbsql, enter --enable-sql
+ as an argument to configure. The dbsql utility
+ provides access to the Berkeley DB SQL interface. See
+ <a class="xref" href="build_unix_sql.html" title="Configuring the SQL Interface">Configuring the SQL
+ Interface</a> for more
+ information.
+ </p>
</li>
<li>
<p>
- <span class="bold"><strong>--enable-sql_compat</strong></span>
- </p>
- <p>
- To build the command tool sqlite3, enter --enable-sql_compat as an argument to configure. Sqlite3 is a command line tool that enables you to manually enter and execute SQL
-commands. It is identical to the dbsql executable but named so that existing scripts for SQLite can easily work with Berkeley DB. See
- <a class="xref" href="build_unix_sql.html" title="Configuring the SQL Interface">Configuring the SQL Interface</a>
- for more information.
- </p>
+ <span class="bold"><strong>--enable-sql_compat</strong></span>
+ </p>
+ <p>
+ To build the command tool sqlite3, enter
+ --enable-sql_compat as an argument to configure.
+ Sqlite3 is a command line tool that enables you to
+ manually enter and execute SQL commands. It is
+ identical to the dbsql executable but named so that
+ existing scripts for SQLite can easily work with
+ Berkeley DB. See <a class="xref" href="build_unix_sql.html" title="Configuring the SQL Interface">Configuring the SQL
+ Interface</a> for more
+ information.
+ </p>
</li>
<li>
<p>
- <span class="bold"><strong>--enable-sql_codegen</strong></span>
- </p>
- <p>
- To build the command line tool db_sql_codegen, enter --enable-sql_codegen as an argument to configure.
- The db_sql_codegen utility translates a schema description written in a SQL Data Definition Language dialect into C code that implements the schema using Berkeley DB.
- </p>
+ <span class="bold"><strong>--enable-sql_codegen</strong></span>
+ </p>
+ <p>
+ To build the command line tool db_sql_codegen,
+ enter --enable-sql_codegen as an argument to
+ configure. The db_sql_codegen utility translates a
+ schema description written in a SQL Data Definition
+ Language dialect into C code that implements the
+ schema using Berkeley DB.
+ </p>
</li>
<li>
<p>
- <span class="bold"><strong>--enable-smallbuild</strong></span>
- </p>
- <p>
- To build a small memory footprint version of the Berkeley DB
- library, enter --enable-smallbuild as an argument to configure.
- The --enable-smallbuild argument is equivalent to individually
- specifying --with-cryptography=no, --disable-hash,
- --disable-queue, --disable-replication, --disable-statistics
- and --disable-verify, turning off cryptography support, the
- Hash and Queue access methods, database environment replication
- support and database and log verification support. See
- <a class="xref" href="build_unix_small.html" title="Building a small memory footprint library">Building a small memory footprint library</a>
- for more information.
- </p>
+ <span class="bold"><strong>--enable-smallbuild</strong></span>
+ </p>
+ <p>
+ To build a small memory footprint version of the
+ Berkeley DB library, enter --enable-smallbuild as an
+ argument to configure. The --enable-smallbuild
+ argument is equivalent to individually specifying
+ --with-cryptography=no, --disable-hash,
+ --disable-heap, --disable-queue,
+ --disable-replication, --disable-statistics and
+ --disable-verify, turning off cryptography support,
+ the Hash, Heap and Queue access methods, database
+ environment replication support and database and log
+ verification support. See <a class="xref" href="build_unix_small.html" title="Building a small memory footprint library">Building a small memory footprint library</a> for more
+ information.
+ </p>
</li>
<li>
<p>
- <span class="bold"><strong>--enable-stl</strong></span>
- </p>
- <p>
- To build the Berkeley DB C++ STL API, enter --enable-stl as an
- argument to configure. Setting this argument implies that --enable-cxx is set,
- and the Berkeley DB C++ API will be built too.
-
- </p>
- <p>
- There will be a libdb_stl-X.X.a and libdb_stl-X.X.so
- built, which are the static and shared library you should link your application with in order to
- make use of Berkeley DB via its STL API.
-
- </p>
- <p>
- If your compiler is not ISO C++ compliant, the configure may fail with this argument
- specified because the STL API requires standard C++ template features. In this case,
- you will need a standard C++ compiler. So far gcc is the best choice, we have tested and found
- that gcc-3.4.4 and all its newer versions can build the Berkeley DB C++ STL API successfully.
- </p>
- <p>For information on db_stl supported compilers, see the <a href="../programmer_reference/stl.html#stl_intro_portability" class="olink">Portability section</a> in the <span class="emphasis"><em>Programmer's Reference Guide</em></span>.</p>
- <p>
-And you need to include the STL API header files in your application code.
-If you are using the Berkeley DB source tree, the header files are in &lt;Berkeley DB Source Root &gt;/stl directory;
-If you
-are using the installed version, these header files are in &lt; Berkeley DB Installed Directory&gt;/include, as well as the
-db.h and db_cxx.h header files.
-</p>
+ <span class="bold"><strong>--enable-stl</strong></span>
+ </p>
+ <p>
+ To build the Berkeley DB C++ STL API, enter
+ --enable-stl as an argument to configure. Setting this
+ argument implies that --enable-cxx is set, and the
+ Berkeley DB C++ API will be built too.
+ </p>
+ <p>
+ There will be a libdb_stl-X.X.a and
+ libdb_stl-X.X.so built, which are the static and
+ shared library you should link your application with
+ in order to make use of Berkeley DB via its STL API.
+ </p>
+ <p>
+ If your compiler is not ISO C++ compliant, the
+ configure may fail with this argument specified
+ because the STL API requires standard C++ template
+ features. In this case, you will need a standard C++
+ compiler. So far gcc is the best choice, we have
+ tested and found that gcc-3.4.4 and all its newer
+ versions can build the Berkeley DB C++ STL API
+ successfully.
+ </p>
+ <p>
+ For information on db_stl supported compilers, see
+ the <a href="../programmer_reference/stl.html#stl_intro_portability" class="olink">Portability
+ section</a> in the <span class="emphasis"><em>Programmer's
+ Reference Guide</em></span>.
+ </p>
+ <p>
+ And you need to include the STL API header files in
+ your application code. If you are using the Berkeley
+ DB source tree, the header files are in &lt;Berkeley
+ DB Source Root &gt;/stl directory; If you are using
+ the installed version, these header files are in &lt;
+ Berkeley DB Installed Directory&gt;/include, as well
+ as the db.h and db_cxx.h header files.
+ </p>
</li>
<li>
<p>
- <span class="bold"><strong>--enable-tcl</strong></span>
- </p>
- <p>
- To build the Berkeley DB Tcl API, enter --enable-tcl as an
- argument to configure. This configuration argument expects to
- find Tcl's tclConfig.sh file in the
- <code class="filename">/usr/local/lib</code> directory. See the
- --with-tcl argument for instructions on specifying a
- non-standard location for the Tcl installation. See
- <a href="../programmer_reference/tcl.html#tcl_intro" class="olink">Loading Berkeley DB with Tcl</a> for information on sites from which you can
- download Tcl and which Tcl versions are compatible with
- Berkeley DB. To build Tcl, you must also build with shared
- libraries.
- </p>
+ <span class="bold"><strong>--enable-tcl</strong></span>
+ </p>
+ <p>
+ To build the Berkeley DB Tcl API, enter
+ --enable-tcl as an argument to configure. This
+ configuration argument expects to find Tcl's
+ tclConfig.sh file in the
+ <code class="filename">/usr/local/lib</code> directory. See
+ the --with-tcl argument for instructions on specifying
+ a non-standard location for the Tcl installation. See
+ <a href="../programmer_reference/tcl.html#tcl_intro" class="olink">Loading Berkeley DB with Tcl</a> for information on sites from which you
+ can download Tcl and which Tcl versions are compatible
+ with Berkeley DB. To build Tcl, you must also build
+ with shared libraries.
+ </p>
</li>
<li>
<p><a id="build_unix_conf.--enable-test"></a>
- <span class="bold"><strong>--enable-test</strong></span>
- </p>
- <p>
- To build the Berkeley DB test suite, enter --enable-test as an
- argument to configure. To run the Berkeley DB test suite, you
- must also build the Tcl API. This argument should not be
- specified when configuring to build production binaries.
- </p>
+ <span class="bold"><strong>--enable-test</strong></span>
+ </p>
+ <p>
+ To build the Berkeley DB test suite, enter
+ --enable-test as an argument to configure. To run the
+ Berkeley DB test suite, you must also build the Tcl
+ API. This argument should not be specified when
+ configuring to build production binaries.
+ </p>
</li>
<li>
<p><a id="build_unix_conf.--enable-uimutexes"></a>
- <span class="bold"><strong>--enable-uimutexes</strong></span>
- </p>
- <p>
- To force Berkeley DB to use the UNIX International (UI) mutex
- interfaces for underlying mutex support, enter
- --enable-uimutexes as an argument to configure. This is rarely
- necessary: UI mutexes will be selected automatically on systems
- where they are the preferred implementation.
- </p>
- <p>
- The --enable-uimutexes configuration argument is normally used
- when there are multiple mutex implementations available and the
- UI mutex implementation is not the preferred one (for example,
- on Solaris where the LWP mutexes are used by default).
- </p>
- <p>
- Specifying the --enable-uimutexes configuration argument may
- require that applications and Berkeley DB be linked with the
- -lthread library.
- </p>
+ <span class="bold"><strong>--enable-uimutexes</strong></span>
+ </p>
+ <p>
+ To force Berkeley DB to use the UNIX International
+ (UI) mutex interfaces for underlying mutex support,
+ enter --enable-uimutexes as an argument to configure.
+ This is rarely necessary: UI mutexes will be selected
+ automatically on systems where they are the preferred
+ implementation.
+ </p>
+ <p>
+ The --enable-uimutexes configuration argument is
+ normally used when there are multiple mutex
+ implementations available and the UI mutex
+ implementation is not the preferred one (for example,
+ on Solaris where the LWP mutexes are used by default).
+ </p>
+ <p>
+ Specifying the --enable-uimutexes configuration
+ argument may require that applications and Berkeley DB
+ be linked with the -lthread library.
+ </p>
</li>
<li>
<p><a id="build_unix_conf.--enable-umrw"></a>
- <span class="bold"><strong>--enable-umrw</strong></span>
- </p>
- <p>
- Rational Software's Purify product and other run-time tools
- complain about uninitialized reads/writes of structure fields
- whose only purpose is padding, as well as when heap memory that
- was never initialized is written to disk. Specify the
- --enable-umrw argument during configuration to mask these
- errors. This argument should not be specified when configuring
- to build production binaries.
- </p>
+ <span class="bold"><strong>--enable-umrw</strong></span>
+ </p>
+ <p>
+ Rational Software's Purify product and other
+ run-time tools complain about uninitialized
+ reads/writes of structure fields whose only purpose is
+ padding, as well as when heap memory that was never
+ initialized is written to disk. Specify the
+ --enable-umrw argument during configuration to mask
+ these errors. This argument should not be specified
+ when configuring to build production binaries.
+ </p>
</li>
<li>
<p><a id="build_unix_conf.--enable-dtrace"></a>
- <span class="bold"><strong>--enable-dtrace</strong></span>
- [<span class="bold"><strong>--enable-perfmon-statistics</strong></span>]
- </p>
- <p>
- To build Berkeley DB with performance event monitoring probes
- add --enable-dtrace to the configuration options. Both native
- DTrace (on Solaris and Mac OS X) and the
- Statically Defined Tracing compatibility layer
- in Linux SystemTap version 1.1 or better are supported.
- That compatibility package may be called systemtap-sdt-devel;
- it includes <code class="filename">sys/sdt.h</code>.
- </p>
- <p>
- If --enable-perfmon-statistics is combined with --enable-dtrace
- then additional probes are defined for the tracking variables
- from which DB's statistics are obtained.
- They allow DTrace and SystemTap access to these values when
- they are updated, are the basis of the statistics
- as displayed db_stat and the API functions that return statistics.
- </p>
- <p>
- The --enable-dtrace option may not be specified at the same time
- as --disable-statistics.
- </p>
- <p>
- For information on Berkeley DB Performance Event Monitoring,
- see the
- <a href="../programmer_reference/program_perfmon.html" class="olink">Performance Event Monitoring</a>
- section in the
- <span class="emphasis"><em>Programmer's Reference Guide</em></span>.
- </p>
+ <span class="bold"><strong>--enable-dtrace</strong></span>
+ [<span class="bold"><strong>--enable-perfmon-statistics</strong></span>]
+ </p>
+ <p>
+ To build Berkeley DB with performance event
+ monitoring probes add --enable-dtrace to the
+ configuration options. Both native DTrace (on Solaris
+ and Mac OS X) and the Statically Defined Tracing
+ compatibility layer in Linux SystemTap version 1.1 or
+ better are supported. That compatibility package may
+ be called systemtap-sdt-devel; it includes
+ <code class="filename">sys/sdt.h</code>.
+ </p>
+ <p>
+ If --enable-perfmon-statistics is combined with
+ --enable-dtrace then additional probes are defined for
+ the tracking variables from which DB's statistics are
+ obtained. They allow DTrace and SystemTap access to
+ these values when they are updated, are the basis of
+ the statistics as displayed db_stat and the API
+ functions that return statistics.
+ </p>
+ <p>
+ The --enable-dtrace option may not be specified at
+ the same time as --disable-statistics.
+ </p>
+ <p>
+ For information on Berkeley DB Performance Event
+ Monitoring, see the <a href="../programmer_reference/program_perfmon.html" class="olink">Performance Event
+ Monitoring</a> section in the
+ <span class="emphasis"><em>Programmer's Reference Guide</em></span>.
+ </p>
</li>
<li>
<p><a id="build_unix_conf.--enable-localization"></a>
- <span class="bold"><strong>--enable-localization</strong></span>
- </p>
- <p>
- Enable localized error message text, if available.
- This option should not be used when
- <code class="literal">--enable-stripped_messages</code>
- is in use.
- </p>
+ <span class="bold"><strong>--enable-localization</strong></span>
+ </p>
+ <p>
+ Enable localized error message text, if available.
+ This option should not be used when
+ <code class="literal">--enable-stripped_messages</code> is
+ in use.
+ </p>
</li>
<li>
<p><a id="build_unix_conf.--enable-stripped_messages"></a>
- <span class="bold"><strong>--enable-stripped_messages</strong></span>
- </p>
- <p>
- Causes all error messages to be stripped of their textual
- information. Instead, only error return codes are used. This
- option should not be used when
- <code class="literal">--enable-localization</code>
- is in use. Use of this build option can reduce your library
- foot print by up to 44KB (.so) or 50KB (.a).
- </p>
- <p>
- If you use this configuration option, you can get an idea of
- what text should be issued for a given error message by using
- the <a href="../articles/mssgtxt/index.html" class="olink">Message
- Reference for Stripped Libraries</a> guide.
- </p>
+ <span class="bold"><strong>--enable-stripped_messages</strong></span>
+ </p>
+ <p>
+ Causes all error messages to be stripped of their
+ textual information. Instead, only error return codes
+ are used. This option should not be used when
+ <code class="literal">--enable-localization</code> is in
+ use. Use of this build option can reduce your library
+ foot print by up to 44KB (.so) or 50KB (.a).
+ </p>
+ <p>
+ If you use this configuration option, you can get
+ an idea of what text should be issued for a given
+ error message by using the <a href="../articles/mssgtxt/index.html" class="olink">Berkeley DB Message Reference Guide</a>.
+ </p>
</li>
<li>
<p><a id="build_unix_conf.--with-cryptography"></a>
- <span class="bold"><strong>--with-cryptography</strong></span>
- </p>
- <p>
- To build Berkeley DB with support for cryptography, enter --with-cryptography=yes as an argument to configure.
- </p>
- <p>To build Berkeley DB without support for cryptography, enter --with-cryptography=no as an argument to configure.
- </p>
- <p>To build Berkeley DB with support for cryptography using Intel's Performance Primitive (IPP) library, enter --with-cryptography=ipp as an argument to configure. Additionally, set the following arguments:</p>
- <p>-L/path/to/ipp/sharedlib to LDFLAGS</p>
- <p>-I/path/to/ipp/include to CPPFLAGS</p>
- <p>-lippcpem64t -lpthread to LIBS</p>
- <p> An example configuration command for IPP encryption is as follows:</p>
- <p></p>
+ <span class="bold"><strong>--with-cryptography</strong></span>
+ </p>
+ <p>
+ Enter <code class="literal">--with-cryptography=yes|no</code>
+ to build Berkeley DB libraries with or without
+ cryptography support. By default, cryptography is
+ enabled for Berkeley DB base libraries, and disabled
+ when building the optional Berkeley DB SQL and JDBC
+ libraries.
+ </p>
+ <p>
+ To build Berkeley DB with support for cryptography
+ using Intel's Performance Primitive (IPP) library,
+ enter <code class="literal">--with-cryptography=ipp</code> as an
+ argument to configure. Additionally, set the following
+ arguments:
+ </p>
+ <div class="itemizedlist">
+ <ul type="circle">
+ <li>
+ <p>
+ -L/path/to/ipp/sharedlib to LDFLAGS
+ </p>
+ </li>
+ <li>
+ <p>
+ -I/path/to/ipp/include to CPPFLAGS
+ </p>
+ </li>
+ <li>
+ <p>
+ -lippcpem64t -lpthread to LIBS
+ </p>
+ </li>
+ </ul>
+ </div>
+ <p>
+ An example configuration command for IPP encryption
+ is as follows:
+ </p>
<pre class="programlisting"> ../dist/configure -with-cryptography=ipp
CPPFLAGS="-I/opt/intel/ipp/6.1.3.055/em64t/include"
LDFLAGS="-L/opt/intel/ipp/6.1.3.055/em64t/sharedlib"
LIBS="-lippcpem64t -lpthread"</pre>
- <p>See the<a class="ulink" href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-documentation/" target="_top"> Intel Documenation</a> for specific instructions on configuring environment variables.</p>
- <p>Note: The --with-cryptography=ipp argument works only on Linux.</p>
+ <p>
+ See the <a class="ulink" href="https://software.intel.com/en-us/articles/intel-integrated-performance-primitives-documentation/" target="_top">
+ Intel Documentation</a> for specific
+ instructions on configuring environment variables.
+ </p>
+ <p>
+ Note: The <code class="literal">--with-cryptography=ipp</code>
+ argument works only on Linux.
+ </p>
</li>
<li>
<p><a id="build_unix_conf.--with-mutex"></a>
- <span class="bold"><strong>--with-mutex=MUTEX</strong></span>
- </p>
- <p>
- To force Berkeley DB to use a specific mutex implementation,
- configure with --with-mutex=MUTEX, where MUTEX is the mutex
- implementation you want. For example,
- --with-mutex=x86/gcc-assembly will configure Berkeley DB to use
- the x86 GNU gcc compiler based test-and-set assembly mutexes.
- This is rarely necessary and should be done only when the
- default configuration selects the wrong mutex implementation.
- A list of available mutex implementations can be found in the
- distribution file <code class="filename">dist/aclocal/mutex.m4</code>.
- </p>
+ <span class="bold"><strong>--with-mutex=MUTEX</strong></span>
+ </p>
+ <p>
+ To force Berkeley DB to use a specific mutex
+ implementation, configure with --with-mutex=MUTEX,
+ where MUTEX is the mutex implementation you want. For
+ example, --with-mutex=x86/gcc-assembly will configure
+ Berkeley DB to use the x86 GNU gcc compiler based
+ test-and-set assembly mutexes. This is rarely
+ necessary and should be done only when the default
+ configuration selects the wrong mutex implementation.
+ A list of available mutex implementations can be found
+ in the distribution file
+ <code class="filename">dist/aclocal/mutex.m4</code>.
+ </p>
</li>
<li>
<p>
- <span class="bold"><strong>--with-tcl=DIR</strong></span>
- </p>
- <p>
- To build the Berkeley DB Tcl API, enter --with-tcl=DIR,
- replacing DIR with the directory in which the Tcl tclConfig.sh
- file may be found. See <a href="../programmer_reference/tcl.html#tcl_intro" class="olink">Loading Berkeley DB with Tcl</a> for information on sites from
- which you can download Tcl and which Tcl versions are
- compatible with Berkeley DB. To build Tcl, you must also build
- with shared libraries.
- </p>
+ <span class="bold"><strong>--with-tcl=DIR</strong></span>
+ </p>
+ <p>
+ To build the Berkeley DB Tcl API, enter
+ --with-tcl=DIR, replacing DIR with the directory in
+ which the Tcl tclConfig.sh file may be found. See
+ <a href="../programmer_reference/tcl.html#tcl_intro" class="olink">Loading Berkeley DB with Tcl</a> for information on sites from which you
+ can download Tcl and which Tcl versions are compatible
+ with Berkeley DB. To build Tcl, you must also build
+ with shared libraries.
+ </p>
</li>
<li>
<p><a id="build_unix_conf.--with-uniquename=NAME"></a>
- <span class="bold"><strong>--with-uniquename=NAME</strong></span>
- </p>
- <p>
- To build Berkeley DB with unique symbol names (in order to
- avoid conflicts with other application modules or libraries),
- enter --with-uniquename=NAME, replacing NAME with a string that
- to be appended to every Berkeley DB symbol. If "=NAME" is not
- specified, a default value of "_MAJORMINOR" is used, where
- MAJORMINOR is the major and minor release numbers of the
- Berkeley DB release. See <a class="xref" href="install_multiple.html" title="Building with multiple versions of Berkeley DB">Building with multiple versions of Berkeley DB</a> for more information.
- </p>
+ <span class="bold"><strong>--with-uniquename=NAME</strong></span>
+ </p>
+ <p>
+ To build Berkeley DB with unique symbol names (in
+ order to avoid conflicts with other application
+ modules or libraries), enter --with-uniquename=NAME,
+ replacing NAME with a string that to be appended to
+ every Berkeley DB symbol. If "=NAME" is not specified,
+ a default value of "_MAJORMINOR" is used, where
+ MAJORMINOR is the major and minor release numbers of
+ the Berkeley DB release. See <a class="xref" href="install_multiple.html" title="Building with multiple versions of Berkeley DB">Building with multiple versions of Berkeley DB</a> for more
+ information.
+ </p>
</li>
</ul>
</div>
@@ -542,13 +680,13 @@ db.h and db_cxx.h header files.
<td width="40%" align="right"> <a accesskey="n" href="build_unix_sql.html">Next</a></td>
</tr>
<tr>
- <td width="40%" align="left" valign="top">Chapter 7. 
- Building Berkeley DB for UNIX/POSIX
-  </td>
+ <td width="40%" align="left" valign="top">Chapter 7.  Building Berkeley DB for UNIX/POSIX
+  </td>
<td width="20%" align="center">
<a accesskey="h" href="index.html">Home</a>
</td>
- <td width="40%" align="right" valign="top"> Configuring the SQL Interface</td>
+ <td width="40%" align="right" valign="top"> Configuring the SQL
+ Interface</td>
</tr>
</table>
</div>