On Tue, 2 Apr 2019, Jacek Caban wrote:
.../def-include/msvcrt-common.def.in | 2 +-
.../api-ms-win-crt-private-l1-1-0.def.in | 2 +-
mingw-w64-crt/lib-common/msvcrt.def.in | 1 -
mingw-w64-crt/lib-common/ucrtbase.def.in | 2 +-
.../lib-common/vcruntime140_app.def.in | 2 +-
mingw-w64-crt/lib32/crtdll.def | 2 +-
mingw-w64-crt/lib64/ntdllcrt.def | 2 +-
mingw-w64-crt/misc/longjmp.S | 23 -------------------
mingw-w64-headers/crt/setjmp.h | 3 +--
9 files changed, 7 insertions(+), 32 deletions(-)
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.
// Martin
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public