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 <[email protected]>
> 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
>
> [email protected] 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 <[email protected]>
> >
> > > 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/[email protected]/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
> > > [email protected]
> > > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
> > >
> > _______________________________________________
> > sqlite-users mailing list
> > [email protected]
> > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
> _______________________________________________
> sqlite-users mailing list
> [email protected]
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users