On 2025-04-01 Tu 8:47 AM, vignesh C wrote:
> On Tue, 1 Apr 2025 at 16:02, Andrew Dunstan <andrew@dunslane.net> wrote:
>>
>> On 2025-04-01 Tu 5:16 AM, vignesh C wrote:
>>> On Sun, 2 Feb 2025 at 00:52, Lars Kanis <lars@greiz-reinsdorf.de> wrote:
>>>> This patch limits the workaround of using __buildin_setjmp on the
>>>> Windows MINGW platform. This workaround is only necessary for legacy
>>>> MSVCRT based toolchain, but not for UCRT based. It is not available at
>>>> all on clang on ARM64 resulting in the following compiler error:
>>>>
>>>> error: __builtin_longjmp is not supported for the current target
>>>>
>>>> This patch is used since years in MSYS2 packages:
>>>>
https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-postgresql/postgresql-14.0-use-mingw-setjmp-on-ucrt.patch
>>>>
>>>> It is also used in ruby-pg to allow compiling for
>>>> aarch64-w64-windows-gnu: https://github.com/ged/ruby-pg/pull/626/files
>>>>
>>>> It would be nice if this patch could be merged upstream.
>>> Are there any known issues with using __builtin_setjmp? I'm asking
>>> because the comment mentions about the long standing issues in its
>>> setjmp "However, it seems that MinGW-64 has some longstanding issues
>>> in its setjmp support, so on that toolchain we cheat and use gcc's
>>> builtins. Also few users have reported segfaults when using setjmp
>>> with MinGW as in [1].
>>> [1] - https://stackoverflow.com/questions/53709069/setjmp-longjmp-in-x86-64-w64-mingw32
>>>
>> That report is from quite a few years ago, so I'm not sure it really helps.
>>
>> If one of you would add this to the next CF we could see how the CFbot
>> reacts to it. In general it looks sane.
> There is an existing CF entry for this at [1]. If no one picks this
> till the end of this CF, we can move it to next CF.
> [1] - https://commitfest.postgresql.org/patch/5610/
>
Somehow I missed that. OK, looks good, will commit shortly.
cheers
andrew
--
Andrew Dunstan
EDB: https://www.enterprisedb.com