summaryrefslogtreecommitdiff
path: root/editors
diff options
context:
space:
mode:
authordholland <dholland@pkgsrc.org>2011-12-24 13:30:33 +0000
committerdholland <dholland@pkgsrc.org>2011-12-24 13:30:33 +0000
commiteb9e3ca4d79cd985b73f4fe868c6acee88dd3a16 (patch)
treee5901089627c60d728b6ab0c680f8229afba8b71 /editors
parent6116af067ca85f9a3ad910d604dd9e035df8f575 (diff)
downloadpkgsrc-eb9e3ca4d79cd985b73f4fe868c6acee88dd3a16.tar.gz
Merge patch-bm from emacs20 to prevent infinite recursion in malloc.
Diffstat (limited to 'editors')
-rw-r--r--editors/mule/distinfo3
-rw-r--r--editors/mule/patches/patch-src_alloc_c38
2 files changed, 40 insertions, 1 deletions
diff --git a/editors/mule/distinfo b/editors/mule/distinfo
index d088c41c2d1..251fbea5ee2 100644
--- a/editors/mule/distinfo
+++ b/editors/mule/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.10 2011/12/20 18:33:40 ryoon Exp $
+$NetBSD: distinfo,v 1.11 2011/12/24 13:30:33 dholland Exp $
SHA1 (mule-2.3.tar.gz) = 52737767955caf2fde34b994f367a89c5d8a045f
RMD160 (mule-2.3.tar.gz) = 52b93e746a7a796549a44104ab1898954df044bf
@@ -65,4 +65,5 @@ SHA1 (patch-cg) = 2fbe0de8a502a2fe083379a39aaf126148d0ded3
SHA1 (patch-ch) = f5314755074b7301ee36825c82d15763b1d3f062
SHA1 (patch-ci) = b172fe40cccba2aa622a5522fffa421cbcd299a5
SHA1 (patch-cj) = 19b158106f4fbe382084dc8e6ddd6545e506e30d
+SHA1 (patch-src_alloc_c) = 9b64346015538d9fa26136b699f04af2d4a54c9a
SHA1 (patch-src_m_amd64.h) = c99d0e5c2fe4780735581354534a545a5ed44702
diff --git a/editors/mule/patches/patch-src_alloc_c b/editors/mule/patches/patch-src_alloc_c
new file mode 100644
index 00000000000..911c27cd5f5
--- /dev/null
+++ b/editors/mule/patches/patch-src_alloc_c
@@ -0,0 +1,38 @@
+$NetBSD: patch-src_alloc_c,v 1.1 2011/12/24 13:30:33 dholland Exp $
+
+- add an empty asm() destroying memory that prevents gcc from
+ optimizing out __malloc_hook and friends (which leads to
+ SIGSEGV in temacs during build)
+
+--- src/alloc.c~ 1994-10-24 11:37:41.000000000 +0000
++++ src/alloc.c
+@@ -240,6 +240,9 @@ emacs_blocked_free (ptr)
+ {
+ BLOCK_INPUT;
+ __free_hook = old_free_hook;
++#ifdef __GNUC__
++ __asm __volatile("":::"memory");
++#endif
+ free (ptr);
+ __free_hook = emacs_blocked_free;
+ UNBLOCK_INPUT;
+@@ -253,6 +256,9 @@ emacs_blocked_malloc (size)
+
+ BLOCK_INPUT;
+ __malloc_hook = old_malloc_hook;
++#ifdef __GNUC__
++ __asm __volatile("":::"memory");
++#endif
+ value = (void *) malloc (size);
+ __malloc_hook = emacs_blocked_malloc;
+ UNBLOCK_INPUT;
+@@ -269,6 +275,9 @@ emacs_blocked_realloc (ptr, size)
+
+ BLOCK_INPUT;
+ __realloc_hook = old_realloc_hook;
++#ifdef __GNUC__
++ __asm __volatile("":::"memory");
++#endif
+ value = (void *) realloc (ptr, size);
+ __realloc_hook = emacs_blocked_realloc;
+ UNBLOCK_INPUT;