Re: Decouple C++ support in Meson's PGXS from LLVM enablement
От | Tristan Partin |
---|---|
Тема | Re: Decouple C++ support in Meson's PGXS from LLVM enablement |
Дата | |
Msg-id | DD4QUSV1TTCX.GFWVBXTFYDTN@partin.io обсуждение исходный текст |
Ответ на | Decouple C++ support in Meson's PGXS from LLVM enablement ("Tristan Partin" <tristan@partin.io>) |
Список | 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
Вложения
В списке pgsql-hackers по дате отправления: