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

Reply via email to