Hello all,

Question in a nutshell:   My compiler can't handle "typedef long long "
(sqlite3.h) --- Is there a workaround?

Long Version:
      I have built version 2.8.17 on my box.  Did some limited testing....
seems to work so far.   Now I got 3.3.12.   I did the usual untar,
configure, make.    I am getting an error related to "long long":

        ./libtool --mode=compile cc -g -belf -DOS_UNIX=1
-DSQLITE_THREAD_OVERRIDE_LOCK=-1 -DTHREADSAFE=0 -DHAVE_USLEEP=1
-DSQLITE_OMIT_LOAD_EXTENSION=1 -I. -I./src -c ./src/vtab.c
mkdir .libs
 cc -g -belf -DOS_UNIX=1 -DSQLITE_THREAD_OVERRIDE_LOCK=-1 -DTHREADSAFE=0
-DHAVE_USLEEP=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -I. -I./src -c ./src/vtab.c
-Kpic -DPIC -o .libs/vtab.o
"./sqlite3.h", line 88: error: invalid type combination
"./sqlite3.h", line 89: error: invalid type combination
*** Error code 1 (bu21)
phdl380-sqlite-3.3.12-# grep -in "long long" ./sqlite3.h
77:** Some compilers do not support the "long long" datatype.  So we have
88:  typedef long long int sqlite_int64;
89:  typedef unsigned long long int sqlite_uint64;
=======================
There was an include file in /usr/include/sys, which is called xlong.h.
Inside there is a long note about how it addresses 64 bit expressions. I am
not sure it is the correct thing to try,  but I #included it,  and changed
the line 88 to say
typedef  xlong_t sqlite_int64 ;
and line 89 to say:
typedef unsigned xlong_t  sqlite_uint64;

Almost worked......  Instead of complaining at the very first file it tried
to compile,  it compiled about 15 source files, and then I get:
        ./libtool --mode=compile cc -g -belf -DOS_UNIX=1
-DSQLITE_THREAD_OVERRIDE_LOCK=-1 -DTHREADSAFE=0 -DHAVE_USLEEP=1
-DSQLITE_OMIT_LOAD_EXTENSION=1 -I. -I./src -c ./src/vdbemem.c
 cc -g -belf -DOS_UNIX=1 -DSQLITE_THREAD_OVERRIDE_LOCK=-1 -DTHREADSAFE=0
-DHAVE_USLEEP=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -I. -I./src -c
./src/vdbemem.c  -Kpic -DPIC -o .libs/vdbemem.o
"./src/vdbemem.c", line 256: error: invalid cast expression
"./src/vdbemem.c", line 261: error: return value type mismatch
"./src/vdbemem.c", line 267: error: return value type mismatch
"./src/vdbemem.c", line 281: error: invalid cast expression
"./src/vdbemem.c", line 302: error: assignment type mismatch
"./src/vdbemem.c", line 303: error: invalid cast expression
"./src/vdbemem.c", line 540: error: assignment type mismatch
"./src/vdbemem.c", line 545: error: assignment type mismatch
"./src/vdbemem.c", line 555: error: operands have incompatible types: op
"<"
"./src/vdbemem.c", line 556: error: operands have incompatible types: op
">"
"./src/vdbemem.c", line 833: error: operands must have arithmetic type: op
"*"
"./src/vdbemem.c", line 833: error: assignment type mismatch
*** Error code 1 (bu21)

PS:  I realize I could take some time and try to build GCC ver 4.x, but I
hope there is a workaround here.


-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to