I looked into the problem more tonight and found all of the references
to the omitted functions were from the auto-generated parser. I looked
at the parser source and it was checking for omits in all the right
places so the functions should have have been referenced. I checked the
Makefile and found that OPT_FEATURE_FLAGS still had the default
settings. I manually changed OPT_FEATURE_FLAGS in the Makefile and
rebuilt sqlite3.c - this time I was able to use all of the omit features
and create a usable binary.
So root cause of my delima seems to be that OPT_FEATURE_FLAGS isn't
populated by passing in to configure as my notes had indicated, but by
manually editing the Makefile and adding the desired flags to
OPT_FEATURE_FLAGS.
On 4/26/2012 7:31 PM, nn6eumtr wrote:
In response to Stepheen Beal's previous comments I do understand that
not all combinations of -DSQLITE_OMIT statements will work, and past
experience has shown its usually because the dependencies between the
various options are not clear in the documentation.
However someone has invested the effort to write the
-DSQLITE_OMIT_ALTERTABLE and -DSQLITE_OMIT_FOREIGN_KEY functionality,
and the person who did that may be concerned that these features do not
work in current builds of SQLite, or they may have a fix which isn't
part of the source distribution yet, or they may know other dependencies
that need to be resolved.
Those are the people I am attempting to reach via this list. If that
isn't you or your not interested in a solution, then I would ask that
you please don't discourage others from responding.
On 4/25/2012 7:11 PM, nn6eumtr wrote:
To clarify, the below steps to reproduce include building the
amalgamation from scratch, and the errors I demonstrate occur after
building and compiling a new amalgamation with -DSQLITE_OMIT_ALTERTABLE
and -DSQLITE_OMIT_FOREIGN_KEY.
In Stepheen Beal's earlier comments he appears to have not realized that
I was rebuilding the amalgamation and not trying to use the
-DSQLITE_OMIT_* flags with the distributed amalgamation. I still need
some assistance.
On 4/25/2012 1:09 AM, nn6eumtr wrote:
Steps to recreate:
1) wget -nd -nH -c -t 0 -w 1
http://www.sqlite.org/src/tarball/SQLite-9fb7da6904e479f4.tar.gz?uuid=9fb7da6904e479f4671eeebf1a4b7e4e4e4f2b7b
2) mv -v
SQLite-9fb7da6904e479f4.tar.gz?uuid=9fb7da6904e479f4671eeebf1a4b7e4e4e4f2b7b
SQLite-9fb7da6904e479f4.tar.gz
3) tar -xzf SQLite-9fb7da6904e479f4.tar.gz
4) cd SQLite-9fb7da6904e479f4
5) OPT_FEATURE_FLAGS="-DSQLITE_ENABLE_FTS3_PARENTHESIS
-DSQLITE_ENABLE_FTS4 \
-DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_ENABLE_MEMORY_MANAGEMENT \
-DSQLITE_ENABLE_MEMSYS5 -DSQLITE_ENABLE_STAT3 -DSQLITE_OMIT_ALTERTABLE \
-DSQLITE_OMIT_AUTOINIT -DSQLITE_OMIT_AUTOVACUUM
-DSQLITE_OMIT_BUILTIN_TEST \
-DSQLITE_OMIT_COMPLETE -DSQLITE_OMIT_DATETIME_FUNCS \
-DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_EXPLAIN
-DSQLITE_OMIT_FOREIGN_KEY \
-DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_LOAD_EXTENSION \
-DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_TCL_VARIABLE
-DSQLITE_OMIT_TRACE \
-DSQLITE_OMIT_TRIGGER -DSQLITE_OMIT_UTF16 -DSQLITE_THREADSAFE=0" \
./configure --disable-tcl --disable-readline
6) make sqlite3.c
8) Compile - gcc -c -Wall -DSQLITE_ENABLE_FTS3_PARENTHESIS \
-DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_LOCKING_STYLE=0 \
-DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_MEMSYS5 \
-DSQLITE_ENABLE_STAT3 -DSQLITE_OMIT_ALTERTABLE \
-DSQLITE_OMIT_AUTOINIT -DSQLITE_OMIT_AUTOVACUUM \
-DSQLITE_OMIT_BUILTIN_TEST -DSQLITE_OMIT_COMPLETE \
-DSQLITE_OMIT_DATETIME_FUNCS -DSQLITE_OMIT_DEPRECATED \
-DSQLITE_OMIT_EXPLAIN -DSQLITE_OMIT_FOREIGN_KEY \
-DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_LOAD_EXTENSION \
-DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_TCL_VARIABLE \
-DSQLITE_OMIT_TRACE -DSQLITE_OMIT_TRIGGER \
-DSQLITE_OMIT_UTF16 -DSQLITE_THREADSAFE=0 \
-DSQLITE_ZERO_MALLOC sqlite3.c
This will produce the following errors:
sqlite3.c:(.text+0x462d2): undefined reference to
`sqlite3AlterBeginAddColumn'
sqlite3.c:(.text+0x462fe): undefined reference to
`sqlite3AlterFinishAddColumn'
sqlite3.c:(.text+0x46331): undefined reference to
`sqlite3AlterRenameTable'
sqlite3.c:(.text+0x46482): undefined reference to `sqlite3DropTrigger'
sqlite3.c:(.text+0x4657b): undefined reference to
`sqlite3TriggerSelectStep'
sqlite3.c:(.text+0x465b9): undefined reference to
`sqlite3TriggerDeleteStep'
sqlite3.c:(.text+0x4660a): undefined reference to
`sqlite3TriggerInsertStep'
sqlite3.c:(.text+0x46661): undefined reference to
`sqlite3TriggerInsertStep'
sqlite3.c:(.text+0x466b0): undefined reference to
`sqlite3TriggerUpdateStep'
sqlite3.c:(.text+0x4688d): undefined reference to `sqlite3BeginTrigger'
sqlite3.c:(.text+0x468f8): undefined reference to `sqlite3FinishTrigger'
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users