Re: BUG #16920: Can't compile PostGIS with MingW64 against PostgreSQL 14 head

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>
Cc: Regina Obe <lr@pcorp.us>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2021-03-13T23:38:59Z
Lists: pgsql-bugs

Attachments

I wrote:
> Hmm, interesting.  The gcc manual is quite negative about these though:
> https://gcc.gnu.org/onlinedocs/gcc/Nonlocal-Gotos.html
> Also it's not clear that these are compatible with <setjmp.h>'s version
> of jmp_buf.

After further study, I think we could fix the jmp_buf inconsistency as
attached.

I did some googling and found that we'd be in pretty good company if
we go this way: a lot of other projects have concluded that MinGW-64's
setjmp() is hopelessly buggy and adopted this same workaround.  It still
makes me a bit nervous though, as this is a serious ABI break for
anything using setjmp/longjmp.  We could not back-patch such a change,
and once we ship a release using this we're stuck with it in that
release branch.

Regina, could you confirm whether this fixes things for you?

			regards, tom lane

Commits

  1. Work around issues in MinGW-64's setjmp/longjmp support.