From 4bd60a02b45241039d4ca7b5cfaa005e552f3d0d Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 20 Jul 2012 13:12:25 +0200 Subject: * apt-pkg/contrib/mmap.cc: - refer to APT::Cache-Start in case the growing failed as if -Limit is really the offender it will be noted in a previous error message. --- apt-pkg/contrib/mmap.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'apt-pkg/contrib/mmap.cc') diff --git a/apt-pkg/contrib/mmap.cc b/apt-pkg/contrib/mmap.cc index 593bb063b..f0ab49265 100644 --- a/apt-pkg/contrib/mmap.cc +++ b/apt-pkg/contrib/mmap.cc @@ -328,7 +328,7 @@ unsigned long DynamicMMap::RawAllocate(unsigned long long Size,unsigned long Aln if(!Grow()) { _error->Fatal(_("Dynamic MMap ran out of room. Please increase the size " - "of APT::Cache-Limit. Current value: %lu. (man 5 apt.conf)"), WorkSpace); + "of APT::Cache-Start. Current value: %lu. (man 5 apt.conf)"), WorkSpace); return 0; } } -- cgit v1.2.3 From 7b15b702b1f908595a2ae484117746587f8e03aa Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 24 Jul 2012 16:19:56 +0200 Subject: trigger the usage of the fallback code for kfreebsd also in the second (filebased) constructor of DynamicMMap (Closes: #677704) --- apt-pkg/contrib/mmap.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'apt-pkg/contrib/mmap.cc') diff --git a/apt-pkg/contrib/mmap.cc b/apt-pkg/contrib/mmap.cc index f0ab49265..aaa9da44f 100644 --- a/apt-pkg/contrib/mmap.cc +++ b/apt-pkg/contrib/mmap.cc @@ -216,7 +216,17 @@ DynamicMMap::DynamicMMap(FileFd &F,unsigned long Flags,unsigned long const &Work { if (_error->PendingError() == true) return; - + + // disable Moveable if we don't grow + if (Grow == 0) + this->Flags &= ~Moveable; + +#ifndef __linux__ + // kfreebsd doesn't have mremap, so we use the fallback + if ((this->Flags & Moveable) == Moveable) + this->Flags |= Fallback; +#endif + unsigned long long EndOfFile = Fd->Size(); if (EndOfFile > WorkSpace) WorkSpace = EndOfFile; -- cgit v1.2.3 From fbda0ee9d9f5ecd34d38f0e416837e8ef3a10f68 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 24 Jul 2012 17:22:25 +0200 Subject: for filesystems not supporting mmap'ing a file we need to use a SyncToFd dummy just as we did for compressed files in 0.9.5 --- apt-pkg/contrib/mmap.cc | 1 + 1 file changed, 1 insertion(+) (limited to 'apt-pkg/contrib/mmap.cc') diff --git a/apt-pkg/contrib/mmap.cc b/apt-pkg/contrib/mmap.cc index aaa9da44f..3e6ef3520 100644 --- a/apt-pkg/contrib/mmap.cc +++ b/apt-pkg/contrib/mmap.cc @@ -102,6 +102,7 @@ bool MMap::Map(FileFd &Fd) { // for readonly, we don't need sync, so make it simple Base = malloc(iSize); + SyncToFd = new FileFd(); return Fd.Read(Base, iSize); } // FIXME: Writing to compressed fd's ? -- cgit v1.2.3