Re: improving PL/Python builds on OS X

From: Dave Page <dpage(at)pgadmin(dot)org>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: improving PL/Python builds on OS X
Date: 2013-05-09 07:25:27
Message-ID: CA+OCxow8oT8CRZ88OgkpkvL+ph9_F7jqAhM+V-LOMexfWuYn-w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, May 9, 2013 at 8:09 AM, Dave Page <dpage(at)pgadmin(dot)org> wrote:
> On Thu, May 9, 2013 at 2:26 AM, Peter Eisentraut <peter_e(at)gmx(dot)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.4 on 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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Kyotaro HORIGUCHI 2013-05-09 08:06:26 Re: Fast promotion failure
Previous Message Fabien COELHO 2013-05-09 07:19:39 Re: Add regression tests for COLLATE