r3839 - glibc-package/branches/eglibc-2.10/debian/patches/hurd-i386
Author: sthibault
Date: 2009-09-14 04:58:27 +0000 (Mon, 14 Sep 2009)
New Revision: 3839
Modified:
glibc-package/branches/eglibc-2.10/debian/patches/hurd-i386/submitted-sbrk.diff
Log:
fix patch into really working
Modified: glibc-package/branches/eglibc-2.10/debian/patches/hurd-i386/submitted-sbrk.diff
===================================================================
--- glibc-package/branches/eglibc-2.10/debian/patches/hurd-i386/submitted-sbrk.diff 2009-09-14 04:57:15 UTC (rev 3838)
+++ glibc-package/branches/eglibc-2.10/debian/patches/hurd-i386/submitted-sbrk.diff 2009-09-14 04:58:27 UTC (rev 3839)
@@ -4,22 +4,34 @@
instead of pagebrk to __vm_allocate.
---
- brk.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
+ brk.c | 16 +++++++++++++++-
+ 1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/sysdeps/mach/hurd/brk.c b/sysdeps/mach/hurd/brk.c
-index 931b260..087dbdd 100644
+index 931b260..678b1bb 100644
--- a/sysdeps/mach/hurd/brk.c
+++ b/sysdeps/mach/hurd/brk.c
-@@ -101,8 +101,10 @@ _hurd_set_brk (vm_address_t addr)
+@@ -101,8 +101,22 @@ _hurd_set_brk (vm_address_t addr)
if (pagend > _hurd_data_end)
{
+ vm_address_t alloc_start = _hurd_data_end;
++
/* We didn't allocate enough space! Hopefully we can get some more! */
- err = __vm_allocate (__mach_task_self (), &pagebrk, pagend - pagebrk, 0);
-+ err = __vm_allocate (__mach_task_self (), &alloc_start,
-+ pagend - alloc_start, 0);
++
++ if (_hurd_data_end > pagebrk)
++ /* First finish allocation */
++ err = __vm_protect (__mach_task_self (), pagebrk,
++ alloc_start - pagebrk, 0,
++ VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE);
++ if (! err)
++ _hurd_brk = alloc_start;
++
++ if (! err)
++ err = __vm_allocate (__mach_task_self (), &alloc_start,
++ pagend - alloc_start, 0);
++
if (! err)
_hurd_data_end = pagend;
}
Reply to: