This patch solves the issue I had with building perl natively on Hurd. It seems
PAGE_COPY_THRESHOLD was causing a not properly tested PAGE_COPY_FWD_MAYBE
to be used, which caused the error "miniperl: memmove.c:72: memmove:
Assertion `len == 0' failed."

OK to apply to wip-hurd?

Manolis
From b4ea96e2b8b5c6e8dcfff9d46ccb9f963d338c7d Mon Sep 17 00:00:00 2001
From: Manolis Ragkousis <[email protected]>
Date: Fri, 31 Jul 2015 19:08:39 +0300
Subject: [PATCH] gnu: base: Disable bogus code in Hurd's glibc.

* gnu/packages/patches/glibc-hurd-libs.patch: New patch.
---
 gnu/packages/patches/glibc-hurd-libs.patch | 31 ++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/patches/glibc-hurd-libs.patch b/gnu/packages/patches/glibc-hurd-libs.patch
index 2102f77..73e1e99 100644
--- a/gnu/packages/patches/glibc-hurd-libs.patch
+++ b/gnu/packages/patches/glibc-hurd-libs.patch
@@ -41,3 +41,34 @@ Index: eglibc-2.18/sysdeps/generic/symbol-hacks.h
  asm ("memset = __GI_memset");
 +#  endif
  #endif
+
+We need to disable this, or else memmove will not work properly in Hurd's glibc.
+
+From 69f807d6a4afa43e7a596e04f22923567b235ce9 Mon Sep 17 00:00:00 2001
+From: Samuel Thibault <[email protected]>
+Date: Wed, 29 Jul 2015 10:34:01 +0200
+Subject: [PATCH] Disable the fix for now, the resulting code seems bogus
+
+---
+ .topmsg                 | 11 +++++++++++
+ sysdeps/mach/pagecopy.h |  3 +++
+ 2 files changed, 14 insertions(+)
+
+diff --git a/sysdeps/mach/pagecopy.h b/sysdeps/mach/pagecopy.h
+index 29b73ce..9d1f4de 100644
+--- a/sysdeps/mach/pagecopy.h
++++ b/sysdeps/mach/pagecopy.h
+@@ -20,7 +20,10 @@
+ 
+ /* Threshold at which vm_copy is more efficient than well-optimized copying
+    by words.  This parameter should be tuned as necessary.  */
++#define PAGE_THRESHOLD		(16384)	/* XXX Tune this.  */
++#if 0
+ #define PAGE_COPY_THRESHOLD		(16384)	/* XXX Tune this.  */
++#endif
+ 
+ #define PAGE_SIZE		__vm_page_size
+ #define PAGE_COPY_FWD(dstp, srcp, nbytes_left, nbytes)			      \
+-- 
+2.4.6
+
-- 
2.4.6

Reply via email to