Re: pl/perl extension fails on Windows
Ashutosh Sharma <ashu.coek88@gmail.com>
From: Ashutosh Sharma <ashu.coek88@gmail.com>
To: Christoph Berg <myon@debian.org>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-07-31T03:48:51Z
Lists: pgsql-hackers
Hi Christoph, On Mon, Jul 31, 2017 at 2:44 AM, Christoph Berg <myon@debian.org> wrote: > Re: Tom Lane 2017-07-28 <3254.1501276475@sss.pgh.pa.us> >> Christoph Berg <myon@debian.org> writes: >> > The plperl segfault on Debian's kfreebsd port I reported back in 2013 >> > is also still present: >> > https://www.postgresql.org/message-id/20130515064201.GC704%40msgid.df7cb.de >> > https://buildd.debian.org/status/fetch.php?pkg=postgresql-10&arch=kfreebsd-amd64&ver=10~beta2-1&stamp=1499947011&raw=0 >> >> So it'd be interesting to know if it's any better with HEAD ... > > Unfortunately not: > > ============== creating database "pl_regression" ============== > CREATE DATABASE > ALTER DATABASE > ============== installing plperl ============== > server closed the connection unexpectedly > This probably means the server terminated abnormally > before or while processing the request. > connection to server was lost > > The only interesting line in log/postmaster.log is a log_line_prefix-less > Util.c: loadable library and perl binaries are mismatched (got handshake key 0xd500080, needed 0xd600080) > ... which is unchanged from the beta2 output. I am not able to reproduce this issue on my Windows or Linux box. Have you deleted Util.c and SPI.c files before starting with the build? The point is, these files are generated during build time and if they already exist then i think. they are not re generated. I would suggest to delete both the .c files and rebuild your source and then give a try. Here are the results i got on Windows and Linux respectively on HEAD, On Windows: C:\Users\ashu\git-clone-postgresql\postgresql\src\tools\msvc>vcregress.bat PLCHECK ============================================================ Checking plperl (using postmaster on localhost, default port) ============== dropping database "pl_regression" ============== NOTICE: database "pl_regression" does not exist, skipping DROP DATABASE ============== creating database "pl_regression" ============== CREATE DATABASE ALTER DATABASE ============== installing plperl ============== CREATE EXTENSION ============== installing plperlu ============== CREATE EXTENSION ============== running regression test queries ============== test plperl ... ok test plperl_lc ... ok test plperl_trigger ... ok test plperl_shared ... ok test plperl_elog ... ok test plperl_util ... ok test plperl_init ... ok test plperlu ... ok test plperl_array ... ok test plperl_plperlu ... ok ====================== All 10 tests passed. ====================== On Linux: LD_LIBRARY_PATH="/home/ashu/git-clone-postgresql/postgresql/tmp_install/home/ashu/git-clone-postgresql/postgresql/TMP/postgres/lib" ../../../src/test/regress/pg_regress --temp-instance=./tmp_check --inputdir=. --bindir= --dbname=pl_regression --load-extension=plperl --load-extension=plperlu plperl plperl_lc plperl_trigger plperl_shared plperl_elog plperl_util plperl_init plperlu plperl_array ============== creating temporary instance ============== ============== initializing database system ============== ============== starting postmaster ============== running on port 50848 with PID 18140 ============== creating database "pl_regression" ============== CREATE DATABASE ALTER DATABASE ============== installing plperl ============== CREATE EXTENSION ============== installing plperlu ============== CREATE EXTENSION ============== running regression test queries ============== test plperl ... ok test plperl_lc ... ok test plperl_trigger ... ok test plperl_shared ... ok test plperl_elog ... ok test plperl_util ... ok test plperl_init ... ok test plperlu ... ok test plperl_array ... ok ============== shutting down postmaster ============== ============== removing temporary instance ============== -- With Regards, Ashutosh Sharma EnterpriseDB:http://www.enterprisedb.com
Commits
-
MSVC: Test whether 32-bit Perl needs -D_USE_32BIT_TIME_T.
- 1886899420ce 9.3.21 landed
- aed8d41af628 9.4.16 landed
- 1c1a572d055f 9.5.11 landed
- 140fa2fbad94 9.6.7 landed
- 9b5c99790e83 10.2 landed
- 65a00f30352a 11.0 landed
-
Further tweaks to compiler flags for PL/Perl on Windows.
- f7e4783ddbef 9.2.23 landed
- bc4404405f21 9.3.19 landed
- 4f862351d20b 9.4.14 landed
- bff216d8789f 9.5.9 landed
- c343314882f1 9.6.5 landed
- 1d7a479d22f6 10.0 landed
- b5178c5d08ca 11.0 landed
-
Absorb -D_USE_32BIT_TIME_T switch from Perl, if relevant.
- e3335ec0b6a6 9.2.23 landed
- 5a5c2feca3fd 10.0 landed
- 3883be3eae97 9.6.5 landed
- 25169b948e13 9.3.19 landed
- 1621a75531c8 9.5.9 landed
- 01de7ea85378 9.4.14 landed
-
PL/Perl portability fix: absorb relevant -D switches from Perl.
- df52739ce3e7 9.5.8 landed
- 9cbdc689418b 9.4.13 landed
- 456c7dff2af1 9.2.22 landed
- 1e58c503ec46 9.6.4 landed
- 0d8f015e7726 9.3.18 landed
- 3c163a7fc76d 10.0 landed
-
PL/Perl portability fix: avoid including XSUB.h in plperl.c.
- d48180ec812d 9.4.13 landed
- b92f17277eb9 9.3.18 landed
- b4b958251fbf 9.2.22 landed
- 99eea89dbe31 9.5.8 landed
- 30a5c8bfbd7b 9.6.4 landed
- bebe174bb446 10.0 landed