From a0274f7b8be7008129fe7e6154d73e8ad026dbc2 Mon Sep 17 00:00:00 2001 From: dholland Date: Sat, 24 Dec 2011 13:30:33 +0000 Subject: Merge patch-bm from emacs20 to prevent infinite recursion in malloc. --- editors/mule/distinfo | 3 ++- editors/mule/patches/patch-src_alloc_c | 38 ++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 editors/mule/patches/patch-src_alloc_c (limited to 'editors/mule') 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; -- cgit v1.2.3