diff options
author | dholland <dholland@pkgsrc.org> | 2011-12-24 13:30:33 +0000 |
---|---|---|
committer | dholland <dholland@pkgsrc.org> | 2011-12-24 13:30:33 +0000 |
commit | eb9e3ca4d79cd985b73f4fe868c6acee88dd3a16 (patch) | |
tree | e5901089627c60d728b6ab0c680f8229afba8b71 /editors | |
parent | 6116af067ca85f9a3ad910d604dd9e035df8f575 (diff) | |
download | pkgsrc-eb9e3ca4d79cd985b73f4fe868c6acee88dd3a16.tar.gz |
Merge patch-bm from emacs20 to prevent infinite recursion in malloc.
Diffstat (limited to 'editors')
-rw-r--r-- | editors/mule/distinfo | 3 | ||||
-rw-r--r-- | editors/mule/patches/patch-src_alloc_c | 38 |
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; |