Revert "Use workaround of __builtin_setjmp only on MINGW on MSVCRT"
authorAndrew Dunstan <andrew@dunslane.net>
Mon, 7 Apr 2025 15:01:15 +0000 (11:01 -0400)
committerAndrew Dunstan <andrew@dunslane.net>
Mon, 7 Apr 2025 15:01:15 +0000 (11:01 -0400)
This reverts commit c313fa4602defe1be947370ab5b217ca163a1e3c.

This is found to cause issues on x86_64 Windows even when using UCRT.

Discussion: https://postgr.es/m/3312149.1744001936@sss.pgh.pa.us

src/include/c.h

index 94697aab428fcb0cd37c215cbee5f01efafe638e..8cdc16a0f4a9b4d2a8638981a9e574405846cd3a 100644 (file)
@@ -1326,19 +1326,19 @@ extern int  fdatasync(int fildes);
 /*
  * When there is no sigsetjmp, its functionality is provided by plain
  * setjmp.  We now support the case only on Windows.  However, it seems
- * that MinGW-64 has some longstanding issues in its setjmp support when
- * building with MSVCRT, so on that toolchain we cheat and use gcc's builtins.
+ * that MinGW-64 has some longstanding issues in its setjmp support,
+ * so on that toolchain we cheat and use gcc's builtins.
  */
 #ifdef WIN32
-#if defined(__MINGW64__) && !defined(_UCRT)
+#ifdef __MINGW64__
 typedef intptr_t sigjmp_buf[5];
 #define sigsetjmp(x,y) __builtin_setjmp(x)
 #define siglongjmp __builtin_longjmp
-#else                          /* !defined(__MINGW64__) || defined(_UCRT) */
+#else                          /* !__MINGW64__ */
 #define sigjmp_buf jmp_buf
 #define sigsetjmp(x,y) setjmp(x)
 #define siglongjmp longjmp
-#endif                         /* defined(__MINGW64__) && !defined(_UCRT) */
+#endif                         /* __MINGW64__ */
 #endif                         /* WIN32 */
 
 /* /port compatibility functions */