head 1.4; access; symbols pkgsrc-2026Q1:1.4.0.116 pkgsrc-2026Q1-base:1.4 pkgsrc-2025Q4:1.4.0.114 pkgsrc-2025Q4-base:1.4 pkgsrc-2025Q3:1.4.0.112 pkgsrc-2025Q3-base:1.4 pkgsrc-2025Q2:1.4.0.110 pkgsrc-2025Q2-base:1.4 pkgsrc-2025Q1:1.4.0.108 pkgsrc-2025Q1-base:1.4 pkgsrc-2024Q4:1.4.0.106 pkgsrc-2024Q4-base:1.4 pkgsrc-2024Q3:1.4.0.104 pkgsrc-2024Q3-base:1.4 pkgsrc-2024Q2:1.4.0.102 pkgsrc-2024Q2-base:1.4 pkgsrc-2024Q1:1.4.0.100 pkgsrc-2024Q1-base:1.4 pkgsrc-2023Q4:1.4.0.98 pkgsrc-2023Q4-base:1.4 pkgsrc-2023Q3:1.4.0.96 pkgsrc-2023Q3-base:1.4 pkgsrc-2023Q2:1.4.0.94 pkgsrc-2023Q2-base:1.4 pkgsrc-2023Q1:1.4.0.92 pkgsrc-2023Q1-base:1.4 pkgsrc-2022Q4:1.4.0.90 pkgsrc-2022Q4-base:1.4 pkgsrc-2022Q3:1.4.0.88 pkgsrc-2022Q3-base:1.4 pkgsrc-2022Q2:1.4.0.86 pkgsrc-2022Q2-base:1.4 pkgsrc-2022Q1:1.4.0.84 pkgsrc-2022Q1-base:1.4 pkgsrc-2021Q4:1.4.0.82 pkgsrc-2021Q4-base:1.4 pkgsrc-2021Q3:1.4.0.80 pkgsrc-2021Q3-base:1.4 pkgsrc-2021Q2:1.4.0.78 pkgsrc-2021Q2-base:1.4 pkgsrc-2021Q1:1.4.0.76 pkgsrc-2021Q1-base:1.4 pkgsrc-2020Q4:1.4.0.74 pkgsrc-2020Q4-base:1.4 pkgsrc-2020Q3:1.4.0.72 pkgsrc-2020Q3-base:1.4 pkgsrc-2020Q2:1.4.0.68 pkgsrc-2020Q2-base:1.4 pkgsrc-2020Q1:1.4.0.48 pkgsrc-2020Q1-base:1.4 pkgsrc-2019Q4:1.4.0.70 pkgsrc-2019Q4-base:1.4 pkgsrc-2019Q3:1.4.0.66 pkgsrc-2019Q3-base:1.4 pkgsrc-2019Q2:1.4.0.64 pkgsrc-2019Q2-base:1.4 pkgsrc-2019Q1:1.4.0.62 pkgsrc-2019Q1-base:1.4 pkgsrc-2018Q4:1.4.0.60 pkgsrc-2018Q4-base:1.4 pkgsrc-2018Q3:1.4.0.58 pkgsrc-2018Q3-base:1.4 pkgsrc-2018Q2:1.4.0.56 pkgsrc-2018Q2-base:1.4 pkgsrc-2018Q1:1.4.0.54 pkgsrc-2018Q1-base:1.4 pkgsrc-2017Q4:1.4.0.52 pkgsrc-2017Q4-base:1.4 pkgsrc-2017Q3:1.4.0.50 pkgsrc-2017Q3-base:1.4 pkgsrc-2017Q2:1.4.0.46 pkgsrc-2017Q2-base:1.4 pkgsrc-2017Q1:1.4.0.44 pkgsrc-2017Q1-base:1.4 pkgsrc-2016Q4:1.4.0.42 pkgsrc-2016Q4-base:1.4 pkgsrc-2016Q3:1.4.0.40 pkgsrc-2016Q3-base:1.4 pkgsrc-2016Q2:1.4.0.38 pkgsrc-2016Q2-base:1.4 pkgsrc-2016Q1:1.4.0.36 pkgsrc-2016Q1-base:1.4 pkgsrc-2015Q4:1.4.0.34 pkgsrc-2015Q4-base:1.4 pkgsrc-2015Q3:1.4.0.32 pkgsrc-2015Q3-base:1.4 pkgsrc-2015Q2:1.4.0.30 pkgsrc-2015Q2-base:1.4 pkgsrc-2015Q1:1.4.0.28 pkgsrc-2015Q1-base:1.4 pkgsrc-2014Q4:1.4.0.26 pkgsrc-2014Q4-base:1.4 pkgsrc-2014Q3:1.4.0.24 pkgsrc-2014Q3-base:1.4 pkgsrc-2014Q2:1.4.0.22 pkgsrc-2014Q2-base:1.4 pkgsrc-2014Q1:1.4.0.20 pkgsrc-2014Q1-base:1.4 pkgsrc-2013Q4:1.4.0.18 pkgsrc-2013Q4-base:1.4 pkgsrc-2013Q3:1.4.0.16 pkgsrc-2013Q3-base:1.4 pkgsrc-2013Q2:1.4.0.14 pkgsrc-2013Q2-base:1.4 pkgsrc-2013Q1:1.4.0.12 pkgsrc-2013Q1-base:1.4 pkgsrc-2012Q4:1.4.0.10 pkgsrc-2012Q4-base:1.4 pkgsrc-2012Q3:1.4.0.8 pkgsrc-2012Q3-base:1.4 pkgsrc-2012Q2:1.4.0.6 pkgsrc-2012Q2-base:1.4 pkgsrc-2012Q1:1.4.0.4 pkgsrc-2012Q1-base:1.4 pkgsrc-2011Q4:1.4.0.2 pkgsrc-2011Q4-base:1.4 pkgsrc-2011Q3:1.1.1.1.0.68 pkgsrc-2011Q3-base:1.1.1.1 pkgsrc-2011Q2:1.1.1.1.0.66 pkgsrc-2011Q2-base:1.1.1.1 pkgsrc-2011Q1:1.1.1.1.0.64 pkgsrc-2011Q1-base:1.1.1.1 pkgsrc-2010Q4:1.1.1.1.0.62 pkgsrc-2010Q4-base:1.1.1.1 pkgsrc-2010Q3:1.1.1.1.0.60 pkgsrc-2010Q3-base:1.1.1.1 pkgsrc-2010Q2:1.1.1.1.0.58 pkgsrc-2010Q2-base:1.1.1.1 pkgsrc-2010Q1:1.1.1.1.0.56 pkgsrc-2010Q1-base:1.1.1.1 pkgsrc-2009Q4:1.1.1.1.0.54 pkgsrc-2009Q4-base:1.1.1.1 pkgsrc-2009Q3:1.1.1.1.0.52 pkgsrc-2009Q3-base:1.1.1.1 pkgsrc-2009Q2:1.1.1.1.0.50 pkgsrc-2009Q2-base:1.1.1.1 pkgsrc-2009Q1:1.1.1.1.0.48 pkgsrc-2009Q1-base:1.1.1.1 pkgsrc-2008Q4:1.1.1.1.0.46 pkgsrc-2008Q4-base:1.1.1.1 pkgsrc-2008Q3:1.1.1.1.0.44 pkgsrc-2008Q3-base:1.1.1.1 cube-native-xorg:1.1.1.1.0.42 cube-native-xorg-base:1.1.1.1 pkgsrc-2008Q2:1.1.1.1.0.40 pkgsrc-2008Q2-base:1.1.1.1 cwrapper:1.1.1.1.0.38 pkgsrc-2008Q1:1.1.1.1.0.36 pkgsrc-2008Q1-base:1.1.1.1 pkgsrc-2007Q4:1.1.1.1.0.34 pkgsrc-2007Q4-base:1.1.1.1 pkgsrc-2007Q3:1.1.1.1.0.32 pkgsrc-2007Q3-base:1.1.1.1 pkgsrc-2007Q2:1.1.1.1.0.30 pkgsrc-2007Q2-base:1.1.1.1 pkgsrc-2007Q1:1.1.1.1.0.28 pkgsrc-2007Q1-base:1.1.1.1 pkgsrc-2006Q4:1.1.1.1.0.26 pkgsrc-2006Q4-base:1.1.1.1 pkgsrc-2006Q3:1.1.1.1.0.24 pkgsrc-2006Q3-base:1.1.1.1 pkgsrc-2006Q2:1.1.1.1.0.22 pkgsrc-2006Q2-base:1.1.1.1 pkgsrc-2006Q1:1.1.1.1.0.20 pkgsrc-2006Q1-base:1.1.1.1 pkgsrc-2005Q4:1.1.1.1.0.18 pkgsrc-2005Q4-base:1.1.1.1 pkgsrc-2005Q3:1.1.1.1.0.16 pkgsrc-2005Q3-base:1.1.1.1 pkgsrc-2005Q2:1.1.1.1.0.14 pkgsrc-2005Q2-base:1.1.1.1 pkgsrc-2005Q1:1.1.1.1.0.12 pkgsrc-2005Q1-base:1.1.1.1 pkgsrc-2004Q4:1.1.1.1.0.10 pkgsrc-2004Q4-base:1.1.1.1 pkgsrc-2004Q3:1.1.1.1.0.8 pkgsrc-2004Q3-base:1.1.1.1 pkgsrc-2004Q2:1.1.1.1.0.6 pkgsrc-2004Q2-base:1.1.1.1 pkgsrc-2004Q1:1.1.1.1.0.4 pkgsrc-2004Q1-base:1.1.1.1 pkgsrc-2003Q4:1.1.1.1.0.2 pkgsrc-2003Q4-base:1.1.1.1 pkgsrc-base:1.1.1.1 TNF:1.1.1; locks; strict; comment @# @; 1.4 date 2011.12.01.05.12.57; author dholland; state Exp; branches; next 1.3; 1.3 date 2011.12.01.05.07.23; author dholland; state Exp; branches; next 1.2; 1.2 date 2011.12.01.04.51.30; author dholland; state Exp; branches; next 1.1; 1.1 date 2003.04.11.00.31.45; author uebayasi; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2003.04.11.00.31.45; author uebayasi; state Exp; branches 1.1.1.1.68.1; next ; 1.1.1.1.68.1 date 2011.12.02.13.16.31; author tron; state Exp; branches; next ; desc @@ 1.4 log @Extend previous to realloc and free as well, which is almost certainly necessary. PR 45669. @ text @$NetBSD: patch-bm,v 1.3 2011/12/01 05:07:23 dholland Exp $ - use standard headers - fix type of __malloc_extra_blocks - 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.orig 1999-09-16 07:20:15.000000000 +0000 +++ src/alloc.c @@@@ -53,12 +53,13 @@@@ extern char *sbrk (); #if defined (__STDC__) && __STDC__ #include +#include #define __malloc_size_t size_t #else #define __malloc_size_t unsigned int #endif extern __malloc_size_t _bytes_used; -extern int __malloc_extra_blocks; +extern __malloc_size_t __malloc_extra_blocks; #endif /* !defined(DOUG_LEA_MALLOC) */ #define max(A,B) ((A) > (B) ? (A) : (B)) @@@@ -380,6 +381,9 @@@@ emacs_blocked_free (ptr) { BLOCK_INPUT; __free_hook = old_free_hook; +#ifdef __GNUC__ + __asm __volatile("":::"memory"); +#endif free (ptr); /* If we released our reserve (due to running out of memory), and we have a fair amount free once again, @@@@ -420,6 +424,9 @@@@ emacs_blocked_malloc (size) BLOCK_INPUT; __malloc_hook = old_malloc_hook; +#ifdef __GNUC__ + __asm __volatile("":::"memory"); +#endif #ifdef DOUG_LEA_MALLOC mallopt (M_TOP_PAD, malloc_hysteresis * 4096); #else @@@@ -441,6 +448,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; @ 1.3 log @Add __asm __volatile("":::"memory") at a critical point in alloc.c. gcc thinks it knows the semantics of malloc and so it thinks it can optimize out the manipulation of __malloc_hook; however, doing so causes the subsequent malloc call to come back to itself, leading to an infinite recursion and SIGSEGV in temacs. This fixes the remaining part of PR 45669. Someone(TM) should check if this issue affects other Emacs versions and/or XEmacs. @ text @d1 7 a7 1 $NetBSD: patch-bm,v 1.2 2011/12/01 04:51:30 dholland Exp $ d26 11 a36 1 @@@@ -420,6 +421,9 @@@@ emacs_blocked_malloc (size) d46 10 @ 1.2 log @Fold patch-cb into patch-bm since they patch the same file. Related to PR 45669. hi joerg! @ text @d1 1 a1 1 $NetBSD: patch-bm,v 1.1.1.1 2003/04/11 00:31:45 uebayasi Exp $ d3 3 a5 3 --- ./src/alloc.c.orig Thu Sep 16 00:20:15 1999 +++ ./src/alloc.c Tue Sep 26 11:54:24 2000 @@@@ -53,12 +53,13 @@@@ d20 10 @ 1.1 log @Initial revision @ text @d1 1 a1 1 $NetBSD: patch-bm,v 1.1 2000/09/26 21:42:36 eeh Exp $ d9 1 a9 1 +#include @ 1.1.1.1 log @Re-import of Emacs 20, which has settled down in editors/emacs. @ text @@ 1.1.1.1.68.1 log @Pullup ticket #3617 - requested by dholland editors/emacs20: bug fix patch Revisions pulled up: - editors/emacs20/distinfo 1.19-1.22 - editors/emacs20/patches/patch-ab 1.4 - editors/emacs20/patches/patch-bm 1.2-1.4 - editors/emacs20/patches/patch-cb deleted --- Module Name: pkgsrc Committed By: dholland Date: Thu Dec 1 04:05:41 UTC 2011 Modified Files: pkgsrc/editors/emacs20: distinfo pkgsrc/editors/emacs20/patches: patch-ab Log Message: Patch up configure tests for cpp to avoid problems when running gcc 4.5's cpp on makefiles. PR 45669. Unfortunately, this does not by itself fix the build; now I'm getting ./temacs -batch -l loadup dump gmake[1]: *** [emacs] Segmentation fault and I have a bad feeling that this may be the same issue that the other emacs versions are sometimes hitting. --- Module Name: pkgsrc Committed By: dholland Date: Thu Dec 1 04:51:30 UTC 2011 Modified Files: pkgsrc/editors/emacs20: distinfo pkgsrc/editors/emacs20/patches: patch-bm Removed Files: pkgsrc/editors/emacs20/patches: patch-cb Log Message: Fold patch-cb into patch-bm since they patch the same file. Related to PR 45669. hi joerg! --- Module Name: pkgsrc Committed By: dholland Date: Thu Dec 1 05:07:23 UTC 2011 Modified Files: pkgsrc/editors/emacs20: distinfo pkgsrc/editors/emacs20/patches: patch-bm Log Message: Add __asm __volatile("":::"memory") at a critical point in alloc.c. gcc thinks it knows the semantics of malloc and so it thinks it can optimize out the manipulation of __malloc_hook; however, doing so causes the subsequent malloc call to come back to itself, leading to an infinite recursion and SIGSEGV in temacs. This fixes the remaining part of PR 45669. Someone(TM) should check if this issue affects other Emacs versions and/or XEmacs. --- Module Name: pkgsrc Committed By: dholland Date: Thu Dec 1 05:12:57 UTC 2011 Modified Files: pkgsrc/editors/emacs20: distinfo pkgsrc/editors/emacs20/patches: patch-bm Log Message: Extend previous to realloc and free as well, which is almost certainly necessary. PR 45669. @ text @d1 1 a1 1 $NetBSD$ d3 3 a5 9 - use standard headers - fix type of __malloc_extra_blocks - 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.orig 1999-09-16 07:20:15.000000000 +0000 +++ src/alloc.c @@@@ -53,12 +53,13 @@@@ extern char *sbrk (); d9 1 a9 1 +#include a19 30 @@@@ -380,6 +381,9 @@@@ emacs_blocked_free (ptr) { BLOCK_INPUT; __free_hook = old_free_hook; +#ifdef __GNUC__ + __asm __volatile("":::"memory"); +#endif free (ptr); /* If we released our reserve (due to running out of memory), and we have a fair amount free once again, @@@@ -420,6 +424,9 @@@@ emacs_blocked_malloc (size) BLOCK_INPUT; __malloc_hook = old_malloc_hook; +#ifdef __GNUC__ + __asm __volatile("":::"memory"); +#endif #ifdef DOUG_LEA_MALLOC mallopt (M_TOP_PAD, malloc_hysteresis * 4096); #else @@@@ -441,6 +448,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; @