aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog
diff options
context:
space:
mode:
authorDmitry Antipov2014-08-26 10:25:59 +0400
committerDmitry Antipov2014-08-26 10:25:59 +0400
commitebd31792b292f63f09efa498b5df73bf86107259 (patch)
tree8cd196b0c4c03a3e76e00ed6c0fa010af49d3aea /src/ChangeLog
parent940ac42ae3d5c5c5d80f984278446ab34c0bb26a (diff)
downloademacs-ebd31792b292f63f09efa498b5df73bf86107259.tar.gz
emacs-ebd31792b292f63f09efa498b5df73bf86107259.zip
Handle C stack overflow caused by too nested Lisp evaluation.
* configure.ac: Check for sigaltstack and related sigaction support. Unconditionally check for sigsetjmp and siglongjmp. (HAVE_STACK_OVERFLOW_HANDLING): Define if we can support it. * src/lisp.h (toplevel) [HAVE_STACK_OVERFLOW_HANDLING]: Declare siglongjmp point to transfer control from SIGSEGV handler. * src/keyboard.c (return_to_command_loop, recover_top_level_message) [HAVE_STACK_OVERFLOW_HANDLING]: New variables. (regular_top_level_message): New variable. (command_loop) [HAVE_STACK_OVERFLOW_HANDLING]: Handle non-local exit from SIGSEGV handler and adjust message displayed by Vtop_level if appropriate. (syms_of_keyboard): DEFVAR Vtop_level_message and initialize new variables described above. * src/sysdep.c [HAVE_SYS_RESOURCE_H]: Include sys/resource.h as such. (stack_grows_down, sigsegv_stack, handle_sigsegv) [HAVE_STACK_OVERFLOW_HANDLING]: New variables and function. (init_sigsegv): New function. (init_signals): Use it. * lisp/startup.el (normal-top-level): Use top-level-message.
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 391d2e52100..f618ba02448 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,22 @@
12014-08-26 Dmitry Antipov <dmantipov@yandex.ru>
2
3 Handle C stack overflow caused by too nested Lisp evaluation.
4 * lisp.h (toplevel) [HAVE_STACK_OVERFLOW_HANDLING]: Declare
5 siglongjmp point to transfer control from SIGSEGV handler.
6 * keyboard.c (return_to_command_loop, recover_top_level_message)
7 [HAVE_STACK_OVERFLOW_HANDLING]: New variables.
8 (regular_top_level_message): New variable.
9 (command_loop) [HAVE_STACK_OVERFLOW_HANDLING]: Handle non-local
10 exit from SIGSEGV handler and adjust message displayed by Vtop_level
11 if appropriate.
12 (syms_of_keyboard): DEFVAR Vtop_level_message and initialize
13 new variables described above.
14 * sysdep.c [HAVE_SYS_RESOURCE_H]: Include sys/resource.h as such.
15 (stack_grows_down, sigsegv_stack, handle_sigsegv)
16 [HAVE_STACK_OVERFLOW_HANDLING]: New variables and function.
17 (init_sigsegv): New function.
18 (init_signals): Use it.
19
12014-08-25 Ken Brown <kbrown@cornell.edu> 202014-08-25 Ken Brown <kbrown@cornell.edu>
2 21
3 * emacs.c (main): Remove use of obsolete macro 22 * emacs.c (main): Remove use of obsolete macro