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