On 4/3/19 8:37 AM, Martin Storsjö wrote:

Another aspect of this patch I didn't think of yesterday:

diff --git a/mingw-w64-headers/crt/setjmp.h b/mingw-w64-headers/crt/setjmp.h
index fc79f109..039c93f0 100644
--- a/mingw-w64-headers/crt/setjmp.h
+++ b/mingw-w64-headers/crt/setjmp.h
@@ -252,8 +252,7 @@ void * __cdecl __attribute__ ((__nothrow__)) mingw_getsp (void);    int __cdecl __attribute__ ((__nothrow__,__returns_twice__)) setjmp(jmp_buf _Buf);
 #endif

-  __MINGW_ATTRIB_NORETURN __attribute__ ((__nothrow__)) void __cdecl ms_longjmp(jmp_buf _Buf,int _Value)/* throw(...)*/; -  __MINGW_ATTRIB_NORETURN __attribute__ ((__nothrow__)) void __cdecl longjmp(jmp_buf _Buf,int _Value); +  _CRTIMP __MINGW_ATTRIB_NORETURN __attribute__ ((__nothrow__)) void __cdecl longjmp(jmp_buf _Buf,int _Value);

 #ifdef __cplusplus
 }

This will break this part of the existing setjmp.h (earlier in the file):

#    elif defined(_ARM_) || defined(__arm__) || defined(_ARM64_) || defined(__aarch64__)
#      define setjmp(BUF) __mingw_setjmp((BUF))
#      define longjmp __mingw_longjmp
  int __cdecl __attribute__ ((__nothrow__,__returns_twice__)) __mingw_setjmp(jmp_buf _Buf);

Your patch will add the _CRTIMP to the longjmp declaration, while the #define changes the delcaration from longjmp into __mingw_longjmp, which isn't available as dllimport.


Good catch, I will send a fixed version.


Thanks,

Jacek



_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to