~ubuntu-branches/ubuntu/maverick/evolution-data-server/maverick-proposed

« back to all changes in this revision

Viewing changes to libdb/docs/ref/build_vxworks/faq.html

  • Committer: Bazaar Package Importer
  • Author(s): Didier Roche
  • Date: 2010-05-17 17:02:06 UTC
  • mfrom: (1.1.79 upstream) (1.6.12 experimental)
  • Revision ID: james.westby@ubuntu.com-20100517170206-4ufr52vwrhh26yh0
Tags: 2.30.1-1ubuntu1
* Merge from debian experimental. Remaining change:
  (LP: #42199, #229669, #173703, #360344, #508494)
  + debian/control:
    - add Vcs-Bzr tag
    - don't use libgnome
    - Use Breaks instead of Conflicts against evolution 2.25 and earlier.
  + debian/evolution-data-server.install,
    debian/patches/45_libcamel_providers_version.patch:
    - use the upstream versioning, not a Debian-specific one 
  + debian/libedata-book1.2-dev.install, debian/libebackend-1.2-dev.install,
    debian/libcamel1.2-dev.install, debian/libedataserverui1.2-dev.install:
    - install html documentation
  + debian/rules:
    - don't build documentation it's shipped with the tarball

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<!--$Id$-->
2
 
<!--Copyright 1997-2002 by Sleepycat Software, Inc.-->
3
 
<!--All rights reserved.-->
4
 
<!--See the file LICENSE for redistribution information.-->
5
 
<html>
6
 
<head>
7
 
<title>Berkeley DB Reference Guide: VxWorks FAQ</title>
8
 
<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
9
 
<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
10
 
</head>
11
 
<body bgcolor=white>
12
 
<a name="2"><!--meow--></a><a name="3"><!--meow--></a>
13
 
<table width="100%"><tr valign=top>
14
 
<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for VxWorks systems</dl></h3></td>
15
 
<td align=right><a href="../../ref/build_vxworks/notes.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade/version.html"><img src="../../images/next.gif" alt="Next"></a>
16
 
</td></tr></table>
17
 
<p>
18
 
<h1 align=center>VxWorks FAQ</h1>
19
 
<p><ol>
20
 
<p><li><b>I get the error "Workspace open failed: This project workspace is an
21
 
older format.", when trying to open the supplied workspace on Tornado 2.0
22
 
under Windows.</b>
23
 
<p>This error will occur if the files were extracted in a manner that adds
24
 
a CR/LF to lines in the file.  Make sure that you download the Berkeley DB
25
 
".zip" version of the Berkeley DB distribution, and, when extracting the Berkeley DB
26
 
sources, that you use an unzipper program that will not do any
27
 
conversion.
28
 
<p><li><b>I sometimes see spurious output errors about temporary directories.</b>
29
 
<p>These messages are coming from the <b>stat</b>(2) function call
30
 
in VxWorks.  Unlike other systems, there may not be a well known
31
 
temporary directory on the target.  Therefore, we highly recommend that
32
 
all applications use <a href="../../api_c/env_set_tmp_dir.html">DB_ENV-&gt;set_tmp_dir</a> to
33
 
specify a temporary directory for the application.
34
 
<p><li><b>How can I build Berkeley DB without using Tornado?</b>
35
 
<p>The simplest way to build Berkeley DB without using Tornado is to configure
36
 
Berkeley DB on a UNIX system, and then use the Makefile and include files
37
 
generated by that configuration as the starting point for your build.
38
 
The Makefile and include files are created during configuration, in the
39
 
current directory, based on your configuration decisions (for example,
40
 
debugging vs.  non-debugging builds), so you'll need to configure the
41
 
system for the way you want Berkeley DB to be built.
42
 
<p>Additionally, you'll need to account for the slight difference between
43
 
the set of source files used in a UNIX build and the set used in a
44
 
VxWorks build.  You can use the following command to create a list of
45
 
the Berkeley DB VxWorks files.  The commands assume you are in the build_vxworks
46
 
directory of the Berkeley DB distribution:
47
 
<p><blockquote><pre>% cat &gt; /tmp/files.sed
48
 
s/&lt;BEGIN&gt; FILE_//
49
 
s/_objects//
50
 
^D
51
 
% grep FILE_ BerkeleyDB.wpj | grep _objects | sed -f /tmp/files.sed &gt; /tmp/db.files</pre></blockquote>
52
 
<p>You will then have a template Makefile and include files, and a list of
53
 
VxWorks-specific source files.  You will need to convert this Makefile
54
 
and list of files into a form that is acceptable to your specific build
55
 
environment.
56
 
<p><li><b>Does Berkeley DB use floating point registers?</b>
57
 
<p>Yes, there are a few places in Berkeley DB where floating point computations
58
 
are performed.  As a result, all applications that call
59
 
<i>taskSpawn</i> should specify the <b>VX_FP_TASK</b> option.
60
 
<p><li><b>Can I run the test suite under VxWorks?</b>
61
 
<p>The test suite requires the Berkeley DB Tcl library.  In turn, this library
62
 
requires Tcl 8.1 or greater.  In order to run the test suite, you would
63
 
need to port Tcl 8.1 or greater to VxWorks.  The Tcl shell included in
64
 
<i>windsh</i> is not adequate for two reasons.  First, it is based on
65
 
Tcl 8.0.  Second, it does not include the necessary Tcl components for
66
 
adding a Tcl extension.
67
 
<p><li><b>Are all Berkeley DB features available for VxWorks?</b>
68
 
<p>All Berkeley DB features are available for VxWorks with the exception of the
69
 
<a href="../../api_c/db_open.html#DB_TRUNCATE">DB_TRUNCATE</a> flag for <a href="../../api_c/db_open.html">DB-&gt;open</a>.  The underlying mechanism
70
 
needed for that flag is not available consistently across different file
71
 
systems for VxWorks.
72
 
<p><li><b>Are there any constraints using particular filesystem drivers?</b>
73
 
<p>There are constraints using the dosFs filesystems with Berkeley DB.  Namely,
74
 
you must configure your dosFs filesystem to support long filenames if
75
 
you are using Berkeley DB logging in your application.  The VxWorks' dosFs
76
 
1.0 filesystem, by default, uses the old MS-DOS 8.3 file-naming
77
 
constraints, restricting to 8 character filenames with a 3 character
78
 
extension.  If you have configured with VxWorks' dosFs 2.0 you should
79
 
be compatible with Windows FAT32 filesystems which supports long
80
 
filenames.
81
 
<p><li><b>Are there any dependencies on particular filesystem drivers?</b>
82
 
<p>There is one dependency on specifics of filesystem drivers in the port
83
 
of Berkeley DB to VxWorks.  Berkeley DB synchronizes data using the FIOSYNC function
84
 
to ioctl() (another option would have been to use the FIOFLUSH function
85
 
instead).  The FIOSYNC function was chosen because the NFS client driver,
86
 
nfsDrv, only supports it and doesn't support FIOFLUSH.  All local file
87
 
systems, as of VxWorks 5.4, support FIOSYNC -- with the exception of
88
 
rt11fsLib, which only supports FIOFLUSH.  To use rt11fsLib, you will need
89
 
to modify the os/os_fsync.c file to use the FIOFLUSH function; note that
90
 
rt11fsLib cannot work with NFS clients.
91
 
<p><li><b>Are there any known filesystem problems?</b>
92
 
<p>During the course of our internal testing, we came across two problems
93
 
with the dosFs 2.0 filesystem that warranted patches from Wind River Systems.
94
 
You should ask Wind River Systems for the patches to these
95
 
problems if you encounter them.
96
 
<p>The first problem is that files will seem to disappear.  You should
97
 
look at <b>SPR 31480</b> in the Wind River Systems' Support pages for
98
 
a more detailed description of this problem.
99
 
<p>The second problem is a semaphore deadlock within the dosFs filesystem
100
 
code.  Looking at a stack trace via CrossWind, you will see two or more of
101
 
your application's tasks waiting in semaphore code within dosFs.  The patch
102
 
for this problem is under <b>SPR 33221</b> at Wind River Systems.
103
 
There are several SPR numbers at Wind River Systems that refer to this
104
 
particular problem.
105
 
<p><li><b>Are there any filesystems I cannot use?</b>
106
 
<p>The Target Server File System (TSFS) uses the netDrv driver.  This driver
107
 
does not support any ioctl that allows flushing to the disk, and therefore
108
 
cannot be used with Berkeley DB.
109
 
<p><li><b>What VxWorks primitives are used for mutual exclusion in Berkeley DB?</b>
110
 
<p>Mutexes inside of Berkeley DB use the basic binary semaphores in VxWorks.  The
111
 
mutexes are created using the FIFO queue type.
112
 
<p><li><b>What are the implications of VxWorks' mutex implementation
113
 
using microkernel resources?</b>
114
 
<p>On VxWorks, the semaphore primitives implementing mutexes consume system
115
 
resources.  Therefore, if an application unexpectedly fails, those
116
 
resources could leak.  Berkeley DB solves this problem by always allocating
117
 
mutexes in the persistent shared memory regions.  Then, if an
118
 
application fails, running recovery or explicitly removing the database
119
 
environment by calling the <a href="../../api_c/env_remove.html">DB_ENV-&gt;remove</a> method will allow Berkeley DB to
120
 
release those previously held mutex resources.  If an application
121
 
specifies the <a href="../../api_c/env_open.html#DB_PRIVATE">DB_PRIVATE</a> flag (choosing not to use persistent
122
 
shared memory), and then fails, mutexes allocated in that private memory
123
 
may leak their underlying system resources.  Therefore, the
124
 
<a href="../../api_c/env_open.html#DB_PRIVATE">DB_PRIVATE</a> flag should be used with caution on VxWorks.
125
 
</ol>
126
 
<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/build_vxworks/notes.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade/version.html"><img src="../../images/next.gif" alt="Next"></a>
127
 
</td></tr></table>
128
 
<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
129
 
</body>
130
 
</html>