8.0.0beta3 plpython link troubles
PostgreSQL 8.0.0beta3 (CVS HEAD)
Python 2.3.4
Solaris 9
Executing a plpythonu function that used to work now causes the
following error (wrapped):
ERROR: could not load library "/usr/local/pgsql/lib/plpython.so":
ld.so.1: /usr/local/pgsql/bin/postgres: fatal: relocation error:
file /usr/local/pgsql/lib/plpython.so:
symbol PyCObject_Type: referenced symbol not found
I don't use plpython much so I'm not sure when this broke, but I
see that the Python detection code has recently changed.
The problem appears to be that plpython.so isn't linked against
libpython2.3.so; I fixed the problem by editing src/Makefile.global
and changing python_libspec from this:
python_libspec = -lresolv -lsocket -lnsl -lrt -ldl -lpthread -lm
to this:
python_libspec = -lresolv -lsocket -lnsl -lrt -ldl -lpthread -lm -lpython2.3
Should Python's distutils be reporting something that it isn't?
The Python installation is about as stock as it could be: built
from source with "./configure --enable-shared", so there's no
vendor-introduced funny business going on.
--
Michael Fuhr
http://www.fuhr.org/~mfuhr/
Michael Fuhr <mike@fuhr.org> writes:
PostgreSQL 8.0.0beta3 (CVS HEAD)
Python 2.3.4
Solaris 9
Executing a plpythonu function that used to work now causes the
following error (wrapped):
It's broken on Fedora Core as well. I wonder how well tested that
distutils change was...
It might be a python-version-specific thing, as I see that the python
version on this box is also exactly 2.3.4.
regards, tom lane
Tom Lane <tgl@sss.pgh.pa.us> writes:
Michael Fuhr <mike@fuhr.org> writes:
PostgreSQL 8.0.0beta3 (CVS HEAD)
Python 2.3.4
Solaris 9
Executing a plpythonu function that used to work now causes the
following error (wrapped):
It's broken on Fedora Core as well. I wonder how well tested that
distutils change was...
No, it wasn't the distutils change, it was the change to make plpython
build on Windows. This has evidently broken it on every other platform.
regards, tom lane
PostgreSQL 8.0.0beta3 (CVS HEAD)
Python 2.3.4
Solaris 9Executing a plpythonu function that used to work now causes the
following error (wrapped):It's broken on Fedora Core as well. I wonder how well tested that
distutils change was...No, it wasn't the distutils change, it was the change to make plpython
build on Windows. This has evidently broken it on every other
platform.
Hmm. For some reason, it *did* pass the tests on my Slackware machine. I
can't see how now, must be a missing distclean operation at some point
during testing. Sorry about that!
Clearly, pyhon_libspec needs the -lpython$python_version back. Just not
on win32 (because we don't have libpython2.3 there, we only ahve
python23.dll). but perhaps that could/should be filtered out in the
Makefile and not in python.m4.
I don't have a good working autoconf, so it'd be nice if someone who
does could check out a working fix. Dont' want to try without testing,
that might leave things even wrose than before. I'll try to get back to
a working autoconf install, but until then...
(BTW, it wasn't the win32 build part. It was the
complete-move-to-distutils part of the patch that was committed at the
same time)
//Magnus
Import Notes
Resolved by subject fallback
"Magnus Hagander" <mha@sollentuna.net> writes:
Clearly, pyhon_libspec needs the -lpython$python_version back. Just not
on win32 (because we don't have libpython2.3 there, we only ahve
python23.dll). but perhaps that could/should be filtered out in the
Makefile and not in python.m4.
I don't have a good working autoconf, so it'd be nice if someone who
does could check out a working fix.
Send me a sketch of a diff and I'll be glad to test.
regards, tom lane
On Sun, Oct 10, 2004 at 12:35:11PM -0400, Tom Lane wrote:
"Magnus Hagander" <mha@sollentuna.net> writes:
Clearly, pyhon_libspec needs the -lpython$python_version back. Just not
on win32 (because we don't have libpython2.3 there, we only ahve
python23.dll). but perhaps that could/should be filtered out in the
Makefile and not in python.m4.I don't have a good working autoconf, so it'd be nice if someone who
does could check out a working fix.Send me a sketch of a diff and I'll be glad to test.
I see that some changes have been made. plpython now builds correctly
on my platform:
Solaris 9
gcc 3.4.2
gmake 3.80
Python 2.3.4
Thanks.
--
Michael Fuhr
http://www.fuhr.org/~mfuhr/