Re: pl/perl extension fails on Windows
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Ashutosh Sharma <ashu.coek88@gmail.com>,
Andrew Dunstan <andrew.dunstan@2ndquadrant.com>, Dave Page <dpage@pgadmin.org>,
Sandeep Thakkar <sandeep.thakkar@enterprisedb.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2017-07-26T03:08:03Z
Lists: pgsql-hackers
On Tue, Jul 25, 2017 at 10:23 AM, Robert Haas <robertmhaas@gmail.com> wrote:
> While I'm not sure of the details, I suspect that we need to use one
> of those methods to get the CCFLAGS used to build perl, and include
> those when SPI.o, Util.o, and plperl.o in src/pl/plperl. Or at least
> the -D switches from those CCFLAGS. Here's about the simplest thing
> that seems like it might work on Linux; Windows would need something
> equivalent:
>
> override CPPFLAGS += $(shell $(PERL) -MConfig -e 'print
> $$Config::Config{"ccflags"};')
>
> On my MacBook Pro, with the built-in switches, that produces:
>
> -fno-common -DPERL_DARWIN -mmacosx-version-min=10.12 -pipe -Os
> -fno-strict-aliasing -fstack-protector-strong -I/opt/local/include
> -DPERL_USE_SAFE_PUTENV
>
> Or we could try to extract just the -D switches:
>
> override CPPFLAGS += $(shell $(PERL) -MConfig -e 'print join " ", grep
> { /^-D/ } split /\s+/, $$Config::Config{"ccflags"};')
Based on discussion downthread, it seems like what we actually need to
do is update perl.m4 to extract CCFLAGS. Turns out somebody proposed
a patch for that back in 2002:
https://www.postgresql.org/message-id/Pine.LNX.4.44.0211051045070.16317-200000%40wotan.suse.de
It seems to need a rebase. :-)
And maybe some other changes, too. I haven't carefully reviewed that thread.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
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