From: | "Tristan Partin" <tristan(at)partin(dot)io> |
---|---|
To: | "pgsql-hackers" <pgsql-hackers(at)postgresql(dot)org> |
Cc: | "Andres Freund" <andres(at)anarazel(dot)de>, "Jelte Fennema-Nio" <me(at)jeltef(dot)nl> |
Subject: | Re: Decouple C++ support in Meson's PGXS from LLVM enablement |
Date: | 2025-09-28 21:16:52 |
Message-ID: | DD4QUSV1TTCX.GFWVBXTFYDTN@partin.io |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed Apr 16, 2025 at 8:57 PM CDT, Tristan Partin wrote:
> Howdy folks,
>
> While playing around with pg_duckdb[0], a Postgres extension written in
> C++ which uses PGXS, I came across a strange build error:
>
> std=c++17 -Wno-sign-compare...
> /bin/sh: line 1: -Wno-sign-compare: command not found
>
> I was very confused by the error, but reading the command line, it made
> sense. After talking to Jelte off-list, he told me to try a Postgres
> installation that had been built with autotools. Today, I finally had
> a chance to try that tip, and building pg_duckdb succeeded.
>
> I spent some time exploring the Meson build a bit, and I realized that
> C++ support in PGXS is tied to LLVM enablement. Checking the autotools
> build in the configure.ac script indicates that that is not the case for
> it.
>
> On master, C++ support looks like:
>
> llvmopt = get_option('llvm')
> llvm = not_found_dep
> if add_languages('cpp', required: llvmopt, native: false)
> llvm = dependency('llvm', version: '>=14', method: 'config-tool', required: llvmopt)
> if llvm.found()
>
> cdata.set('USE_LLVM', 1)
>
> cpp = meson.get_compiler('cpp')
>
> By default, the `llvm` option is disabled, which Meson takes to mean,
> "do not check for C++ support". Thusly, add_languages() returns false.
> In addition, every check for adding to cxxflags, et. al. is gated on
> llvm.found(), which is always false for the `not_found_dep`. All this
> considered, the Makefile.global of a Postgres build roughly looked like:
>
> CXX =
> CXXFLAGS =
> ...
>
> This then accounts for the original pg_duckdb command line looking the
> way that it did.
>
> 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.
GitHub branch: https://github.com/tristan957/postgres/tree/meson-cpp
[0]: https://github.com/tristan957/postgres/commit/b0fb2c6aa5a485e28210e13ae5536c1231b1261f
--
Tristan Partin
https://tristan.partin.io
Attachment | Content-Type | Size |
---|---|---|
v2-0001-Decouple-C-support-in-Meson-s-PGXS-from-LLVM-enab.patch | text/x-patch | 4.5 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | David Rowley | 2025-09-28 21:36:37 | Re: bug, ALTER TABLE call ATPostAlterTypeCleanup twice for the same relation |
Previous Message | David Christensen | 2025-09-28 20:34:28 | Re: [PATCH] GROUP BY ALL |