Sindbad~EG File Manager
<?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>Configuring Berkeley DB</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 5. Building Berkeley DB for UNIX/POSIX" />
<link rel="prev" href="build_unix.html" title="Chapter 5. Building Berkeley DB for UNIX/POSIX" />
<link rel="next" href="build_unix_small.html" title="Building a small memory footprint library" />
</head>
<body>
<div xmlns="" class="navheader">
<div class="libver">
<p>Library Version 18.1.40</p>
</div>
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">Configuring Berkeley DB</th>
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="build_unix.html">Prev</a> </td>
<th width="60%" align="center">Chapter 5. Building Berkeley DB for UNIX/POSIX
</th>
<td width="20%" align="right"> <a accesskey="n" href="build_unix_small.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_conf"></a>Configuring Berkeley DB</h2>
</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>
<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>
</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>
</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>
</li>
<li>
<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>
</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>
</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>
</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>
</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>
</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>
</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>
</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->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>
<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->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>
</li>
<li>
<p><a id="build_unix_conf.--enable-slices"></a>
<span class="bold"><strong>--enable-slices</strong></span>
</p>
<p>
Enable environment and database slice support.
</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
--disable-compression,
--with-cryptography=no, --disable-hash,
--disable-heap, --disable-queue, --disable-partition,
--disable-replication, --disable-statistics and
--disable-verify, turning off compression and
cryptography support, the Hash, Heap and Queue access
methods, support for partitioning, 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 <Berkeley
DB Source Root >/stl directory; If you are using
the installed version, these header files are in <
Berkeley DB Installed Directory>/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>
</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>
</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>
</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>
<p>
This flag can also be used to prevent data in the heap
from leaking onto unused parts of database pages when
using the environment flag DB_PRIVATE.
</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>
</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>
</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">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>
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.
</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="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>
</li>
<li>
<p><a id="build_unix_conf.--with-repmgr-ssl"></a>
<span class="bold"><strong>--with-repmgr-ssl</strong></span>
</p>
<p>
Enter <code class="literal">--with-repmgr-ssl=yes|no|default</code> to build
Berkeley DB libraries with or without Secure Sockets Layer (SSL) support.
If <code class="literal">–-with-repmgr-ssl</code> is not specified, then SSL support
for replication manager is built by default depending on the availability
of suitable SSL libraries and headers. If SSL libraries and headers
are not present then appropriate warning will be generated.
Note that to ensure that SSL support is built or blocking issues are reported as errors
during configuration, you must specify
<code class="literal">--with-repmgr-ssl=yes</code> to configure script as an argument.
Entering <code class="literal">--with-repmgr-ssl=no</code> disables
build of SSL support for the Replication Manager.
</p>
<p>
To build Berkeley DB Replication Manager with support for SSL library installed in
a custom location, enter <code class="literal">--with-repmgr-ssl=yes</code> as an
argument to configure. Additionally, set the following arguments
when you run the configuration command:
</p>
<div class="itemizedlist">
<ul type="circle">
<li>
<p>
<code class="literal">-L/path/to/ssl/sharedlib</code> to <code class="literal">LDFLAGS</code>
</p>
</li>
<li>
<p>
<code class="literal">-I/path/to/ssl/include</code> to <code class="literal">CPPFLAGS</code>
</p>
</li>
<li>
<p>
<code class="literal">-lssl -lcrypto -lpthread</code> to <code class="literal">LIBS</code>
</p>
</li>
</ul>
</div>
<p>
A sample configuration command for custom SSL location is as follows:
</p>
<pre class="programlisting"> ../dist/configure -with-repmgr-ssl=yes
CPPFLAGS="-I/home/ssluser/Downloads/openssl-1.1.0g/include"
LDFLAGS="-L/home/ssluser/Downloads/openssl-1.1.0g/"
LIBS="-lssl -lcrypto -lpthread"</pre>
</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>
</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>
</li>
</ul>
</div>
</div>
<div class="navfooter">
<hr />
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left"><a accesskey="p" href="build_unix.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_small.html">Next</a></td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Chapter 5. 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"> Building a small memory footprint library</td>
</tr>
</table>
</div>
</body>
</html>
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists