diff options
| author | Paul Eggert | 2012-09-15 01:45:27 -0700 |
|---|---|---|
| committer | Paul Eggert | 2012-09-15 01:45:27 -0700 |
| commit | 39a57ad07b0521dd6dbcae9cd4996366aa59e1ba (patch) | |
| tree | 77b103843b2a91952b3df49682ae278d2dfae54a | |
| parent | 7105c8cbf3a3226701e4d2ecb0b9c2d207648a98 (diff) | |
| download | emacs-39a57ad07b0521dd6dbcae9cd4996366aa59e1ba.tar.gz emacs-39a57ad07b0521dd6dbcae9cd4996366aa59e1ba.zip | |
Port _setjmp fix to POSIXish hosts as well as Microsoft.
* nt/config.nt: Attempt to sync with autogen/config.in.
(HAVE_SIGSETJMP, HAVE__SETJMP): New macros.
(_longjmp, _setjmp): Remove.
* src/image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as
it's needed on POSIXish hosts that lack _setjmp. Attempt to solve
the Microsoft problem in a different way, by altering nt/config.nt.
| -rw-r--r-- | nt/ChangeLog | 7 | ||||
| -rw-r--r-- | nt/config.nt | 15 | ||||
| -rw-r--r-- | src/ChangeLog | 7 | ||||
| -rw-r--r-- | src/image.c | 4 |
4 files changed, 22 insertions, 11 deletions
diff --git a/nt/ChangeLog b/nt/ChangeLog index 54e5570072a..197ce0cf850 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2012-09-15 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | Port _setjmp fix to POSIXish hosts as well as Microsoft. | ||
| 4 | * config.nt: Attempt to sync with autogen/config.in. | ||
| 5 | (HAVE_SIGSETJMP, HAVE__SETJMP): New macros. | ||
| 6 | (_longjmp, _setjmp): Remove. | ||
| 7 | |||
| 1 | 2012-09-14 Juanma Barranquero <lekktu@gmail.com> | 8 | 2012-09-14 Juanma Barranquero <lekktu@gmail.com> |
| 2 | 9 | ||
| 3 | * config.nt: Sync with autogen/config.in. | 10 | * config.nt: Sync with autogen/config.in. |
diff --git a/nt/config.nt b/nt/config.nt index 5121a013aad..82b7da430ab 100644 --- a/nt/config.nt +++ b/nt/config.nt | |||
| @@ -800,6 +800,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 800 | /* Define to 1 if 'wint_t' is a signed integer type. */ | 800 | /* Define to 1 if 'wint_t' is a signed integer type. */ |
| 801 | #undef HAVE_SIGNED_WINT_T | 801 | #undef HAVE_SIGNED_WINT_T |
| 802 | 802 | ||
| 803 | /* Define to 1 if sigsetjmp and siglongjmp work. The value of this symbol is | ||
| 804 | irrelevant if HAVE__SETJMP is defined. */ | ||
| 805 | #undef HAVE_SIGSETJMP | ||
| 806 | |||
| 803 | /* Define to 1 if the system has the type `sigset_t'. */ | 807 | /* Define to 1 if the system has the type `sigset_t'. */ |
| 804 | #undef HAVE_SIGSET_T | 808 | #undef HAVE_SIGSET_T |
| 805 | 809 | ||
| @@ -1084,6 +1088,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 1084 | /* Define to 1 if you have the `_ftime' function. */ | 1088 | /* Define to 1 if you have the `_ftime' function. */ |
| 1085 | #undef HAVE__FTIME | 1089 | #undef HAVE__FTIME |
| 1086 | 1090 | ||
| 1091 | /* Define to 1 if _setjmp and _longjmp work. */ | ||
| 1092 | #define HAVE__SETJMP 1 | ||
| 1093 | |||
| 1087 | /* Define to 1 if you have the `__builtin_unwind_init' function. */ | 1094 | /* Define to 1 if you have the `__builtin_unwind_init' function. */ |
| 1088 | #undef HAVE___BUILTIN_UNWIND_INIT | 1095 | #undef HAVE___BUILTIN_UNWIND_INIT |
| 1089 | 1096 | ||
| @@ -1511,14 +1518,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 1511 | declarations. Define as empty for no equivalent. */ | 1518 | declarations. Define as empty for no equivalent. */ |
| 1512 | #undef __restrict_arr | 1519 | #undef __restrict_arr |
| 1513 | 1520 | ||
| 1514 | /* Define to longjmp if _setjmp and _longjmp do not work. Because longjmp may | ||
| 1515 | alter signal masks, callers of _longjmp should not assume that it leaves | ||
| 1516 | signal masks alone. */ | ||
| 1517 | #undef _longjmp | ||
| 1518 | |||
| 1519 | /* Define to setjmp if _setjmp and _longjmp do not work. See _longjmp. */ | ||
| 1520 | #undef _setjmp | ||
| 1521 | |||
| 1522 | /* Some platforms that do not use configure define this to include extra | 1521 | /* Some platforms that do not use configure define this to include extra |
| 1523 | configuration information. */ | 1522 | configuration information. */ |
| 1524 | #define config_opsysfile <ms-w32.h> | 1523 | #define config_opsysfile <ms-w32.h> |
diff --git a/src/ChangeLog b/src/ChangeLog index f9d31b08abd..c6c314b9589 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2012-09-15 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | Port _setjmp fix to POSIXish hosts as well as Microsoft. | ||
| 4 | * image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as | ||
| 5 | it's needed on POSIXish hosts that lack _setjmp. Attempt to solve | ||
| 6 | the Microsoft problem in a different way, by altering ../nt/config.nt. | ||
| 7 | |||
| 1 | 2012-09-15 Eli Zaretskii <eliz@gnu.org> | 8 | 2012-09-15 Eli Zaretskii <eliz@gnu.org> |
| 2 | 9 | ||
| 3 | * w32xfns.c: | 10 | * w32xfns.c: |
diff --git a/src/image.c b/src/image.c index 02151c500cc..8fc1c8637eb 100644 --- a/src/image.c +++ b/src/image.c | |||
| @@ -5520,9 +5520,7 @@ init_png_functions (Lisp_Object libraries) | |||
| 5520 | MinGW (MS-Windows) uses _setjmp and defines setjmp to _setjmp in | 5520 | MinGW (MS-Windows) uses _setjmp and defines setjmp to _setjmp in |
| 5521 | the system header setjmp.h; don't mess up that. */ | 5521 | the system header setjmp.h; don't mess up that. */ |
| 5522 | #ifndef HAVE__SETJMP | 5522 | #ifndef HAVE__SETJMP |
| 5523 | # ifndef setjmp | 5523 | # define _setjmp(j) setjmp (j) |
| 5524 | # define _setjmp(j) setjmp (j) | ||
| 5525 | # endif | ||
| 5526 | # define _longjmp longjmp | 5524 | # define _longjmp longjmp |
| 5527 | #endif | 5525 | #endif |
| 5528 | 5526 | ||