1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
|
<?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>Windows Mobile FAQ</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_wince.html" title="Chapter 6. Building Berkeley DB for Windows Mobile" />
<link rel="prev" href="build_wince_notes.html" title="Windows Mobile notes" />
<link rel="next" href="build_winec_intro.html" title="Building for Windows Embedded Compact 7" />
</head>
<body>
<div xmlns="" class="navheader">
<div class="libver">
<p>Library Version 12.1.6.1</p>
</div>
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">Windows Mobile FAQ</th>
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="build_wince_notes.html">Prev</a> </td>
<th width="60%" align="center">Chapter 6. Building Berkeley DB for Windows Mobile </th>
<td width="20%" align="right"> <a accesskey="n" href="build_winec_intro.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_wince_faq"></a>Windows Mobile FAQ</h2>
</div>
</div>
</div>
<div class="orderedlist">
<ol type="1">
<li><span class="bold"><strong>What if my Windows Mobile device
does not support SetFilePointer and/or
SetEndOfFile?</strong></span><p>
You can manually disable the truncate functionality
from the build.
</p><p>
Do that by opening the
<code class="filename">db-X.X.X/build_wince/db_config.h</code>
file, and change the line that reads
</p><pre class="programlisting">#define HAVE_FTRUCATE 1</pre>
to read
<pre class="programlisting">#undef HAVE_FTRUNCATE</pre><p>
Making this change disables <a href="../api_reference/C/dbcompact.html" class="olink">DB->compact()</a> for btree
databases.
</p></li>
<li>
<span class="bold">
<strong>Why doesn't automatic log archiving work?</strong>
</span>
<p>
The Windows Mobile platform does not have a concept
of a working directory. This means that the
<a href="../api_reference/C/logarchive.html#archive_DB_ARCH_REMOVE" class="olink">DB_ARCH_REMOVE</a> and <a href="../api_reference/C/logarchive.html#archive_DB_ARCH_ABS" class="olink">DB_ARCH_ABS</a> flags do not work
properly within Windows Mobile, because they rely on
having a working directory.
</p>
<p>
To work around this issue, you can call log_archive
with the <a href="../api_reference/C/logarchive.html#archive_DB_ARCH_LOG" class="olink">DB_ARCH_LOG</a> flag, the list of returned file
handles will not contain absolute paths. Your
application can take this list of files, construct
absolute paths, and delete the files.
</p>
</li>
<li>
<span class="bold">
<strong>Does Berkeley DB support Windows Mobile?</strong>
</span>
<p>
Yes.
</p>
<p>
Berkeley DB relies on a subset of the Windows API,
and some standard C library APIs. These are provided
by Windows CE. Windows Mobile is built "on top" of
Windows CE.
</p>
</li>
<li>
<span class="bold">
<strong>Does Berkeley DB support Windows CE?</strong>
</span>
<p>Yes. </p>
<p>
Berkeley DB relies on a subset of the Windows API,
and some standard C library APIs. These are provided
by Windows CE.
</p>
</li>
<li>
<span class="bold">
<strong>Does Berkeley DB support Windows Embedded
Compact 7?</strong>
</span>
<p>Yes. </p>
<p>
Starting from release 12.1.6.1, it is possible to build Berkeley DB
on Windows Embedded Compact 7. Below are tips for the build process:
</p>
<div class="orderedlist">
<ol type="a">
<li>
<span class="emphasis">
<em>Compile error at line 146 in stdlib.h</em>
</span>
<p>
This is a known bug for the Windows Embedded Compact 7 SDK.
A workaround is to change the line 146 in stdlib.h to read:
</p>
<pre class="programlisting">__checkReturn __bcount(_Size) void * __cdecl _alloca(__in size_t
_Size);</pre>
</li>
<li>
<span class="emphasis">
<em>error LNK2019: unresolved external symbol _localtime_s referenced in function _osLocaltime</em>
</span>
<p>
This link error is caused by the fact that the Windows
Embedded Compact 7 runtime used to link Berkeley DB does not
provide the localtime_s() function. A workaround is to add
</p>
<pre class="programlisting">HAVE_LOCALTIME_S=0</pre>
<p>
to the proprocessor definitions of the db_sql project. This
can be done by right clicking the db_sql project, select
Properties->Configuration Properties->C/C++->Preprocessor->Proprocessor Definitions,
and append </p>
<pre class="programlisting">HAVE_LOCALTIME_S=0</pre>
<p>
at the end of the list.
</p>
</li>
<li>
<span class="emphasis">
<em>error LNK1221: a subsystem can't be inferred and must be defined</em>
</span>
<p>
This link error happens on Visual Studio 2008, because it
cannot understand the subsystem configured for Visual
Studio 2005. To fix this error, right click the project
reporting this link error, select Properties->Configuration Properties->
Linker->System->SubSystem, and change the value to WindowsCE (/SUBSYSTEM:WINDOWSCE).
</p>
</li>
<li>
<span class="emphasis">
<em>warning C4996: 'xxx': This function or variable may be unsafe.</em>
</span>
<p>
Used within the Berkeley DB source tree, these functions are actually safe.
You can safely ignore these warnings.
</p>
</li>
</ol>
</div>
</li>
<li>
<span class="bold">
<strong>What platforms are the supplied
sample applications designed for?</strong>
</span>
<p>
The supplied sample applications were developed for
the Pocket PC 2003 emulator. They are known to work on
real pocket PC devices and later versions of the
emulator as well.
</p>
<p>
The supplied applications are not designed to work
with Smartphone devices. The screen size and input
mechanisms are not compatible.
</p>
</li>
<li>
<span class="bold">
<strong>I see a file mapping error when
opening a Berkeley DB environment or database. What is
wrong?</strong>
</span>
<p>
The default behavior of Berkeley DB is to use memory
mapped files in the environment. Windows Mobile does
not allow memory mapped files to be created on flash
storage.
</p>
<p>
There are two workarounds:
</p>
<div class="orderedlist">
<ol type="a">
<li>
Configure the Berkeley DB environment not
to use memory mapped files. The options are
discussed in detail in <a href="../programmer_reference/env_region.html" class="olink">Shared memory region</a>.
</li>
<li>
Create the Berkeley DB environment on
non-flash storage. It is possible to store
database and log files in a different location to
using the <a href="../api_reference/C/envadd_data_dir.html" class="olink">DB_ENV->add_data_dir()</a> and <a href="../api_reference/C/envset_lg_dir.html" class="olink">DB_ENV->set_lg_dir()</a>
APIs.
</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_wince_notes.html">Prev</a> </td>
<td width="20%" align="center">
<a accesskey="u" href="build_wince.html">Up</a>
</td>
<td width="40%" align="right"> <a accesskey="n" href="build_winec_intro.html">Next</a></td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Windows Mobile notes </td>
<td width="20%" align="center">
<a accesskey="h" href="index.html">Home</a>
</td>
<td width="40%" align="right" valign="top"> Building for Windows
Embedded Compact 7</td>
</tr>
</table>
</div>
</body>
</html>
|