Author: rfm
Date: Tue Jun 28 16:01:55 2016
New Revision: 39942

URL: http://svn.gna.org/viewcvs/gnustep?rev=39942&view=rev
Log:
msys2/64bit fixes

Modified:
    libs/base/trunk/ChangeLog
    libs/base/trunk/Headers/Foundation/NSException.h
    libs/base/trunk/Source/NSDebug.m

Modified: libs/base/trunk/ChangeLog
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/ChangeLog?rev=39942&r1=39941&r2=39942&view=diff
==============================================================================
--- libs/base/trunk/ChangeLog   (original)
+++ libs/base/trunk/ChangeLog   Tue Jun 28 16:01:55 2016
@@ -1,3 +1,10 @@
+2016-06-28  Richard Frith-Macdonald <[email protected]>
+
+       * Source/NSDebug.m: Yse setjmp/longjmp from NSException.h
+       * Headers/Foundation/NSException.h: On mingw-w64 use the builtin
+       setjmp/longjmp provided by gcc since the mingw version sometimes
+       crashes.
+
 2016-06-28  Richard Frith-Macdonald <[email protected]>
 
        * SSL: Openssl bundle directory deleted

Modified: libs/base/trunk/Headers/Foundation/NSException.h
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/Headers/Foundation/NSException.h?rev=39942&r1=39941&r2=39942&view=diff
==============================================================================
--- libs/base/trunk/Headers/Foundation/NSException.h    (original)
+++ libs/base/trunk/Headers/Foundation/NSException.h    Tue Jun 28 16:01:55 2016
@@ -50,8 +50,18 @@
 #endif
 
 #import        <Foundation/NSString.h>
+
 #include <setjmp.h>
 #include <stdarg.h>
+
+#if    defined(__WIN64__)
+/* This hack is to deal with the fact that currently (June 2016) the
+ * implementation of longjmp in mingw-w64  sometimes crashes in msvcrt.dll
+ * but the builtin version provided by gcc seems to work.
+ */
+#define        setjmp(X)       __builtin_setjmp(X)
+#define        longjmp(X,Y)    __builtin_longjmp(X,Y)
+#endif
 
 #if    defined(__cplusplus)
 extern "C" {
@@ -354,7 +364,7 @@
 
 #define NS_DURING { NSHandler NSLocalHandler;                  \
                    _NSAddHandler(&NSLocalHandler);             \
-                   if( !setjmp(NSLocalHandler.jumpState) ) {
+                   if (!setjmp(NSLocalHandler.jumpState)) {
 
 #define NS_HANDLER _NSRemoveHandler(&NSLocalHandler); } else { \
                    NSException __attribute__((unused)) *localException \

Modified: libs/base/trunk/Source/NSDebug.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/Source/NSDebug.m?rev=39942&r1=39941&r2=39942&view=diff
==============================================================================
--- libs/base/trunk/Source/NSDebug.m    (original)
+++ libs/base/trunk/Source/NSDebug.m    Tue Jun 28 16:01:55 2016
@@ -34,6 +34,7 @@
 #import "Foundation/NSArray.h"
 #import "Foundation/NSData.h"
 #import "Foundation/NSDictionary.h"
+#import "Foundation/NSException.h"
 #import "Foundation/NSLock.h"
 #import "Foundation/NSNotification.h"
 #import "Foundation/NSNotificationQueue.h"
@@ -789,8 +790,6 @@
 #elif  defined(HAVE_SIGNAL_H)
 #  include     <signal.h>
 #endif
-
-#include <setjmp.h>
 
 #if    defined(_WIN32)
 #ifndef SIGBUS


_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to