aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJianxun Zhang <jianxun.zhang@linux.intel.com>2016-10-13 13:16:34 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-10-15 09:57:06 +0100
commitdda0c80019b181a5e323a82d346f86c6fffb6756 (patch)
tree149fb05296a8b6ebb814b4805f5260fbcccf7c71
parent1296cc0538efe64d666868fd28c5b195ec9c08ff (diff)
downloadopenembedded-core-contrib-dda0c80019b181a5e323a82d346f86c6fffb6756.tar.gz
sqlite3: Revert ad601c7962 from 3.14.1 amalgamation package
It turns out this change between 3.12.2 and 3.13 introduces a 2% increase of build time based on statistic data in bz10367. The added patch is forged by diffing the new sqlite3.c generated from reverting the change in raw source of sqlite3 project, and then manually migrate the delta to a sqlite3.c from the 3.14.1 tarball package because what recipes reference is actually a generated C code (amalgamation) release package and we cannot apply the real change to 3.14.1 cleanly due to so many changes happened. Fixes [YOCTO #10367] Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r--meta/recipes-support/sqlite/files/0001-revert-ad601c7962-that-brings-2-increase-of-build-ti.patch56
-rw-r--r--meta/recipes-support/sqlite/sqlite3_3.14.1.bb5
2 files changed, 60 insertions, 1 deletions
diff --git a/meta/recipes-support/sqlite/files/0001-revert-ad601c7962-that-brings-2-increase-of-build-ti.patch b/meta/recipes-support/sqlite/files/0001-revert-ad601c7962-that-brings-2-increase-of-build-ti.patch
new file mode 100644
index 0000000000..26540b241a
--- /dev/null
+++ b/meta/recipes-support/sqlite/files/0001-revert-ad601c7962-that-brings-2-increase-of-build-ti.patch
@@ -0,0 +1,56 @@
+From 4b286b441e8efa9a34eb0db8227748ebffd91c35 Mon Sep 17 00:00:00 2001
+From: Jianxun Zhang <jianxun.zhang@linux.intel.com>
+Date: Thu, 13 Oct 2016 09:24:21 -0700
+Subject: [PATCH] revert ad601c7962 that brings 2% increase of build time.
+
+The comment of the change in sqlite fossil project is:
+"For in-memory databases, it does not matter if pcache
+entries are marked "clean" or "writable"."
+
+Upstream Status: Inappropriate
+
+Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com>
+---
+ sqlite3.c | 12 +++---------
+ 1 file changed, 3 insertions(+), 9 deletions(-)
+
+diff --git a/sqlite3.c b/sqlite3.c
+index ccddfe6..ecae550 100644
+--- a/sqlite3.c
++++ b/sqlite3.c
+@@ -13146,7 +13146,7 @@ struct PgHdr {
+ sqlite3_pcache_page *pPage; /* Pcache object page handle */
+ void *pData; /* Page data */
+ void *pExtra; /* Extra content */
+- PgHdr *pDirty; /* Transient list of dirty sorted by pgno */
++ PgHdr *pDirty; /* Transient list of dirty pages */
+ Pager *pPager; /* The pager this page is part of */
+ Pgno pgno; /* Page number for this page */
+ #ifdef SQLITE_CHECK_PAGES
+@@ -43504,13 +43504,7 @@ bitvec_end:
+ /* #include "sqliteInt.h" */
+
+ /*
+-** A complete page cache is an instance of this structure. Every
+-** entry in the cache holds a single page of the database file. The
+-** btree layer only operates on the cached copy of the database pages.
+-**
+-** A page cache entry is "clean" if it exactly matches what is currently
+-** on disk. A page is "dirty" if it has been modified and needs to be
+-** persisted to disk.
++** A complete page cache is an instance of this structure.
+ **
+ ** pDirty, pDirtyTail, pSynced:
+ ** All dirty pages are linked into the doubly linked list using
+@@ -48314,7 +48308,7 @@ static int pager_end_transaction(Pager *pPager, int hasMaster, int bCommit){
+ pPager->pInJournal = 0;
+ pPager->nRec = 0;
+ if( rc==SQLITE_OK ){
+- if( pagerFlushOnCommit(pPager, bCommit) ){
++ if( MEMDB || pagerFlushOnCommit(pPager, bCommit) ){
+ sqlite3PcacheCleanAll(pPager->pPCache);
+ }else{
+ sqlite3PcacheClearWritable(pPager->pPCache);
+--
+2.7.4
+
diff --git a/meta/recipes-support/sqlite/sqlite3_3.14.1.bb b/meta/recipes-support/sqlite/sqlite3_3.14.1.bb
index 3af0d2f9c3..7c8fa40520 100644
--- a/meta/recipes-support/sqlite/sqlite3_3.14.1.bb
+++ b/meta/recipes-support/sqlite/sqlite3_3.14.1.bb
@@ -3,7 +3,10 @@ require sqlite3.inc
LICENSE = "PD"
LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=65f0a57ca6928710b418c094b3570bb0"
-SRC_URI = "http://www.sqlite.org/2016/sqlite-autoconf-${SQLITE_PV}.tar.gz"
+SRC_URI = "\
+ http://www.sqlite.org/2016/sqlite-autoconf-${SQLITE_PV}.tar.gz \
+ file://0001-revert-ad601c7962-that-brings-2-increase-of-build-ti.patch \
+ "
SRC_URI[md5sum] = "3634a90a3f49541462bcaed3474b2684"
SRC_URI[sha256sum] = "bc7182476900017becb81565ecea7775d46ab747a97281aa610f4f45881c47a6"