Re: improving PL/Python builds on OS X - Mailing list pgsql-hackers

From Dave Page
Subject Re: improving PL/Python builds on OS X
Date
Msg-id CA+OCxow8oT8CRZ88OgkpkvL+ph9_F7jqAhM+V-LOMexfWuYn-w@mail.gmail.com
Whole thread Raw
In response to Re: improving PL/Python builds on OS X  (Dave Page <dpage@pgadmin.org>)
Responses Re: improving PL/Python builds on OS X  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-hackers
On Thu, May 9, 2013 at 8:09 AM, Dave Page <dpage@pgadmin.org> wrote:
> On Thu, May 9, 2013 at 2:26 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
>> On Wed, 2013-05-08 at 18:24 +0100, Dave Page wrote:
>>> It's failing on Linux. Even worse, it configures fine and then builds
>>> without error. There is a message spewed out by configure, but it
>>> doesn't contain the words warning or error. Given that I explicitly
>>> said I wanted Python support when I ran configure, it should certainly
>>> fail with an error at configure time. We only noticed this was a
>>> problem when the QA guys started diving in to more detailed tested, as
>>> we don't watch for every message in the 50+ MB of logs our automated
>>> build systems generate.
>>
>> It worked before because we used to allow linking shared libraries
>> against static libraries on some platforms.  But that was more or less a
>> lie because it doesn't work on 64-bit platforms.
>>
>> ActiveState Python contains a static library with PIC files.  There is
>> no obvious way to detect that, which is why we don't support it
>> directly.  You can sort it out yourself by building with
>>
>>     make shared_libpython=yes
>
> OK, thanks - I'll try that.
>
> I assume you'll fix the configure script so it actually errors out if
> plpython cannot be built, but is explicitly requested?

BTW - it's always worked fine for us on 64 bit machines with the past
few major releases of both PG and Python - are you saying that's pure
chance? For example:

postgres=# CREATE LANGUAGE plpython3u;
CREATE LANGUAGE
postgres=# CREATE FUNCTION pyversion() RETURNS text AS
postgres-# $$
postgres$# import sys
postgres$# return sys.version
postgres$# $$ LANGUAGE 'plpython3u';
CREATE FUNCTION
postgres=# SELECT pyversion();               pyversion
-----------------------------------------3.2.2 (default, Sep  8 2011, 12:20:18) +[GCC 4.0.2 20051125 (Red Hat
4.0.2-8)]
(1 row)

postgres=# SELECT version();                                                   version

---------------------------------------------------------------------------------------------------------------PostgreSQL
9.2.4on x86_64-unknown-linux-gnu, compiled by gcc (GCC)
 
4.1.2 20080704 (Red Hat 4.1.2-52), 64-bit
(1 row)

postgres=#

(that's with fresh installations of ActivePython 3.2.2.3 and EDB's
PostgreSQL 9.2.4 package, on CentOS 6).

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



pgsql-hackers by date:

Previous
From: Fabien COELHO
Date:
Subject: Re: Add regression tests for COLLATE
Next
From: Kyotaro HORIGUCHI
Date:
Subject: Re: Fast promotion failure