Re: Decouple C++ support in Meson's PGXS from LLVM enablement

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: Tristan Partin <tristan@partin.io>, pgsql-hackers <pgsql-hackers@postgresql.org>
Cc: Andres Freund <andres@anarazel.de>, Jelte Fennema-Nio <me@jeltef.nl>
Date: 2025-11-07T15:39:42Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Decouple C++ support in Meson's PGXS from LLVM enablement

  2. ci: Configure g++ with 32-bit for 32-bit build

  3. meson: Rename cpp variable to cxx

  4. Refactor to avoid code duplication in transformPLAssignStmt.

On 28.09.25 23:16, Tristan Partin wrote:
>> Attached is a patch which decouples C++ support in PGXS from LLVM for
>> a Meson-compiled Postgres.
>>
>> [0]: https://github.com/duckdb/pg_duckdb
> 
> With PGConf NYC around the corner, I thought I would rebase the original
> patch. Please find v2 attached, which applies on top of
> b0fb2c6aa5a485e28210e13ae5536c1231b1261f[0] :D.

This patch makes sense to me.  But I wonder what the behavior should be 
if no C++ compiler is found.  Because then you're back to the state 
you're started from, with the confusing make error.  If you imagine a 
packager building postgresql in a minimal environment, and without llvm 
for some reason, then they would ship PGXS in that state without noticing.

The AC_PROG_CXX macro sets CXX to g++ if no C++ compiler is found.  Then 
a PGXS user would at least get an error message about g++ not found and 
they can fix it by installing it.  Maybe we should do that under Meson too.

An alternative would be to add some kind of build option or feature to 
enable C++ support explicitly.