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]
-----------------------------------------------------------------------------