r3887 - in glibc-package/trunk/debian: . patches patches/hurd-i386
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 <aurel32@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
Reply to: