Re: PATCH: Compiling PostgreSQL using ActiveState Python 3.2

From: Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Peter Eisentraut <peter_e(at)gmx(dot)net>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: PATCH: Compiling PostgreSQL using ActiveState Python 3.2
Date: 2011-08-18 07:27:51
Message-ID: CAG7mmowuof++ZxaRuDmya1zgrY7NwH-AnQfTNHUuXH1diUeyKg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Aug 18, 2011 at 1:25 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> Peter Eisentraut <peter_e(at)gmx(dot)net> writes:
> > On ons, 2011-08-17 at 13:20 -0400, Tom Lane wrote:
> >> It's not immediately apparent to me why we should think that
> >> get_python_lib is less trustworthy than LIBPL; but if someone
> >> can make that case, I don't have any objection to this part of
> >> the patch.
>
> > The issue, at least for me, is that the file isn't necessarily called
> > 'config' anymore. I have
> > /usr/lib/python3.2/config-3.2mu
>
One of the reason, I say that - we do have hard-coded values for the config
directory.
Hence, I used the LIBPL.

>
> Ah, I see.
>
> > LIBPL exists at least as far back as Python 2.2, so its use should be
> > safe.
>
> Yeah, that part of the patch seems sane then.
>
> > Yes, because get_config_vars('LDVERSION') doesn't exist in that version.
> > In theory, it would return '2.7', so everything would fit back together,
> > but LDVERSION doesn't exist before 3.2.
>
Oops - sorry...
I did not know about it..

>
> Could we have the code use 'LDVERSION' if it gets a nonempty result,
> and otherwise fall back to the current scheme? But I guess first we
> need some details as to why the current scheme isn't sufficient.
>
Please find the attached patch as you suggested.

Reason:
- As per my findings, ActiveState Python 3.2 does not provide shared
libraries along with it.
(Though - I am not sure about the earlier version of ActiveState Python)
We can confirm the same using the following command:
${PYTHON} -c "import distutils.sysconfig,string;
print(distutils.sysconfig.get_config_vars('Py_ENABLE_SHARED'))"
Which returns in this case '0'.

And, getting values for the 'python_ldlibrary' and 'python_so' are
'libpython3.2m.a' and '.cpython-32m.so' respectively.
So, the condition - *x"${python_ldlibrary}" != x"${ldlibrary}"* is always
failing, and switching it back to link the old way.

--

Thanks & Regards,

Ashesh Vashi
EnterpriseDB INDIA: Enterprise PostgreSQL Company<http://www.enterprisedb.com/>

*http://www.linkedin.com/in/asheshvashi*<http://www.linkedin.com/in/asheshvashi>

>
> regards, tom lane
>

Attachment Content-Type Size
pg9.1beta3_python_v2.patch application/octet-stream 1.5 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Marcin Mańk 2011-08-18 07:57:52 Re: FATAL: ReleaseSavepoint: unexpected state STARTED
Previous Message Magnus Hagander 2011-08-18 06:39:39 Re: Displaying accumulated autovacuum cost