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