* Fix for a locking bug in Berkeley DB on Cygwin.
This commit is contained in:
parent
23960e92df
commit
370af25eff
2 changed files with 23 additions and 1 deletions
3
externals/Makefile.am
vendored
3
externals/Makefile.am
vendored
|
@ -11,6 +11,7 @@ $(DB).tar.gz:
|
||||||
|
|
||||||
$(DB): $(DB).tar.gz
|
$(DB): $(DB).tar.gz
|
||||||
gunzip < $(srcdir)/$(DB).tar.gz | tar xvf -
|
gunzip < $(srcdir)/$(DB).tar.gz | tar xvf -
|
||||||
|
cd $(DB) && patch -p1 < $(srcdir)/bdb-cygwin.patch
|
||||||
|
|
||||||
have-db:
|
have-db:
|
||||||
$(MAKE) $(DB)
|
$(MAKE) $(DB)
|
||||||
|
@ -100,7 +101,7 @@ endif
|
||||||
|
|
||||||
all: build-db build-aterm build-bzip2
|
all: build-db build-aterm build-bzip2
|
||||||
|
|
||||||
EXTRA_DIST = $(DB).tar.gz $(ATERM).tar.gz $(BZIP2).tar.gz
|
EXTRA_DIST = $(DB).tar.gz $(ATERM).tar.gz $(BZIP2).tar.gz bdb-cygwin.patch
|
||||||
|
|
||||||
ext-clean:
|
ext-clean:
|
||||||
$(RM) -f have-db build-db have-aterm build-aterm
|
$(RM) -f have-db build-db have-aterm build-aterm
|
||||||
|
|
21
externals/bdb-cygwin.patch
vendored
Normal file
21
externals/bdb-cygwin.patch
vendored
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
diff -rc db-4.4.20.NC-old/os/os_flock.c db-4.4.20.NC/os/os_flock.c
|
||||||
|
*** db-4.4.20.NC-old/os/os_flock.c Mon Jun 20 16:59:01 2005
|
||||||
|
--- db-4.4.20.NC/os/os_flock.c Wed Jun 7 17:01:49 2006
|
||||||
|
***************
|
||||||
|
*** 36,41 ****
|
||||||
|
--- 36,50 ----
|
||||||
|
|
||||||
|
DB_ASSERT(F_ISSET(fhp, DB_FH_OPENED) && fhp->fd != -1);
|
||||||
|
|
||||||
|
+ #ifdef __CYGWIN__
|
||||||
|
+ /*
|
||||||
|
+ * Windows file locking interferes with read/write operations, so we
|
||||||
|
+ * map the ranges to an area past the end of the file.
|
||||||
|
+ */
|
||||||
|
+ DB_ASSERT(offset < (off_t) 1 << 62);
|
||||||
|
+ offset += (off_t) 1 << 62;
|
||||||
|
+ #endif
|
||||||
|
+
|
||||||
|
#ifdef HAVE_FCNTL
|
||||||
|
fl.l_start = offset;
|
||||||
|
fl.l_len = 1;
|
Loading…
Reference in a new issue