mirror of
https://github.com/postgres/postgres.git
synced 2025-04-20 00:42:27 +03:00
Use workaround of __builtin_setjmp only on MINGW on MSVCRT
MSVCRT is not present Windows/ARM64 and the workaround is not necessary on any UCRT based toolchain. Author: Lars Kanis <lars@greiz-reinsdorf.de> Discussion: https://postgr.es/m/CAHXCYb2OjNHtoGVKyXtXmw4B3bUXwJX6M-Lcp1KcMCRUMLOocA@mail.gmail.com
This commit is contained in:
parent
e19dc74491
commit
c313fa4602
@ -1326,19 +1326,19 @@ extern int fdatasync(int fildes);
|
|||||||
/*
|
/*
|
||||||
* When there is no sigsetjmp, its functionality is provided by plain
|
* When there is no sigsetjmp, its functionality is provided by plain
|
||||||
* setjmp. We now support the case only on Windows. However, it seems
|
* setjmp. We now support the case only on Windows. However, it seems
|
||||||
* that MinGW-64 has some longstanding issues in its setjmp support,
|
* that MinGW-64 has some longstanding issues in its setjmp support when
|
||||||
* so on that toolchain we cheat and use gcc's builtins.
|
* building with MSVCRT, so on that toolchain we cheat and use gcc's builtins.
|
||||||
*/
|
*/
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
#ifdef __MINGW64__
|
#if defined(__MINGW64__) && !defined(_UCRT)
|
||||||
typedef intptr_t sigjmp_buf[5];
|
typedef intptr_t sigjmp_buf[5];
|
||||||
#define sigsetjmp(x,y) __builtin_setjmp(x)
|
#define sigsetjmp(x,y) __builtin_setjmp(x)
|
||||||
#define siglongjmp __builtin_longjmp
|
#define siglongjmp __builtin_longjmp
|
||||||
#else /* !__MINGW64__ */
|
#else /* !defined(__MINGW64__) || defined(_UCRT) */
|
||||||
#define sigjmp_buf jmp_buf
|
#define sigjmp_buf jmp_buf
|
||||||
#define sigsetjmp(x,y) setjmp(x)
|
#define sigsetjmp(x,y) setjmp(x)
|
||||||
#define siglongjmp longjmp
|
#define siglongjmp longjmp
|
||||||
#endif /* __MINGW64__ */
|
#endif /* defined(__MINGW64__) && !defined(_UCRT) */
|
||||||
#endif /* WIN32 */
|
#endif /* WIN32 */
|
||||||
|
|
||||||
/* /port compatibility functions */
|
/* /port compatibility functions */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user