A build failure since only include header "postgresql/server/port.h" - Mailing list pgsql-bugs

From Changqing Li
Subject A build failure since only include header "postgresql/server/port.h"
Date
Msg-id ab31fa66-face-4866-8e2f-b947f4ba42a6@windriver.com
Whole thread Raw
List pgsql-bugs

Hi,

I am building pgpool2, and there is  a snprintf.c,  which use PG_STRERROR_R_BUFLEN, so I include header "postgresql/server/port.h".

It works well before.  but after I upgrade postgresql from 15.5 to 16.2,  I will met following error:

usr/include/postgresql/server/port.h:488:28: error: a parameter list without types is only allowed in a function definition  488 | typedef void (*pqsigfunc) (SIGNAL_ARGS);      |                            ^

Since commit https://github.com/postgres/postgres/commit/b66fbd8afe6eb80e3e48495e002fda9aa92df583#diff-c6b9d5a7f7f2c4a96f8b818cf7845acda4cd6297bc2f7d7181be24d8e35dbf32,

SIGNAL_ARGS is used in port.h, it is defined in c.h,  But port.h don't include c.h, and cause above error.   Should we include c.h in port.h? 

I also tried include c.h in port.h,   but met another error when building pgpool2.  I also reported this to pgpool2 community:  https://www.pgpool.net/mantisbt/view.php?id=830


Could you help to give an suggestion about how to fix this issue?


Thanks

Changqing


pgsql-bugs by date:

Previous
From: Tender Wang
Date:
Subject: Re: BUG #18314: PARALLEL UNSAFE function does not prevent parallel index build
Next
From: Ronan Dunklau
Date:
Subject: Re: FSM Corruption (was: Could not read block at end of the relation)