Hi all,
I just found out that I was too quick upgrading libfossil to use
the latest SQLite 3.8.4.1 amalgamation:
<http://fossil.wanderinghorse.net/repos/libfossil/index.cgi/info/2de81ae7b6>
this broke the Cygwin build ;-(. The reason is that libfossil is very
strict, considering any warning as error, otherwise I wouldn't even
have noticed this.
CC [obj/sqlite3.o] ...
src/sqlite3.c:52986:20: error: 'sqlite3BtreeSetMmapLimit' defined
but not used [-Werror=unused-function]
SQLITE_PRIVATE int sqlite3BtreeSetMmapLimit(Btree *p,
sqlite3_int64 szMmap){
^
cc1: all warnings being treated as errors
sqlite3.make:18: recipe for target 'obj/sqlite3.o' failed
make: *** [obj/sqlite3.o] Error 1
The problem is that the default SQLITE_MAX_MMAP_SIZE for any
platform not listed is 0. Proposed patch below. Any other platform
with SQLITE_MAX_MMAP_SIZE=0 will give the same warning/error.
I'm sure this change will make more mmap-related test-cases
in the Cygwin test-suite pass, but didn't try that yet......
With this patch, libfossil compiles fine on Cygwin again.
<http://fossil.wanderinghorse.net/repos/libfossil/index.cgi/info/1dff0493d2>
Regards,
Jan Nijtmans
Index: src/btree.c
==================================================================
--- src/btree.c
+++ src/btree.c
@@ -2163,18 +2163,20 @@
/*
** Change the limit on the amount of the database file that may be
** memory mapped.
*/
+#if SQLITE_MAX_MMAP_SIZE>0
int sqlite3BtreeSetMmapLimit(Btree *p, sqlite3_int64 szMmap){
BtShared *pBt = p->pBt;
assert( sqlite3_mutex_held(p->db->mutex) );
sqlite3BtreeEnter(p);
sqlite3PagerSetMmapLimit(pBt->pPager, szMmap);
sqlite3BtreeLeave(p);
return SQLITE_OK;
}
+#endif
/*
** Change the way data is synced to disk in order to increase or decrease
** how well the database resists damage due to OS crashes and power
** failures. Level 1 is the same as asynchronous (no syncs() occur and
Index: src/btree.h
==================================================================
--- src/btree.h
+++ src/btree.h
@@ -61,11 +61,13 @@
#define BTREE_SINGLE 4 /* The file contains at most 1 b-tree */
#define BTREE_UNORDERED 8 /* Use of a hash implementation is OK */
int sqlite3BtreeClose(Btree*);
int sqlite3BtreeSetCacheSize(Btree*,int);
+#if SQLITE_MAX_MMAP_SIZE>0
int sqlite3BtreeSetMmapLimit(Btree*,sqlite3_int64);
+#endif
int sqlite3BtreeSetPagerFlags(Btree*,unsigned);
int sqlite3BtreeSyncDisabled(Btree*);
int sqlite3BtreeSetPageSize(Btree *p, int nPagesize, int nReserve, int eFix);
int sqlite3BtreeGetPageSize(Btree*);
int sqlite3BtreeMaxPageCount(Btree*,int);
Index: src/sqliteInt.h
==================================================================
--- src/sqliteInt.h
+++ src/sqliteInt.h
@@ -616,11 +616,11 @@
# define SQLITE_MAX_MMAP_SIZE 0
# endif
#endif
#ifndef SQLITE_MAX_MMAP_SIZE
# if defined(__linux__) \
- || defined(_WIN32) \
+ || defined(_WIN32) || defined(__CYGWIN__) \
|| (defined(__APPLE__) && defined(__MACH__)) \
|| defined(__sun)
# define SQLITE_MAX_MMAP_SIZE 0x7fff0000 /* 2147418112 */
# else
# define SQLITE_MAX_MMAP_SIZE 0
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users