⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 faq.so

📁 berkeley db 4.6.21的源码。berkeley db是一个简单的数据库管理系统
💻 SO
字号:
m4_comment([$Id: faq.so,v 1.30 2004/08/17 13:45:35 sue Exp $])m4_ref_title(Building m4_db for VxWorks systems,    VxWorks FAQ,    [@building for VxWorks FAQ, building for @VxWorks FAQ],    build_vxworks/notes, upgrade/version)m4_nlistbeginm4_nlist([dnlm4_bold([dnlI get the error "Workspace open failed: This project workspace is anolder format.", when trying to open the supplied workspace on Tornado 2.0under Windows.])m4_p([dnlThis error will occur if the files were extracted in a manner that addsa CR/LF to lines in the file.  Make sure that you download the m4_db".zip" version of the m4_db distribution, and, when extracting the m4_dbsources, that you use an unzipper program that will not do anyconversion.])])m4_nlist([dnlm4_bold([dnlI sometimes see spurious output errors about temporary directories.])m4_p([dnlThese messages are coming from the m4_manref(stat, 2) function callin VxWorks.  Unlike other systems, there may not be a well knowntemporary directory on the target.  Therefore, we highly recommend thatall applications use m4_ref(dbenv_set_tmp_dir) tospecify a temporary directory for the application.])])m4_nlist([dnlm4_bold([dnlHow can I build m4_db without using Tornado?])m4_p([dnlThe simplest way to build m4_db without using Tornado is to configurem4_db on a UNIX system, and then use the Makefile and include filesgenerated by that configuration as the starting point for your build.The Makefile and include files are created during configuration, in thecurrent directory, based on your configuration decisions (for example,debugging vs.  non-debugging builds), so you'll need to configure thesystem for the way you want m4_db to be built.])m4_p([dnlAdditionally, you'll need to account for the slight difference betweenthe set of source files used in a UNIX build and the set used in aVxWorks build.  You can use the following command to create a list ofthe m4_db VxWorks files.  The commands assume you are in the build_vxworksdirectory of the m4_db distribution:])m4_indent([dnl% cat __GT__ /tmp/files.seds/__LT__BEGIN__GT__ FILE_//s/_objects//^D% grep FILE_ BerkeleyDB.wpj | grep _objects | sed -f /tmp/files.sed __GT__ /tmp/db.files])m4_p([dnlYou will then have a template Makefile and include files, and a list ofVxWorks-specific source files.  You will need to convert this Makefileand list of files into a form that is acceptable to your specific buildenvironment.])])m4_nlist([dnlm4_bold([dnlDoes m4_db use floating point registers?])m4_p([dnlYes, there are a few places in m4_db where floating point computationsare performed.  As a result, all applications that callm4_italic(taskSpawn) should specify the m4_bold(VX_FP_TASK) option.])])m4_nlist([dnlm4_bold([dnlCan I run the test suite under VxWorks?])m4_p([dnlThe test suite requires the m4_db Tcl library.  In turn, this libraryrequires Tcl 8.4 or greater.  In order to run the test suite, you wouldneed to port Tcl 8.4 or greater to VxWorks.  The Tcl shell included inm4_italic(windsh) is not adequate for two reasons.  First, it is based onTcl 8.0.  Second, it does not include the necessary Tcl components foradding a Tcl extension.])])m4_nlist([dnlm4_bold([dnlAre all m4_db features available for VxWorks?])m4_p([dnlAll m4_db features are available for VxWorks with the exception of them4_ref(DB_TRUNCATE) flag for m4_ref(dbh_open).  The underlying mechanismneeded for that flag is not available consistently across different filesystems for VxWorks.])])m4_nlist([dnlm4_bold([dnlAre there any constraints using particular filesystem drivers?])m4_p([dnlThere are constraints using the dosFs filesystems with m4_db.  Namely,you must configure your dosFs filesystem to support long filenames ifyou are using m4_db logging in your application.  The VxWorks' dosFs1.0 filesystem, by default, uses the old MS-DOS 8.3 file-namingconstraints, restricting to 8 character filenames with a 3 characterextension.  If you have configured with VxWorks' dosFs 2.0 you shouldbe compatible with Windows FAT32 filesystems which supports longfilenames.])])m4_nlist([dnlm4_bold([dnlAre there any dependencies on particular filesystem drivers?])m4_p([dnlThere is one dependency on specifics of filesystem drivers in the portof m4_db to VxWorks.  m4_db synchronizes data using the FIOSYNC functionto ioctl() (another option would have been to use the FIOFLUSH functioninstead).  The FIOSYNC function was chosen because the NFS client driver,nfsDrv, only supports it and doesn't support FIOFLUSH.  All local filesystems, as of VxWorks 5.4, support FIOSYNC -- with the exception ofrt11fsLib, which only supports FIOFLUSH.  To use rt11fsLib, you will needto modify the os/os_fsync.c file to use the FIOFLUSH function; note thatrt11fsLib cannot work with NFS clients.])])m4_nlist([dnlm4_bold([dnlAre there any known filesystem problems?])m4_p([dnlDuring the course of our internal testing, we came across three problemswith the dosFs 2.0 filesystem that warranted patches from Wind River Systems.We strongly recommend you upgrade to dosFs 2.2, m4_bold([SPR 79795 (x86)])and m4_bold([SPR 79569 (PPC)]) which fixes all of these problems andmany more.  You should ask Wind River Systems for the patches to theseproblems if you encounter them and are unable to upgrade to dosFs 2.2.])m4_p([dnlThe first problem is that files will seem to disappear.  You shouldlook at m4_bold([SPR 31480]) in the Wind River Systems' Support pages fora more detailed description of this problem.])m4_p([dnlThe second problem is a semaphore deadlock within the dosFs filesystemcode.  Looking at a stack trace via CrossWind, you will see two or more ofyour application's tasks waiting in semaphore code within dosFs.  The patchfor this problem is under m4_bold([SPR 33221]) at Wind River Systems.There are several SPR numbers at Wind River Systems that refer to thisparticular problem.])])m4_p([dnlThe third problem is that all tasks will hang on a dosFs semaphore.  You shouldlook at m4_bold([SPR 72063]) in the Wind River Systems' Support pages fora more detailed description of this problem.])m4_nlist([dnlm4_bold([dnlAre there any filesystems I cannot use?])m4_p([dnlCurrently both the Target Server File System (TSFS) and NFS are not ableto be used.])m4_p([dnlThe Target Server File System (TSFS) uses the netDrv driver.  This driverdoes not support any ioctl that allows flushing to the disk, nor doesit allow renaming of files via FIORENAME.The NFS file system uses nfsDrv and that driverdoes not support FIORENAME and cannot be usedwith m4_db.  ])])m4_nlist([dnlm4_bold([dnlWhat VxWorks primitives are used for mutual exclusion in m4_db?])m4_p([dnlMutexes inside of m4_db use the basic binary semaphores in VxWorks.  Themutexes are created using the FIFO queue type.])])m4_nlist([dnlm4_bold([What are the implications of VxWorks' mutex implementationusing microkernel resources?])m4_p([dnlOn VxWorks, the semaphore primitives implementing mutexes consume systemresources.  Therefore, if an application unexpectedly fails, thoseresources could leak.  m4_db solves this problem by always allocatingmutexes in the persistent shared memory regions.  Then, if anapplication fails, running recovery or explicitly removing the databaseenvironment by calling the m4_refT(dbenv_remove) will allow m4_db torelease those previously held mutex resources.  If an applicationspecifies the m4_ref(DB_PRIVATE) flag (choosing not to use persistentshared memory), and then fails, mutexes allocated in that private memorymay leak their underlying system resources.  Therefore, them4_ref(DB_PRIVATE) flag should be used with caution on VxWorks.])])m4_nlistendm4_page_footer

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -