]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix problem with _setjmp in MinGW64-compiled Emacs.
authorEli Zaretskii <eliz@gnu.org>
Tue, 26 Mar 2013 17:32:52 +0000 (19:32 +0200)
committerEli Zaretskii <eliz@gnu.org>
Tue, 26 Mar 2013 17:32:52 +0000 (19:32 +0200)
 nt/inc/ms-w32.h (USE_NO_MINGW_SETJMP_TWO_ARGS): Don't define.
 nt/config.nt (HAVE__SETJMP) [!_W64]: Don't define for MinGW64, as
 its _setjmp accepts 2 arguments.

nt/ChangeLog
nt/config.nt
nt/inc/ms-w32.h

index 031735edac84034f87c61f0967c75a9763847a1c..6f208f2a18f6429e2512da7c0d989d0c7d6548e8 100644 (file)
@@ -1,5 +1,10 @@
 2013-03-26  Eli Zaretskii  <eliz@gnu.org>
 
+       * inc/ms-w32.h (USE_NO_MINGW_SETJMP_TWO_ARGS): Don't define.
+
+       * config.nt (HAVE__SETJMP) [!_W64]: Don't define for MinGW64, as
+       its _setjmp accepts 2 arguments.
+
        * addsection.c (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT): Do not
        define for MinGW64.
 
index 1fe707cce2d4c86601e2be81762888709672dcf1..4f151fcad201dce18f0c4c9ea1b5dbc9702d9e46 100644 (file)
@@ -1143,8 +1143,12 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 /* Define to 1 if you have the `_ftime' function. */
 #undef HAVE__FTIME
 
-/* Define to 1 if _setjmp and _longjmp work. */
+/* Define to 1 if _setjmp and _longjmp work.  MinGW64 uses a
+   2-argument _setjmp, and setjmp is a macro defined to supply the 2nd
+   arg correctly, so don't use _setjmp directly in that case.  */
+#ifndef _W64
 #define HAVE__SETJMP 1
+#endif
 
 /* Define to 1 if you have the `__builtin_unwind_init' function. */
 #undef HAVE___BUILTIN_UNWIND_INIT
index f721676f731b5bfa258b9262f237fe6a68af8372..fd18e8fd1dae1a5cefde7b03bf9f5d4c97310956 100644 (file)
@@ -158,7 +158,6 @@ extern char *getenv ();
 
 #ifdef _W64
 /* MinGW64 specific stuff.  */
-#define USE_NO_MINGW_SETJMP_TWO_ARGS 1
 /* Make sure 'struct timespec' and 'struct timezone' are defined.  */
 #include <sys/types.h>
 #include <time.h>