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