From: | Robert Haas <robertmhaas(at)gmail(dot)com> |
---|---|
To: | "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | meson vs. extension builds |
Date: | 2024-11-05 17:30:42 |
Message-ID: | CA+Tgmob9W=jiLF6-CJw3N+v2WwjpaEi+6CijjQL7EbFVuisSVQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
This issue has been bugging me for a while but I haven't gotten around
to reporting it until now. Apologies if this is a duplicate report.
When I try to build an extension such as pg_catcheck against a meson
build, it does not work. If I do the same thing with a configure-based
build, it does work. Here's the failure:
ccache clang -isysroot
/Library/Developer/CommandLineTools/SDKs/MacOSX14.0.sdk
-fno-strict-aliasing -fwrapv -Wall -g -O2 -Wmissing-prototypes
-Wpointer-arith -Werror=vla -Werror=unguarded-availability-new
-Wendif-labels -Wmissing-format-attribute -Wcast-function-type
-Wformat-security -Wdeclaration-after-statement
-Wmissing-variable-declarations -Wno-unused-command-line-argument
-Wno-compound-token-split-by-macro
-I/Users/robert.haas/install/dev/include -I. -I./
-I/Users/robert.haas/install/dev/include/postgresql/server
-I/Users/robert.haas/install/dev/include/postgresql/internal -c -o
pg_catcheck.o pg_catcheck.c -MMD -MP -MF .deps/pg_catcheck.Po
In file included from pg_catcheck.c:22:
In file included from
/Users/robert.haas/install/dev/include/postgresql/server/postgres_fe.h:25:
/Users/robert.haas/install/dev/include/postgresql/server/c.h:78:10:
fatal error: 'libintl.h' file not found
#include <libintl.h>
^~~~~~~~~~~
1 error generated.
make: *** [pg_catcheck.o] Error 1
The problem is that libintl.h is in /opt/local/include. When I run
meson setup, I specify -Dextra_include_dirs=/opt/local/include
-Dextra_lib_dirs=/opt/local/lib. And correspondingly, when I use
configure, I use --with-libraries=/opt/local/lib
--with-includes=/opt/local/include. But it seems that the configure
settings automatically propagate through to where extension builds
also pick them up, and the meson settings don't. Consequently, I am
sad.
Taking a diff of the generated lib/postgresql/pgxs/src/Makefile.global
files, I see, inter alia, this:
240c240
< CPPFLAGS = -isysroot $(PG_SYSROOT) -I/opt/local/include/libxml2
-I/opt/local/include
---
> CPPFLAGS =
315c315
< LDFLAGS = $(LDFLAGS_INTERNAL) -isysroot $(PG_SYSROOT)
-L/opt/local/lib -L/opt/local/lib -Wl,-dead_strip_dylibs
---
> LDFLAGS = $(LDFLAGS_INTERNAL) -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.0.sdk -Wl,-no_warn_duplicate_libraries
Which is probably related.
--
Robert Haas
EDB: http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Aleksander Alekseev | 2024-11-05 17:35:31 | Re: New function normal_rand_array function to contrib/tablefunc. |
Previous Message | Fujii Masao | 2024-11-05 16:40:17 | Re: index_delete_sort: Unnecessary variable "low" is used in heapam.c |