r5128 - in glibc-package/trunk/debian/patches: . hurd-i386
Author: sthibault
Date: 2012-01-23 23:24:05 +0000 (Mon, 23 Jan 2012)
New Revision: 5128
Added:
glibc-package/trunk/debian/patches/hurd-i386/cvs-mmap.diff
Removed:
glibc-package/trunk/debian/patches/hurd-i386/submitted-mmap.diff
Modified:
glibc-package/trunk/debian/patches/series
Log:
mv {submitted,cvs}-mmap.diff
Copied: glibc-package/trunk/debian/patches/hurd-i386/cvs-mmap.diff (from rev 5127, glibc-package/trunk/debian/patches/hurd-i386/submitted-mmap.diff)
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/cvs-mmap.diff (rev 0)
+++ glibc-package/trunk/debian/patches/hurd-i386/cvs-mmap.diff 2012-01-23 23:24:05 UTC (rev 5128)
@@ -0,0 +1,83 @@
+Take addr parameter of mmap as suggestion even without MAP_FIXED.
+
+2011-12-26 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/mmap.c (__mmap): When `mapaddr' is non zero, try
+ __vm_allocate and __vm_map with `anywhere' set to 0 first, and try with
+ `anywhere' set to 1 only on KERN_NO_SPACE error.
+
+---
+ mmap.c | 44 ++++++++++++++++++++++++++++++--------------
+ 1 file changed, 30 insertions(+), 14 deletions(-)
+diff --git a/sysdeps/mach/hurd/mmap.c b/sysdeps/mach/hurd/mmap.c
+index 1d1460c..96d7661 100644
+--- a/sysdeps/mach/hurd/mmap.c
++++ b/sysdeps/mach/hurd/mmap.c
+@@ -51,15 +51,20 @@ __mmap (__ptr_t addr, size_t len, int prot, int flags, int fd, off_t offset)
+ {
+ /* vm_allocate has (a little) less overhead in the kernel too. */
+ err = __vm_allocate (__mach_task_self (), &mapaddr, len,
+- !(flags & MAP_FIXED));
++ !mapaddr);
+
+- if (err == KERN_NO_SPACE && (flags & MAP_FIXED))
++ if (err == KERN_NO_SPACE)
+ {
+- /* XXX this is not atomic as it is in unix! */
+- /* The region is already allocated; deallocate it first. */
+- err = __vm_deallocate (__mach_task_self (), mapaddr, len);
+- if (!err)
+- err = __vm_allocate (__mach_task_self (), &mapaddr, len, 0);
++ if (flags & MAP_FIXED)
++ {
++ /* XXX this is not atomic as it is in unix! */
++ /* The region is already allocated; deallocate it first. */
++ err = __vm_deallocate (__mach_task_self (), mapaddr, len);
++ if (!err)
++ err = __vm_allocate (__mach_task_self (), &mapaddr, len, 0);
++ }
++ else if (mapaddr)
++ err = __vm_allocate (__mach_task_self (), &mapaddr, len, 1);
+ }
+
+ return err ? (__ptr_t) (long int) __hurd_fail (err) : (__ptr_t) mapaddr;
+@@ -135,21 +140,32 @@ __mmap (__ptr_t addr, size_t len, int prot, int flags, int fd, off_t offset)
+
+ err = __vm_map (__mach_task_self (),
+ &mapaddr, (vm_size_t) len, (vm_address_t) 0,
+- ! (flags & MAP_FIXED),
++ !mapaddr,
+ memobj, (vm_offset_t) offset,
+ ! (flags & MAP_SHARED),
+ vmprot, VM_PROT_ALL,
+ (flags & MAP_SHARED) ? VM_INHERIT_SHARE : VM_INHERIT_COPY);
+
+- if (err == KERN_NO_SPACE && (flags & MAP_FIXED))
++ if (err == KERN_NO_SPACE)
+ {
+- /* XXX this is not atomic as it is in unix! */
+- /* The region is already allocated; deallocate it first. */
+- err = __vm_deallocate (__mach_task_self (), mapaddr, len);
+- if (! err)
++ if (flags & MAP_FIXED)
++ {
++ /* XXX this is not atomic as it is in unix! */
++ /* The region is already allocated; deallocate it first. */
++ err = __vm_deallocate (__mach_task_self (), mapaddr, len);
++ if (! err)
++ err = __vm_map (__mach_task_self (),
++ &mapaddr, (vm_size_t) len, (vm_address_t) 0,
++ 0, memobj, (vm_offset_t) offset,
++ ! (flags & MAP_SHARED),
++ vmprot, VM_PROT_ALL,
++ (flags & MAP_SHARED) ? VM_INHERIT_SHARE
++ : VM_INHERIT_COPY);
++ }
++ else if (mapaddr)
+ err = __vm_map (__mach_task_self (),
+ &mapaddr, (vm_size_t) len, (vm_address_t) 0,
+- 0, memobj, (vm_offset_t) offset,
++ 1, memobj, (vm_offset_t) offset,
+ ! (flags & MAP_SHARED),
+ vmprot, VM_PROT_ALL,
+ (flags & MAP_SHARED) ? VM_INHERIT_SHARE
Deleted: glibc-package/trunk/debian/patches/hurd-i386/submitted-mmap.diff
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/submitted-mmap.diff 2012-01-23 21:30:07 UTC (rev 5127)
+++ glibc-package/trunk/debian/patches/hurd-i386/submitted-mmap.diff 2012-01-23 23:24:05 UTC (rev 5128)
@@ -1,83 +0,0 @@
-Take addr parameter of mmap as suggestion even without MAP_FIXED.
-
-2011-12-26 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/mmap.c (__mmap): When `mapaddr' is non zero, try
- __vm_allocate and __vm_map with `anywhere' set to 0 first, and try with
- `anywhere' set to 1 only on KERN_NO_SPACE error.
-
----
- mmap.c | 44 ++++++++++++++++++++++++++++++--------------
- 1 file changed, 30 insertions(+), 14 deletions(-)
-diff --git a/sysdeps/mach/hurd/mmap.c b/sysdeps/mach/hurd/mmap.c
-index 1d1460c..96d7661 100644
---- a/sysdeps/mach/hurd/mmap.c
-+++ b/sysdeps/mach/hurd/mmap.c
-@@ -51,15 +51,20 @@ __mmap (__ptr_t addr, size_t len, int prot, int flags, int fd, off_t offset)
- {
- /* vm_allocate has (a little) less overhead in the kernel too. */
- err = __vm_allocate (__mach_task_self (), &mapaddr, len,
-- !(flags & MAP_FIXED));
-+ !mapaddr);
-
-- if (err == KERN_NO_SPACE && (flags & MAP_FIXED))
-+ if (err == KERN_NO_SPACE)
- {
-- /* XXX this is not atomic as it is in unix! */
-- /* The region is already allocated; deallocate it first. */
-- err = __vm_deallocate (__mach_task_self (), mapaddr, len);
-- if (!err)
-- err = __vm_allocate (__mach_task_self (), &mapaddr, len, 0);
-+ if (flags & MAP_FIXED)
-+ {
-+ /* XXX this is not atomic as it is in unix! */
-+ /* The region is already allocated; deallocate it first. */
-+ err = __vm_deallocate (__mach_task_self (), mapaddr, len);
-+ if (!err)
-+ err = __vm_allocate (__mach_task_self (), &mapaddr, len, 0);
-+ }
-+ else if (mapaddr)
-+ err = __vm_allocate (__mach_task_self (), &mapaddr, len, 1);
- }
-
- return err ? (__ptr_t) (long int) __hurd_fail (err) : (__ptr_t) mapaddr;
-@@ -135,21 +140,32 @@ __mmap (__ptr_t addr, size_t len, int prot, int flags, int fd, off_t offset)
-
- err = __vm_map (__mach_task_self (),
- &mapaddr, (vm_size_t) len, (vm_address_t) 0,
-- ! (flags & MAP_FIXED),
-+ !mapaddr,
- memobj, (vm_offset_t) offset,
- ! (flags & MAP_SHARED),
- vmprot, VM_PROT_ALL,
- (flags & MAP_SHARED) ? VM_INHERIT_SHARE : VM_INHERIT_COPY);
-
-- if (err == KERN_NO_SPACE && (flags & MAP_FIXED))
-+ if (err == KERN_NO_SPACE)
- {
-- /* XXX this is not atomic as it is in unix! */
-- /* The region is already allocated; deallocate it first. */
-- err = __vm_deallocate (__mach_task_self (), mapaddr, len);
-- if (! err)
-+ if (flags & MAP_FIXED)
-+ {
-+ /* XXX this is not atomic as it is in unix! */
-+ /* The region is already allocated; deallocate it first. */
-+ err = __vm_deallocate (__mach_task_self (), mapaddr, len);
-+ if (! err)
-+ err = __vm_map (__mach_task_self (),
-+ &mapaddr, (vm_size_t) len, (vm_address_t) 0,
-+ 0, memobj, (vm_offset_t) offset,
-+ ! (flags & MAP_SHARED),
-+ vmprot, VM_PROT_ALL,
-+ (flags & MAP_SHARED) ? VM_INHERIT_SHARE
-+ : VM_INHERIT_COPY);
-+ }
-+ else if (mapaddr)
- err = __vm_map (__mach_task_self (),
- &mapaddr, (vm_size_t) len, (vm_address_t) 0,
-- 0, memobj, (vm_offset_t) offset,
-+ 1, memobj, (vm_offset_t) offset,
- ! (flags & MAP_SHARED),
- vmprot, VM_PROT_ALL,
- (flags & MAP_SHARED) ? VM_INHERIT_SHARE
Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series 2012-01-23 21:30:07 UTC (rev 5127)
+++ glibc-package/trunk/debian/patches/series 2012-01-23 23:24:05 UTC (rev 5128)
@@ -172,7 +172,7 @@
hurd-i386/local-select.diff
hurd-i386/submitted-posix2008.diff
hurd-i386/submitted-mach-nanosleep.diff
-hurd-i386/submitted-mmap.diff
+hurd-i386/cvs-mmap.diff
hurd-i386/submitted-hurd-socket-EAFNOSUPPORT.diff
kfreebsd/submitted-libc_once.diff
Reply to: