src/3rdparty/patches/sqlite-3.5.6-vxworks.patch
changeset 0 1918ee327afb
equal deleted inserted replaced
-1:000000000000 0:1918ee327afb
       
     1 --- sqlite3.c.orig
       
     2 +++ sqlite3.c
       
     3 @@ -383,7 +383,7 @@ SQLITE_PRIVATE   void sqlite3Coverage(int);
       
     4  **
       
     5  ** See also ticket #2741.
       
     6  */
       
     7 -#if !defined(_XOPEN_SOURCE) && !defined(__DARWIN__) && !defined(__APPLE__) && SQLITE_THREADSAFE
       
     8 +#if !defined(_XOPEN_SOURCE) && !defined(__DARWIN__) && !defined(__APPLE__) && SQLITE_THREADSAFE && !defined(VXWORKS)
       
     9  #  define _XOPEN_SOURCE 500  /* Needed to enable pthread recursive mutexes */
       
    10  #endif
       
    11  
       
    12 @@ -440,6 +440,13 @@ SQLITE_PRIVATE   void sqlite3Coverage(int);
       
    13  */
       
    14  #ifndef _SQLITE3_H_
       
    15  #define _SQLITE3_H_
       
    16 +
       
    17 +#ifdef VXWORKS
       
    18 +# define SQLITE_HOMEGROWN_RECURSIVE_MUTEX
       
    19 +# define NO_GETTOD
       
    20 +# include <ioLib.h>
       
    21 +#endif
       
    22 +
       
    23  #include <stdarg.h>     /* Needed for the definition of va_list */
       
    24  
       
    25  /*
       
    26 @@ -18792,7 +18799,11 @@ SQLITE_PRIVATE sqlite3_vfs *sqlite3OsDefaultVfs(void){
       
    27  #include <sys/stat.h>
       
    28  #include <fcntl.h>
       
    29  #include <unistd.h>
       
    30 -#include <sys/time.h>
       
    31 +#ifdef VXWORKS
       
    32 +# include <sys/times.h>
       
    33 +#else
       
    34 +# include <sys/time.h>
       
    35 +#endif
       
    36  #include <errno.h>
       
    37  #ifdef SQLITE_ENABLE_LOCKING_STYLE
       
    38  #include <sys/ioctl.h>
       
    39 @@ -19728,7 +19739,11 @@ static int seekAndWrite(unixFile *id, i64 offset, const void *pBuf, int cnt){
       
    40    if( newOffset!=offset ){
       
    41      return -1;
       
    42    }
       
    43 +# ifndef VXWORKS
       
    44    got = write(id->h, pBuf, cnt);
       
    45 +# else
       
    46 +  got = write(id->h, (char *)pBuf, cnt);
       
    47 +# endif
       
    48  #endif
       
    49    TIMER_END;
       
    50    OSTRACE5("WRITE   %-3d %5d %7lld %d\n", id->h, got, offset, TIMER_ELAPSED);
       
    51 @@ -21554,12 +21569,16 @@ static int unixRandomness(sqlite3_vfs *pVfs, int nBuf, char *zBuf){
       
    52  #if !defined(SQLITE_TEST)
       
    53    {
       
    54      int pid, fd;
       
    55 -    fd = open("/dev/urandom", O_RDONLY);
       
    56 +    fd = open("/dev/urandom", O_RDONLY, 0);
       
    57      if( fd<0 ){
       
    58        time_t t;
       
    59        time(&t);
       
    60        memcpy(zBuf, &t, sizeof(t));
       
    61 +#ifndef VXWORKS
       
    62        pid = getpid();
       
    63 +#else
       
    64 +      pid = (int)taskIdCurrent();
       
    65 +#endif
       
    66        memcpy(&zBuf[sizeof(t)], &pid, sizeof(pid));
       
    67      }else{
       
    68        read(fd, zBuf, nBuf);