From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: [RFC] building postgres with meson |
Date: | 2021-10-13 17:26:54 |
Message-ID: | 20211013172654.mjtiwpezmczk6ppy@alap3.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
On 2021-10-13 08:55:38 -0400, Andrew Dunstan wrote:
> On 10/12/21 9:03 PM, Andres Freund wrote:
> > I managed to get this working. At first it failed because I don't have
> > pexports - it's not available inside msys as far as I could tell. And seems to
> > be unmaintained. But replacing pexports with gendef fixed that.
> >
> > There's this comment in src/pl/plperl/GNUmakefile
> >
> > # Perl on win32 ships with import libraries only for Microsoft Visual C++,
> > # which are not compatible with mingw gcc. Therefore we need to build a
> > # new import library to link with.
> >
> > but I seem to be able to link fine without going through that song-and-dance?
> >
>
>
> It looks like you're not building a native postgres, but rather one
> targeted at msys. To build one that's native (i.e. runs without any
> presence of msys) you need to do these things before building:
>
> MSYSTEM=MINGW64
> MSYSTEM_CHOST=x86_64-w64-mingw32
> PATH="/mingw64/bin:$PATH"
I had a config equivalent to this (slight difference in PATH, but the same gcc
being picked), and I just verified that it still works if I set up PATH like
that. I get a working plperl out of it. Without msys on PATH or such.
where perl526.dll
C:\perl\strawberry-5.26.3.1-64bit\perl\bin\perl526.dll
dumpbin /imports 'C:/Users/anfreund/src/pg-meson/build-mingw/tmp_install/lib/plperl.dll'|grep dll
Dump of file C:\Users\anfreund\src\pg-meson\build-mingw\tmp_install\lib\plperl.dll
KERNEL32.dll
msvcrt.dll
perl526.dll
dumpbin /imports .\build-mingw\tmp_install\bin\postgres.exe|grep dll
ADVAPI32.dll
KERNEL32.dll
msvcrt.dll
Secur32.dll
WLDAP32.dll
WS2_32.dll
do $$elog(NOTICE, "blob");$$ language plperl;
NOTICE: blob
DO
To me this looks like it's a plperl built without the import file recreation,
without being msys dependent?
> pexports will be in the resulting path, and the build will use the
> native compiler.
I don't see pexports anywhere in the msys installation. I can see it available
on sourceforge, and I see a few others asking where to get it from in the
context of msys, and being pointed to manually downloading it.
Seems like we should consider using gendef instead of pexports, given it's
available in msys?
$ pacman -Fy
$ pacman -F gendef.exe
...
mingw64/mingw-w64-x86_64-tools-git 9.0.0.6316.acdc7adc9-1 (mingw-w64-x86_64-toolchain) [installed]
mingw64/bin/gendef.exe
..
$ pacman -F pexports.exe
$ pacman -Fx pexports
<bunch of packages containing smtpexports.h>
Greetings,
Andres Freund
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2021-10-13 17:27:58 | Re: prevent immature WAL streaming |
Previous Message | Bossart, Nathan | 2021-10-13 17:20:56 | Re: BUG #17220: ALTER INDEX ALTER COLUMN SET (..) with an optionless opclass makes index and table unusable |