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

📄 qnx.so

📁 berkeley db 4.6.21的源码。berkeley db是一个简单的数据库管理系统
💻 SO
字号:
m4_comment([$Id: qnx.so,v 11.11 2005/12/20 15:24:38 bostic Exp $])m4_ref_title(Building m4_db for UNIX/POSIX systems,    QNX, @QNX, build_unix/osf1, build_unix/sco)m4_nlistbeginm4_nlist([dnlm4_bold([To what versions of QNX has DB been ported?])m4_p([dnlm4_db has been ported to the QNX Neutrino technology which is commonlyreferred to as QNX RTP (Real-Time Platform).  m4_db has not beenported to earlier versions of QNX, such as QNX 4.25.])])m4_nlist([dnlm4_bold([Building m4_db shared libraries fails.])m4_p([dnlThe m4_path(/bin/sh) utility distributed with some QNX releases dropscore when running the GNU libtool script (which is used to build m4_dbshared libraries).  There are two workarounds for this problem: First,only build static libraries.  You can disable building shared librariesby specifying the m4_idef(--disable-shared) configuration flag whenconfiguring m4_db.])m4_p([dnlSecond, build m4_db using an alternate shell.  QNX distributions includean accessories disk with additional tools.  One of the included toolsis the GNU bash shell, which is able to run the libtool script.  Tobuild m4_db using an alternate shell, move m4_path(/bin/sh) aside, linkor copy the alternate shell into that location, configure, build andinstall m4_db, and then replace the original shell utility.])])m4_nlist([dnlm4_bold([Are there any QNX filesystem issues?])m4_p([dnlm4_db generates temporary files for use in transactionallyprotected file system operations.  Due to the filename length limit of48 characters in the QNX filesystem, applications that are usingtransactions should specify a database name that is at most 43 characters.])])m4_nlist([dnlm4_bold([What is the impact of QNX's use of m4_manref(shm_open, 2) forshared memory regions?])m4_p([dnlQNX requires the use of the POSIX m4_manref(shm_open, 2) andm4_manref(shm_unlink, 2) calls for shared memory regions that will laterbe mapped into memory using m4_manref(mmap, 2).  QNX's implementationof the shared memory functions requires that the name given must beginwith a slash, and that no other slash may appear in the name.])m4_p([dnlIn order to comply with those requirements and allow relative pathnamesto find the same environment, m4_db uses only the last component of thehome directory path and the name of the shared memory file, separatedby a colon, as the name specified to the shared memory functions.  Forexample, if an application specifies a home directory ofm4_path(/home/db/DB_DIR), m4_db will use m4_path(/DB_DIR:__db.001) asthe name for the shared memory area argument to m4_manref(shm_open,2).])m4_p([dnlThe impact of this decision is that the last component of allenvironment home directory pathnames on QNX must be unique with respectto each other.  Additionally, m4_db requires that environments use homedirectories for QNX in order to generate a reasonable entry in theshared memory area.])])m4_nlist([dnlm4_bold([What are the implications of QNX's requirement to usem4_manref(shm_open, 2) in order to use m4_manref(mmap, 2)?])m4_p([dnlQNX requires that files mapped with m4_manref(mmap, 2) be opened usingm4_manref(shm_open, 2).  There are other places in addition to theenvironment shared memory regions, where m4_db tries to memory map filesif it can.])m4_p([dnlThe memory pool subsystem normally attempts to use m4_manref(mmap, 2)even when using private memory, as indicated by the m4_ref(DB_PRIVATE)flag to m4_ref(dbenv_open).  In the case of QNX, if an application isusing private memory, m4_db will not attempt to map the memory and willinstead use the local cache.])])m4_nlist([dnlm4_bold([What are the implications of QNX's mutex implementation usingmicrokernel resources?])m4_p([dnlOn QNX, the primitives implementing mutexes consume system resources.Therefore, if an application unexpectedly fails, those resources couldleak.  m4_db solves this problem by always allocating mutexes in thepersistent shared memory regions.  Then, if an application fails,running recovery or explicitly removing the database environment bycalling the m4_refT(dbenv_remove) will allow m4_db to release thosepreviously held mutex resources.  If an application specifies them4_ref(DB_PRIVATE) flag (choosing not to use persistent shared memory),and then fails, mutexes allocated in that private memory may leak theirunderlying system resources.  Therefore, the m4_ref(DB_PRIVATE) flagshould be used with caution on QNX.])])m4_nlistendm4_page_footer

⌨️ 快捷键说明

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