Author: sthibault
Date: 2009-10-20 22:59:28 +0000 (Tue, 20 Oct 2009)
New Revision: 3887

Added:
   glibc-package/trunk/debian/patches/hurd-i386/local-bigmem.diff
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/series
Log:
patches/hurd-i386/local-bigmem.diff: New patch to fix dl.so crash when
running on GNU Mach with VM_MAX_ADDRESS < 0xc0000000.


Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog        2009-10-20 00:30:24 UTC (rev 
3886)
+++ glibc-package/trunk/debian/changelog        2009-10-20 22:59:28 UTC (rev 
3887)
@@ -4,6 +4,10 @@
   * kfreebsd/local-sysdeps.diff: update to revision 2806 (from glibc-bsd).
   * Drop kfreebsd/local-sysdeps-2.10.diff (merged in local-sysdeps.diff).
 
+  [ Samuel Thibault]
+  * patches/hurd-i386/local-bigmem.diff: New patch to fix dl.so crash when
+    running on GNU Mach with VM_MAX_ADDRESS < 0xc0000000.
+
  -- Aurelien Jarno <aure...@debian.org>  Sun, 18 Oct 2009 18:35:20 +0200
 
 eglibc (2.10.1-1) unstable; urgency=low

Added: glibc-package/trunk/debian/patches/hurd-i386/local-bigmem.diff
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/local-bigmem.diff              
                (rev 0)
+++ glibc-package/trunk/debian/patches/hurd-i386/local-bigmem.diff      
2009-10-20 22:59:28 UTC (rev 3887)
@@ -0,0 +1,38 @@
+--- a/sysdeps/mach/hurd/dl-sysdep.c    2008-07-07 20:11:39.000000000 +0200
++++ b/sysdeps/mach/hurd/dl-sysdep.c    2009-10-21 00:56:09.000000000 +0200
+@@ -102,12 +102,29 @@
+       max=a; break;}
+       fmha=a+=fmhs;}
+     if (err) assert(err==KERN_NO_SPACE);
+-    if (!fmha)fmhs=0;else{
+-    fmhs=max-fmha;
+-    err = __vm_map (__mach_task_self (),
+-                  &fmha, fmhs, 0, 0, MACH_PORT_NULL, 0, 1,
+-                  VM_PROT_NONE, VM_PROT_NONE, VM_INHERIT_COPY);
+-    assert_perror(err);}
++    if (!fmha)
++      fmhs=0;
++    else
++      while (1) {
++      fmhs=max-fmha;
++      err = __vm_map (__mach_task_self (),
++                      &fmha, fmhs, 0, 0, MACH_PORT_NULL, 0, 1,
++                      VM_PROT_NONE, VM_PROT_NONE, VM_INHERIT_COPY);
++      if (!err)
++        break;
++      if (err != KERN_INVALID_ADDRESS && err != KERN_NO_SPACE) {
++      while(1);
++        assert_perror(err);
++        }
++      vm_address_t new_max = (max - 1) & 0xf0000000U;
++      if (new_max >= max) {
++        fmhs = 0;
++        fmha = 0;
++        break;
++      }
++      max = new_max;
++      }
++    }
+   }
+ /* XXX loser kludge for vm_map kernel bug */
+ #endif

Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series   2009-10-20 00:30:24 UTC (rev 
3886)
+++ glibc-package/trunk/debian/patches/series   2009-10-20 22:59:28 UTC (rev 
3887)
@@ -105,6 +105,7 @@
 hurd-i386/submitted-readlinkat.diff
 hurd-i386/cvs-termios-IXANY.patch
 hurd-i386/submitted-SOL_IP.patch
+hurd-i386/local-bigmem.diff
 
 ia64/submitted-sysconf.diff
 ia64/submitted-libm.diff


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to