Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rht2O-00DsHc-Ez for pgsql-bugs@arkaria.postgresql.org; Wed, 06 Mar 2024 15:18:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rht2M-00B1H2-SE for pgsql-bugs@arkaria.postgresql.org; Wed, 06 Mar 2024 15:18:31 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rht2M-00B1Gt-KS for pgsql-bugs@lists.postgresql.org; Wed, 06 Mar 2024 15:18:31 +0000 Received: from sss.pgh.pa.us ([68.162.161.243]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rht2J-0039qW-IS for pgsql-bugs@lists.postgresql.org; Wed, 06 Mar 2024 15:18:29 +0000 Received: from sss1.sss.pgh.pa.us (localhost [127.0.0.1]) by sss.pgh.pa.us (8.15.2/8.15.2) with ESMTP id 426FIQs1136935; Wed, 6 Mar 2024 10:18:26 -0500 From: Tom Lane To: Changqing Li cc: pgsql-bugs@lists.postgresql.org, Changqing Li Subject: Re: A build failure since only include header "postgresql/server/port.h" In-reply-to: References: Comments: In-reply-to Changqing Li message dated "Wed, 06 Mar 2024 16:51:41 +0800" MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-ID: <136933.1709738306.1@sss.pgh.pa.us> Content-Transfer-Encoding: 8bit Date: Wed, 06 Mar 2024 10:18:26 -0500 Message-ID: <136934.1709738306@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Changqing Li writes: > 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? No, absolutely not. The expectation in all PG header files is that the .c file included one of postgres.h, postgres_fe.h, or c.h to begin with (mainly to establish whether this file is backend code, frontend code, or intended to work as both). This is your error not port.h's. regards, tom lane