Index: third_party/sqlite/src/Makefile.in |
diff --git a/third_party/sqlite/src/Makefile.in b/third_party/sqlite/src/Makefile.in |
index 1fe49d67899ca0108219d1d3ce3c7de938483d5b..740b49c08f1baaed1596927f07eccd9b5421fc5d 100644 |
--- a/third_party/sqlite/src/Makefile.in |
+++ b/third_party/sqlite/src/Makefile.in |
@@ -30,7 +30,8 @@ BCC = @BUILD_CC@ @BUILD_CFLAGS@ |
# |
CC = @CC@ |
CFLAGS = @CPPFLAGS@ @CFLAGS@ |
-TCC = $(CC) $(CFLAGS) -I. -I${TOP}/src -I${TOP}/ext/rtree -I${TOP}/ext/fts3 |
+TCC = ${CC} ${CFLAGS} -I. -I${TOP}/src -I${TOP}/ext/rtree -I${TOP}/ext/icu |
+TCC += -I${TOP}/ext/fts3 -I${TOP}/ext/async -I${TOP}/ext/session |
# Define this for the autoconf-based build, so that the code knows it can |
# include the generated config.h |
@@ -173,13 +174,14 @@ LIBOBJS0 = alter.lo analyze.lo attach.lo auth.lo \ |
fts3_unicode.lo fts3_unicode2.lo fts3_write.lo \ |
fts5.lo \ |
func.lo global.lo hash.lo \ |
- icu.lo insert.lo journal.lo json1.lo legacy.lo loadext.lo \ |
+ icu.lo insert.lo json1.lo legacy.lo loadext.lo \ |
main.lo malloc.lo mem0.lo mem1.lo mem2.lo mem3.lo mem5.lo \ |
memjournal.lo \ |
mutex.lo mutex_noop.lo mutex_unix.lo mutex_w32.lo \ |
notify.lo opcodes.lo os.lo os_unix.lo os_win.lo \ |
pager.lo parse.lo pcache.lo pcache1.lo pragma.lo prepare.lo printf.lo \ |
- random.lo resolve.lo rowset.lo rtree.lo select.lo status.lo \ |
+ random.lo resolve.lo rowset.lo rtree.lo \ |
+ sqlite3session.lo select.lo sqlite3rbu.lo status.lo \ |
table.lo threads.lo tokenize.lo treeview.lo trigger.lo \ |
update.lo util.lo vacuum.lo \ |
vdbe.lo vdbeapi.lo vdbeaux.lo vdbeblob.lo vdbemem.lo vdbesort.lo \ |
@@ -224,7 +226,6 @@ SRC = \ |
$(TOP)/src/hash.h \ |
$(TOP)/src/hwtime.h \ |
$(TOP)/src/insert.c \ |
- $(TOP)/src/journal.c \ |
$(TOP)/src/legacy.c \ |
$(TOP)/src/loadext.c \ |
$(TOP)/src/main.c \ |
@@ -343,13 +344,14 @@ SRC += \ |
$(TOP)/ext/rtree/rtree.h \ |
$(TOP)/ext/rtree/rtree.c |
SRC += \ |
+ $(TOP)/ext/session/sqlite3session.c \ |
+ $(TOP)/ext/session/sqlite3session.h |
+SRC += \ |
$(TOP)/ext/rbu/sqlite3rbu.h \ |
$(TOP)/ext/rbu/sqlite3rbu.c |
SRC += \ |
$(TOP)/ext/misc/json1.c |
- |
- |
# Generated source code files |
# |
SRC += \ |
@@ -376,9 +378,11 @@ TESTSRC = \ |
$(TOP)/src/test_autoext.c \ |
$(TOP)/src/test_async.c \ |
$(TOP)/src/test_backup.c \ |
+ $(TOP)/src/test_bestindex.c \ |
$(TOP)/src/test_blob.c \ |
$(TOP)/src/test_btree.c \ |
$(TOP)/src/test_config.c \ |
+ $(TOP)/src/test_delete.c \ |
$(TOP)/src/test_demovfs.c \ |
$(TOP)/src/test_devsym.c \ |
$(TOP)/src/test_fs.c \ |
@@ -405,23 +409,28 @@ TESTSRC = \ |
$(TOP)/src/test_windirent.c \ |
$(TOP)/src/test_wsd.c \ |
$(TOP)/ext/fts3/fts3_term.c \ |
- $(TOP)/ext/fts3/fts3_test.c \ |
+ $(TOP)/ext/fts3/fts3_test.c \ |
+ $(TOP)/ext/session/test_session.c \ |
$(TOP)/ext/rbu/test_rbu.c |
# Statically linked extensions |
# |
TESTSRC += \ |
$(TOP)/ext/misc/amatch.c \ |
+ $(TOP)/ext/misc/carray.c \ |
$(TOP)/ext/misc/closure.c \ |
+ $(TOP)/ext/misc/csv.c \ |
$(TOP)/ext/misc/eval.c \ |
$(TOP)/ext/misc/fileio.c \ |
$(TOP)/ext/misc/fuzzer.c \ |
$(TOP)/ext/fts5/fts5_tcl.c \ |
$(TOP)/ext/fts5/fts5_test_mi.c \ |
+ $(TOP)/ext/fts5/fts5_test_tok.c \ |
$(TOP)/ext/misc/ieee754.c \ |
$(TOP)/ext/misc/nextchar.c \ |
$(TOP)/ext/misc/percentile.c \ |
$(TOP)/ext/misc/regexp.c \ |
+ $(TOP)/ext/misc/remember.c \ |
$(TOP)/ext/misc/series.c \ |
$(TOP)/ext/misc/spellfix.c \ |
$(TOP)/ext/misc/totype.c \ |
@@ -473,7 +482,8 @@ TESTSRC2 = \ |
$(TOP)/ext/fts3/fts3_term.c \ |
$(TOP)/ext/fts3/fts3_tokenizer.c \ |
$(TOP)/ext/fts3/fts3_write.c \ |
- $(TOP)/ext/async/sqlite3async.c |
+ $(TOP)/ext/async/sqlite3async.c \ |
+ $(TOP)/ext/session/sqlite3session.c |
# Header files used by all library source files. |
# |
@@ -532,7 +542,8 @@ TESTPROGS = \ |
testfixture$(TEXE) \ |
sqlite3$(TEXE) \ |
sqlite3_analyzer$(TEXE) \ |
- sqldiff$(TEXE) |
+ sqldiff$(TEXE) \ |
+ dbhash$(TEXE) |
# Databases containing fuzzer test cases |
# |
@@ -540,7 +551,8 @@ FUZZDATA = \ |
$(TOP)/test/fuzzdata1.db \ |
$(TOP)/test/fuzzdata2.db \ |
$(TOP)/test/fuzzdata3.db \ |
- $(TOP)/test/fuzzdata4.db |
+ $(TOP)/test/fuzzdata4.db \ |
+ $(TOP)/test/fuzzdata5.db |
# Standard options to testfixture |
# |
@@ -548,9 +560,14 @@ TESTOPTS = --verbose=file --output=test-out.txt |
# Extra compiler options for various shell tools |
# |
-SHELL_OPT = -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS5 |
+SHELL_OPT = -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS4 |
+# SHELL_OPT += -DSQLITE_ENABLE_FTS5 |
+SHELL_OPT += -DSQLITE_ENABLE_EXPLAIN_COMMENTS |
+SHELL_OPT += -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION |
FUZZERSHELL_OPT = -DSQLITE_ENABLE_JSON1 |
-FUZZCHECK_OPT = -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MEMSYS5 |
+FUZZCHECK_OPT = -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MEMSYS5 -DSQLITE_OSS_FUZZ |
+FUZZCHECK_SRC = $(TOP)/test/fuzzcheck.c $(TOP)/test/ossfuzz.c |
+DBFUZZ_OPT = |
# This is the default Makefile target. The objects listed here |
# are what get build when you type just "make" with no arguments. |
@@ -574,23 +591,42 @@ libtclsqlite3.la: tclsqlite.lo libsqlite3.la |
-version-info "8:6:8" \ |
-avoid-version |
-sqlite3$(TEXE): $(TOP)/src/shell.c libsqlite3.la sqlite3.h |
+sqlite3$(TEXE): $(TOP)/src/shell.c sqlite3.c |
$(LTLINK) $(READLINE_FLAGS) $(SHELL_OPT) -o $@ \ |
- $(TOP)/src/shell.c libsqlite3.la \ |
+ $(TOP)/src/shell.c sqlite3.c \ |
$(LIBREADLINE) $(TLIBS) -rpath "$(libdir)" |
-sqldiff$(TEXE): $(TOP)/tool/sqldiff.c sqlite3.c sqlite3.h |
- $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c sqlite3.c $(TLIBS) |
+sqldiff$(TEXE): $(TOP)/tool/sqldiff.c sqlite3.lo sqlite3.h |
+ $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c sqlite3.lo $(TLIBS) |
+ |
+dbhash$(TEXE): $(TOP)/tool/dbhash.c sqlite3.lo sqlite3.h |
+ $(LTLINK) -o $@ $(TOP)/tool/dbhash.c sqlite3.lo $(TLIBS) |
+ |
+scrub$(TEXE): $(TOP)/ext/misc/scrub.c sqlite3.lo |
+ $(LTLINK) -o $@ -I. -DSCRUB_STANDALONE \ |
+ $(TOP)/ext/misc/scrub.c sqlite3.lo $(TLIBS) |
+ |
+srcck1$(BEXE): $(TOP)/tool/srcck1.c |
+ $(BCC) -o srcck1$(BEXE) $(TOP)/tool/srcck1.c |
+ |
+sourcetest: srcck1$(BEXE) sqlite3.c |
+ ./srcck1 sqlite3.c |
fuzzershell$(TEXE): $(TOP)/tool/fuzzershell.c sqlite3.c sqlite3.h |
$(LTLINK) -o $@ $(FUZZERSHELL_OPT) \ |
$(TOP)/tool/fuzzershell.c sqlite3.c $(TLIBS) |
-fuzzcheck$(TEXE): $(TOP)/test/fuzzcheck.c sqlite3.c sqlite3.h |
- $(LTLINK) -o $@ $(FUZZCHECK_OPT) $(TOP)/test/fuzzcheck.c sqlite3.c $(TLIBS) |
+fuzzcheck$(TEXE): $(FUZZCHECK_SRC) sqlite3.c sqlite3.h |
+ $(LTLINK) -o $@ $(FUZZCHECK_OPT) $(FUZZCHECK_SRC) sqlite3.c $(TLIBS) |
+ |
+ossshell$(TEXE): $(TOP)/test/ossfuzz.c $(TOP)/test/ossshell.c sqlite3.c sqlite3.h |
+ $(LTLINK) -o $@ $(FUZZCHECK_OPT) $(TOP)/test/ossshell.c sqlite3.c sqlite3.h $(TLIBS) |
+ |
+dbfuzz$(TEXE): $(TOP)/test/dbfuzz.c sqlite3.c sqlite3.h |
+ $(LTLINK) -o $@ $(DBFUZZ_OPT) $(TOP)/test/dbfuzz.c sqlite3.c $(TLIBS) |
-mptester$(TEXE): sqlite3.c $(TOP)/mptest/mptest.c |
- $(LTLINK) -o $@ -I. $(TOP)/mptest/mptest.c sqlite3.c \ |
+mptester$(TEXE): sqlite3.lo $(TOP)/mptest/mptest.c |
+ $(LTLINK) -o $@ -I. $(TOP)/mptest/mptest.c sqlite3.lo \ |
$(TLIBS) -rpath "$(libdir)" |
MPTEST1=./mptester$(TEXE) mptest.db $(TOP)/mptest/crash01.test --repeat 20 |
@@ -626,6 +662,7 @@ mptest: mptester$(TEXE) |
sqlite3.c: .target_source $(TOP)/tool/mksqlite3c.tcl |
$(TCLSH_CMD) $(TOP)/tool/mksqlite3c.tcl |
cp tsrc/shell.c tsrc/sqlite3ext.h . |
+ cp $(TOP)/ext/session/sqlite3session.h . |
sqlite3ext.h: .target_source |
cp tsrc/sqlite3ext.h . |
@@ -730,9 +767,6 @@ hash.lo: $(TOP)/src/hash.c $(HDR) |
insert.lo: $(TOP)/src/insert.c $(HDR) |
$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)/src/insert.c |
-journal.lo: $(TOP)/src/journal.c $(HDR) |
- $(LTCOMPILE) $(TEMP_STORE) -c $(TOP)/src/journal.c |
- |
legacy.lo: $(TOP)/src/legacy.c $(HDR) |
$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)/src/legacy.c |
@@ -992,6 +1026,9 @@ fts3_write.lo: $(TOP)/ext/fts3/fts3_write.c $(HDR) $(EXTHDR) |
rtree.lo: $(TOP)/ext/rtree/rtree.c $(HDR) $(EXTHDR) |
$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)/ext/rtree/rtree.c |
+sqlite3session.lo: $(TOP)/ext/session/sqlite3session.c $(HDR) $(EXTHDR) |
+ $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)/ext/session/sqlite3session.c |
+ |
json1.lo: $(TOP)/ext/misc/json1.c |
$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)/ext/misc/json1.c |
@@ -1017,7 +1054,7 @@ FTS5_SRC = \ |
fts5parse.c: $(TOP)/ext/fts5/fts5parse.y lemon |
cp $(TOP)/ext/fts5/fts5parse.y . |
rm -f fts5parse.h |
- ./lemon $(OPTS) fts5parse.y |
+ ./lemon$(BEXE) $(OPTS) fts5parse.y |
fts5parse.h: fts5parse.c |
@@ -1028,6 +1065,9 @@ fts5.c: $(FTS5_SRC) |
fts5.lo: fts5.c $(HDR) $(EXTHDR) |
$(LTCOMPILE) -DSQLITE_CORE -c fts5.c |
+sqlite3rbu.lo: $(TOP)/ext/rbu/sqlite3rbu.c $(HDR) $(EXTHDR) |
+ $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)/ext/rbu/sqlite3rbu.c |
+ |
# Rules to build the 'testfixture' application. |
# |
@@ -1039,6 +1079,8 @@ fts5.lo: fts5.c $(HDR) $(EXTHDR) |
TESTFIXTURE_FLAGS = -DTCLSH=1 -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1 |
TESTFIXTURE_FLAGS += -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE |
TESTFIXTURE_FLAGS += -DBUILD_sqlite |
+TESTFIXTURE_FLAGS += -DSQLITE_SERIES_CONSTRAINT_VERIFY=1 |
+TESTFIXTURE_FLAGS += -DSQLITE_DEFAULT_PAGE_SIZE=1024 |
TESTFIXTURE_SRC0 = $(TESTSRC2) libsqlite3.la |
TESTFIXTURE_SRC1 = sqlite3.c |
@@ -1071,6 +1113,11 @@ fastfuzztest: fuzzcheck$(TEXE) $(FUZZDATA) |
valgrindfuzz: fuzzcheck$(TEXT) $(FUZZDATA) |
valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 600 $(FUZZDATA) |
+# The veryquick.test TCL tests. |
+# |
+tcltest: ./testfixture$(TEXE) |
+ ./testfixture$(TEXE) $(TOP)/test/veryquick.test $(TESTOPTS) |
+ |
# Minimal testing that runs in less than 3 minutes |
# |
quicktest: ./testfixture$(TEXE) |
@@ -1079,8 +1126,7 @@ quicktest: ./testfixture$(TEXE) |
# This is the common case. Run many tests that do not take too long, |
# including fuzzcheck, sqlite3_analyzer, and sqldiff tests. |
# |
-test: $(TESTPROGS) fastfuzztest |
- ./testfixture$(TEXE) $(TOP)/test/veryquick.test $(TESTOPTS) |
+test: fastfuzztest sourcetest $(TESTPROGS) tcltest |
# Run a test using valgrind. This can take a really long time |
# because valgrind is so much slower than a native machine. |
@@ -1119,30 +1165,55 @@ showjournal$(TEXE): $(TOP)/tool/showjournal.c sqlite3.lo |
showwal$(TEXE): $(TOP)/tool/showwal.c sqlite3.lo |
$(LTLINK) -o $@ $(TOP)/tool/showwal.c sqlite3.lo $(TLIBS) |
+changeset$(TEXE): $(TOP)/ext/session/changeset.c sqlite3.lo |
+ $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c sqlite3.lo $(TLIBS) |
+ |
rollback-test$(TEXE): $(TOP)/tool/rollback-test.c sqlite3.lo |
$(LTLINK) -o $@ $(TOP)/tool/rollback-test.c sqlite3.lo $(TLIBS) |
LogEst$(TEXE): $(TOP)/tool/logest.c sqlite3.h |
$(LTLINK) -I. -o $@ $(TOP)/tool/logest.c |
-wordcount$(TEXE): $(TOP)/test/wordcount.c sqlite3.c |
- $(LTLINK) -o $@ $(TOP)/test/wordcount.c sqlite3.c $(TLIBS) |
+wordcount$(TEXE): $(TOP)/test/wordcount.c sqlite3.lo |
+ $(LTLINK) -o $@ $(TOP)/test/wordcount.c sqlite3.lo $(TLIBS) |
+ |
+speedtest1$(TEXE): $(TOP)/test/speedtest1.c sqlite3.c |
+ $(LTLINK) $(ST_OPT) -o $@ $(TOP)/test/speedtest1.c sqlite3.c $(TLIBS) |
-speedtest1$(TEXE): $(TOP)/test/speedtest1.c sqlite3.lo |
- $(LTLINK) -o $@ $(TOP)/test/speedtest1.c sqlite3.lo $(TLIBS) |
+KV_OPT += -DSQLITE_DIRECT_OVERFLOW_READ |
+ |
+kvtest$(TEXE): $(TOP)/test/kvtest.c sqlite3.c |
+ $(LTLINK) $(KV_OPT) -o $@ $(TOP)/test/kvtest.c sqlite3.c $(TLIBS) |
+ |
+DBSELFTEST_OPT += -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS4 |
+ |
+dbselftest$(TEXE): $(TOP)/test/dbselftest.c sqlite3.c |
+ $(LTLINK) $(DBSELFTEST_OPT) -o $@ $(TOP)/test/dbselftest.c sqlite3.c $(TLIBS) |
+ |
+rbu$(EXE): $(TOP)/ext/rbu/rbu.c $(TOP)/ext/rbu/sqlite3rbu.c sqlite3.lo |
+ $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c sqlite3.lo $(TLIBS) |
+ |
+loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la |
+ $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@ $(TLIBS) |
# This target will fail if the SQLite amalgamation contains any exported |
# symbols that do not begin with "sqlite3_". It is run as part of the |
# releasetest.tcl script. |
# |
+VALIDIDS=' sqlite3(changeset|changegroup|session)?_' |
checksymbols: sqlite3.lo |
- nm -g --defined-only sqlite3.o | grep -v " sqlite3_" ; test $$? -ne 0 |
+ nm -g --defined-only sqlite3.lo | egrep -v $(VALIDIDS); test $$? -ne 0 |
echo '0 errors out of 1 tests' |
-# Build the amalgamation-autoconf package. |
+# Build the amalgamation-autoconf package. The amalamgation-tarball target builds |
+# a tarball named for the version number. Ex: sqlite-autoconf-3110000.tar.gz. |
+# The snapshot-tarball target builds a tarball named by the SHA1 hash |
# |
amalgamation-tarball: sqlite3.c |
- TOP=$(TOP) sh $(TOP)/tool/mkautoconfamal.sh |
+ TOP=$(TOP) sh $(TOP)/tool/mkautoconfamal.sh --normal |
+ |
+snapshot-tarball: sqlite3.c |
+ TOP=$(TOP) sh $(TOP)/tool/mkautoconfamal.sh --snapshot |
# The next two rules are used to support the "threadtest" target. Building |
# threadtest runs a few thread-safety tests that are implemented in C. This |
@@ -1170,9 +1241,9 @@ lib_install: libsqlite3.la |
$(INSTALL) -d $(DESTDIR)$(libdir) |
$(LTINSTALL) libsqlite3.la $(DESTDIR)$(libdir) |
-install: sqlite3$(BEXE) lib_install sqlite3.h sqlite3.pc ${HAVE_TCL:1=tcl_install} |
+install: sqlite3$(TEXE) lib_install sqlite3.h sqlite3.pc ${HAVE_TCL:1=tcl_install} |
$(INSTALL) -d $(DESTDIR)$(bindir) |
- $(LTINSTALL) sqlite3$(BEXE) $(DESTDIR)$(bindir) |
+ $(LTINSTALL) sqlite3$(TEXE) $(DESTDIR)$(bindir) |
$(INSTALL) -d $(DESTDIR)$(includedir) |
$(INSTALL) -m 0644 sqlite3.h $(DESTDIR)$(includedir) |
$(INSTALL) -m 0644 $(TOP)/src/sqlite3ext.h $(DESTDIR)$(includedir) |
@@ -1194,13 +1265,12 @@ clean: |
rm -f lemon$(BEXE) lempar.c parse.* sqlite*.tar.gz |
rm -f mkkeywordhash$(BEXE) keywordhash.h |
rm -f *.da *.bb *.bbg gmon.out |
- rm -rf quota2a quota2b quota2c |
rm -rf tsrc .target_source |
rm -f tclsqlite3$(TEXE) |
rm -f testfixture$(TEXE) test.db |
rm -f LogEst$(TEXE) fts3view$(TEXE) rollback-test$(TEXE) showdb$(TEXE) |
rm -f showjournal$(TEXE) showstat4$(TEXE) showwal$(TEXE) speedtest1$(TEXE) |
- rm -f wordcount$(TEXE) |
+ rm -f wordcount$(TEXE) changeset$(TEXE) |
rm -f sqlite3.dll sqlite3.lib sqlite3.exp sqlite3.def |
rm -f sqlite3.c |
rm -f sqlite3rc.h |
@@ -1208,9 +1278,12 @@ clean: |
rm -f sqlite3_analyzer$(TEXE) sqlite3_analyzer.c |
rm -f sqlite-*-output.vsix |
rm -f mptester mptester.exe |
+ rm -f rbu rbu.exe |
+ rm -f srcck1 srcck1.exe |
rm -f fuzzershell fuzzershell.exe |
rm -f fuzzcheck fuzzcheck.exe |
rm -f sqldiff sqldiff.exe |
+ rm -f dbhash dbhash.exe |
rm -f fts5.* fts5parse.* |
distclean: clean |