I think there is a bug in 3.7.2 when you define SQLITE_OMIT_WAL. There are references to pagerPagecount() that cannot be resolved because that function is defined inside of a #ifndef SQLITE_OMIT_WAL.
I also keep seeing references to 3.7.3 in this list. But the SQLite download page only has links for 3.7.2. Where can I download 3.7.3? -Scott sqlite-users-boun...@sqlite.org wrote on 10/09/2010 07:38:24 AM: > Hello Scott, > > I did some searching with these symbols, they should be in 'libos.a'. > > rtpLib.o - rtpVerifyAndLock > > pgMgrLib.o - pgMgrPageFree, pgMgrPageAllocAt > > you should modify kernel components with your VIP project. > > Best Regards, > > Huang ZhiHua > > 2010/10/9 Scott A Mintz <sami...@ra.rockwell.com> > > > Thank you. Those changes (modified slightly for 3.7.2) allowed me to > > create a DKM project that compiles sqlite3.c to libSQLite3.a. > > > > However, when I link my main VIP project, I get the following unresolved > > errors: > > dld: warning: Undefined symbol 'rtpVerifyAndLock' in file 'partialImage.o' > > dld: warning: Undefined symbol 'pgMgrPageFree' in file 'partialImage.o' > > dld: warning: Undefined symbol 'pgMgrPageAllocAt' in file 'partialImage.o' > > > > Those are not directly used by SQLite. But I have a feeling that one or > > more of the file I/O, semaphore, locking, or memory library system calls > > are... > > > > -Scott > > > > sqlite-users-boun...@sqlite.org wrote on 10/08/2010 07:38:45 AM: > > > > > Hello Scott, > > > > > > Below is my patch on the latest SQLite 3.7.3. Please notice that I > > only > > > verify it with GCC 4.1.2 compiler in VxWorks 6.6/6.7/6.8(I have not > > verify > > > it with my real target machine yet). > > > > > > *** sqlite3.c.orig 2010-10-08 10:42:22.000000000 +0800 > > > --- sqlite3.c 2010-10-08 19:24:18.390625000 +0800 > > > *************** > > > *** 17,22 **** > > > --- 17,26 ---- > > > ** language. The code for the "sqlite3" command-line shell is also in > > a > > > ** separate file. This file contains only code for the core SQLite > > > library. > > > */ > > > + #if defined(OS_VXWORKS) > > > + #include <vxWorks.h> > > > + #endif /* OS_VXWORKS */ > > > + > > > #define SQLITE_CORE 1 > > > #define SQLITE_AMALGAMATION 1 > > > #ifndef SQLITE_PRIVATE > > > *************** > > > *** 22795,22801 **** > > > --- 22799,22811 ---- > > > #include <sys/stat.h> > > > #include <fcntl.h> > > > #include <unistd.h> > > > + > > > + #if defined(OS_VXWORKS) && defined(_WRS_KERNEL) > > > + #include <sys/times.h> > > > + #else > > > #include <sys/time.h> > > > + #endif /* OS_VXWORKS */ > > > + > > > #include <errno.h> > > > #include <sys/mman.h> > > > > > > *************** > > > *** 24945,24951 **** > > > --- 24955,24965 ---- > > > /* > > > ** Close a file. > > > */ > > > + #if (OS_VXWORKS < 600) > > > static int semClose(sqlite3_file *id) { > > > + #else > > > + static int semClose_native(sqlite3_file *id) { > > > + #endif > > > if( id ){ > > > unixFile *pFile = (unixFile*)id; > > > semUnlock(id, NO_LOCK); > > > *************** > > > *** 25581,25587 **** > > > --- 25595,25607 ---- > > > } > > > return -1; > > > } > > > + > > > + #if defined(OS_VXWORKS) && defined(_WRS_KERNEL) > > > + got = write(id->h, (char *)pBuf, cnt); > > > + #else > > > got = write(id->h, pBuf, cnt); > > > + #endif /* OS_VXWORKS */ > > > + > > > #endif > > > TIMER_END; > > > if( got<0 ){ > > > *************** > > > *** 26762,26768 **** > > > --- 26782,26792 ---- > > > semIoFinder, /* Finder function name */ > > > semIoMethods, /* sqlite3_io_methods object name */ > > > 1, /* shared memory is disabled */ > > > + #if (OS_VXWORKS < 600) > > > semClose, /* xClose method */ > > > + #else > > > + semClose_native, /* xClose method */ > > > + #endif > > > semLock, /* xLock method */ > > > semUnlock, /* xUnlock method */ > > > semCheckReservedLock /* xCheckReservedLock method */ > > > *************** > > > *** 27517,27523 **** > > > noLock = eType!=SQLITE_OPEN_MAIN_DB; > > > > > > > > > ! #if defined(__APPLE__) || SQLITE_ENABLE_LOCKING_STYLE > > > struct statfs fsInfo; > > > if( fstatfs(fd, &fsInfo) == -1 ){ > > > ((unixFile*)pFile)->lastErrno = errno; > > > --- 27541,27547 ---- > > > noLock = eType!=SQLITE_OPEN_MAIN_DB; > > > > > > > > > ! #if (defined(__APPLE__) || SQLITE_ENABLE_LOCKING_STYLE) && > > > !defined(OS_VXWORKS) > > > struct statfs fsInfo; > > > if( fstatfs(fd, &fsInfo) == -1 ){ > > > ((unixFile*)pFile)->lastErrno = errno; > > > *************** > > > *** 27530,27536 **** > > > } > > > #endif > > > > > > ! #if SQLITE_ENABLE_LOCKING_STYLE > > > #if SQLITE_PREFER_PROXY_LOCKING > > > isAutoProxy = 1; > > > #endif > > > --- 27554,27560 ---- > > > } > > > #endif > > > > > > ! #if SQLITE_ENABLE_LOCKING_STYLE && !OS_VXWORKS > > > #if SQLITE_PREFER_PROXY_LOCKING > > > isAutoProxy = 1; > > > #endif > > > *************** > > > *** 27793,27799 **** > > > ** tests repeatable. > > > */ > > > memset(zBuf, 0, nBuf); > > > ! #if !defined(SQLITE_TEST) > > > { > > > int pid, fd; > > > fd = open("/dev/urandom", O_RDONLY); > > > --- 27817,27823 ---- > > > ** tests repeatable. > > > */ > > > memset(zBuf, 0, nBuf); > > > ! #if !defined(SQLITE_TEST) && !defined(OS_VXWORKS) > > > { > > > int pid, fd; > > > fd = open("/dev/urandom", O_RDONLY); > > > > > > I'v used definitions as below: > > > > > > EXTRA_DEFINE += -DOS_VXWORKS_660=660 > > > EXTRA_DEFINE += -DOS_VXWORKS_670=670 > > > EXTRA_DEFINE += -DOS_VXWORKS_680=680 > > > EXTRA_DEFINE += -DOS_VXWORKS=OS_VXWORKS_670 > > > EXTRA_DEFINE += -DSQLITE_HOMEGROWN_RECURSIVE_MUTEX > > > EXTRA_DEFINE += -DSQLITE_ENABLE_LOCKING_STYLE=1 > > > EXTRA_DEFINE += -DSQLITE_OMIT_LOAD_EXTENSION > > > > > > > > > Best Regards, > > > > > > Huang Zhihua > > > > > > 2010/10/8 Scott A Mintz <sami...@ra.rockwell.com> > > > > > > > I searched through all the mail archives to see if I could find > > someone > > > > that has ported SQLite to vxWorks in kernel mode. Apparently, there > > are a > > > > few folks attempting it. And fewer succeeding at it. > > > > > > > > I found an article published by ZhiHua Huang where he describes the > > mods > > > > he made to port SQLite 3.6.23.1 to vxWorks 6.5 > > > > http://www.mail-archive.com/sqlite-users@sqlite.org/msg51531.html > > > > > > > > Using that as a starting point, I modified my files but I get the > > > > following errors: > > > > "C:/CCViews/Mintz_NetlinxUCS_L7x/NetLinxUCS/SQLite3_LIB/sqlite3.c", > > line > > > > 27262: error (dcc:1633): parse error near 'struct' > > > > "C:/CCViews/Mintz_NetlinxUCS_L7x/NetLinxUCS/SQLite3_LIB/sqlite3.c", > > line > > > > 27262: error (dcc:1206): syntax error > > > > "C:/CCViews/Mintz_NetlinxUCS_L7x/NetLinxUCS/SQLite3_LIB/sqlite3.c", > > line > > > > 27262: fatal error (dcc:1340): can't recover from earlier errors > > > > > > > > This is the code it's complaining about. The "struct statfs fsInfo;" > > line > > > > is line 27262. > > > > > > > > #ifdef FD_CLOEXEC > > > > fcntl(fd, F_SETFD, fcntl(fd, F_GETFD, 0) | FD_CLOEXEC); > > > > #endif > > > > > > > > noLock = eType!=SQLITE_OPEN_MAIN_DB; > > > > > > > > > > > > #if defined(__APPLE__) || SQLITE_ENABLE_LOCKING_STYLE > > > > struct statfs fsInfo; > > > > if( fstatfs(fd, &fsInfo) == -1 ){ > > > > ((unixFile*)pFile)->lastErrno = errno; > > > > if( dirfd>=0 ) close(dirfd); /* silently leak if fail, in error */ > > > > close(fd); /* silently leak if fail, in error */ > > > > return SQLITE_IOERR_ACCESS; > > > > } > > > > if (0 == strncmp("msdos", fsInfo.f_fstypename, 5)) { > > > > ((unixFile*)pFile)->fsFlags |= SQLITE_FSFLAGS_IS_MSDOS; > > > > } > > > > #endif > > > > > > > > Any ideas? > > > > > > > > -Scott > > > > _______________________________________________ > > > > sqlite-users mailing list > > > > sqlite-users@sqlite.org > > > > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > > > > > > > _______________________________________________ > > > sqlite-users mailing list > > > sqlite-users@sqlite.org > > > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > > > > _______________________________________________ > > sqlite-users mailing list > > sqlite-users@sqlite.org > > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > > > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users