A build failure since only include header "postgresql/server/port.h"

From: Changqing Li <changqing(dot)li(at)windriver(dot)com>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: Changqing Li <changqing(dot)li(at)eng(dot)windriver(dot)com>
Subject: A build failure since only include header "postgresql/server/port.h"
Date: 2024-03-06 08:51:41
Message-ID: ab31fa66-face-4866-8e2f-b947f4ba42a6@windriver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Ronan Dunklau 2024-03-06 09:31:17 Re: FSM Corruption (was: Could not read block at end of the relation)
Previous Message Tender Wang 2024-03-06 04:30:30 Re: BUG #18314: PARALLEL UNSAFE function does not prevent parallel index build