mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-16 09:06:25 +00:00
159 lines
8 KiB
HTML
159 lines
8 KiB
HTML
<?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>AIX</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_notes.html" title="Architecture independent FAQ" />
|
||
<link rel="next" href="build_unix_freebsd.html" title="FreeBSD" />
|
||
</head>
|
||
<body>
|
||
<div xmlns="" class="navheader">
|
||
<div class="libver">
|
||
<p>Library Version 11.2.5.3</p>
|
||
</div>
|
||
<table width="100%" summary="Navigation header">
|
||
<tr>
|
||
<th colspan="3" align="center">AIX</th>
|
||
</tr>
|
||
<tr>
|
||
<td width="20%" align="left"><a accesskey="p" href="build_unix_notes.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_freebsd.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_aix"></a>AIX</h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="orderedlist">
|
||
<ol type="1">
|
||
<li>
|
||
<span class="bold">
|
||
<strong>I can't compile and run multithreaded applications.</strong>
|
||
</span>
|
||
<p>Special compile-time flags are required when compiling threaded
|
||
applications on AIX. If you are compiling a threaded application, you
|
||
must compile with the _THREAD_SAFE flag and load with specific
|
||
libraries; for example, "-lc_r". Specifying the compiler name with a
|
||
trailing "_r" usually performs the right actions for the system.</p>
|
||
<pre class="programlisting">xlc_r ...
|
||
cc -D_THREAD_SAFE -lc_r ...</pre>
|
||
<p>The Berkeley DB library will automatically build with the correct options.</p>
|
||
</li>
|
||
<li>
|
||
<span class="bold">
|
||
<strong>I can't run using the <a href="../api_reference/C/envopen.html#envopen_DB_SYSTEM_MEM" class="olink">DB_SYSTEM_MEM</a> option to
|
||
<a href="../api_reference/C/envopen.html" class="olink">DB_ENV->open()</a>.</strong>
|
||
</span>
|
||
<p>AIX 4.1 allows applications to map only 10 system shared memory
|
||
segments. In AIX 4.3, this has been raised to 256K segments, but only
|
||
if you set the environment variable "export EXTSHM=ON".</p>
|
||
</li>
|
||
<li>
|
||
<span class="bold">
|
||
<strong>On AIX 4.3.2 (or before) I see duplicate symbol warnings when
|
||
building the C++ shared library and when linking applications.</strong>
|
||
</span>
|
||
<p>We are aware of some duplicate symbol warnings with this platform,
|
||
but they do not appear to affect the correct operation of applications.</p>
|
||
</li>
|
||
<li>
|
||
<span class="bold">
|
||
<strong>On AIX 4.3.3 I see undefined symbols for DbEnv::set_error_stream,
|
||
Db::set_error_stream or DbEnv::verify when linking C++ applications.
|
||
(These undefined symbols also appear when building the Berkeley DB C++ example
|
||
applications).</strong>
|
||
</span>
|
||
<p>By default, Berkeley DB is built with _LARGE_FILES set to 1 to support the
|
||
creation of "large" database files. However, this also affects how
|
||
standard classes, like iostream, are named internally. When building
|
||
your application, use a "-D_LARGE_FILES=1" compilation option, or insert
|
||
"#define _LARGE_FILES 1" before any #include statements.</p>
|
||
</li>
|
||
<li>
|
||
<span class="bold">
|
||
<strong>I can't create database files larger than 1GB on AIX.</strong>
|
||
</span>
|
||
<p>If you're running on AIX 4.1 or earlier, try changing the source code
|
||
for <code class="filename">os/os_open.c</code> to always specify the <span class="bold"><strong>O_LARGEFILE</strong></span>
|
||
flag to the <code class="literal">open</code>(2) system call, and recompile Berkeley DB from
|
||
scratch.</p>
|
||
<p>Also, the documentation for the IBM Visual Age compiler states that it
|
||
does not not support the 64-bit filesystem APIs necessary for creating
|
||
large files; the ibmcxx product must be used instead. We have not heard
|
||
whether the GNU gcc compiler supports the 64-bit APIs or not.</p>
|
||
<p>Finally, to create large files under AIX, the filesystem has to be
|
||
configured to support large files and the system wide user hard-limit
|
||
for file sizes has to be greater than 1GB.</p>
|
||
</li>
|
||
<li>
|
||
<span class="bold">
|
||
<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>
|
||
<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>
|
||
</ol>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<span class="bold">
|
||
<strong>I see the error "Redeclaration of lseek64" when building Berkeley DB with the --enable-sql and --enable-test options.</strong>
|
||
</span>
|
||
<p>In some releases of AIX, the system include files (most commonly <code class="literal">unistd.h</code>) redefine <code class="literal">lseek</code> to <code class="literal">lseek64</code> when large-file support is enabled even though <code class="literal">lseek</code> may have already been defined when the <code class="literal">_LARGE_FILE_API</code> macro is on. To work around this problem, do either one of the following:
|
||
</p>
|
||
<div class="orderedlist">
|
||
<ol type="a">
|
||
<li>Disable large-file support in Berkeley DB by specifying the <code class="literal">--disable-largefile</code> configuration option and rebuilding. </li>
|
||
<li>Edit <code class="literal">db.h</code> manually after running the configure command, and remove the line that includes <code class="literal">unistd.h</code>. </li>
|
||
</ol>
|
||
</div>
|
||
</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_notes.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_freebsd.html">Next</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td width="40%" align="left" valign="top">Architecture independent FAQ </td>
|
||
<td width="20%" align="center">
|
||
<a accesskey="h" href="index.html">Home</a>
|
||
</td>
|
||
<td width="40%" align="right" valign="top"> FreeBSD</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
</body>
|
||
</html>
|