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

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Regina Obe <lr@pcorp.us>, 'Heikki Linnakangas' <hlinnaka@iki.fi>, 'Juan José Santamaría Flecha' <juanjo.santamaria@gmail.com>, 'PostgreSQL mailing lists' <pgsql-bugs@lists.postgresql.org>
Date: 2021-03-20T21:18:59Z
Lists: pgsql-bugs
Hi,

On 2021-03-19 20:37:17 -0400, Tom Lane wrote:
> Andres Freund <andres@anarazel.de> writes:
> > On 2021-03-15 12:12:59 -0400, Tom Lane wrote:
> >> Although I remain worried about this being an ABI break, I don't think
> >> we are locked into it until we get to beta, or maybe even RC stage.
> 
> > Could it make sense to define sigjmp_buf as a union over the potentially
> > needed implementations? That'd allow us to switch back without an ABI
> > break  if we discover a problem with the gcc approach.
> 
> No, it'd still be an ABI break, because the setjmp and the longjmp calls
> have to use the same implementation.  Ain't gonna work if elog.c tries
> to throw via mingw's longjmp() while some extension contains a PG_TRY
> that uses __builtin_setjmp().  Nor vice versa.

Yea, I momentarily forgot that we can't easily wrap setjmp in a
function... I guess we could just make sigsetjmp set a flag that
indicates which longjmp to use, but that's probably more complication
than the issue / mingw warrants.

- Andres



Commits

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