Date: Tue, 16 Feb 1999 16:25:58 +0100 From: mkes@ra.rockwell.com To: Freebsd-questions@FreeBSD.ORG Subject: problem with MySQL module for python under 3.0 Message-ID: <C125671A.0052DA3B.00@raclesmtp01.cle.ra.rockwell.com>
next in thread | raw e-mail | index | archive | help
Hi all
I have a box with 3.0 release. I have installed MySQL 3.21.33 and python
1.5.1 both from packages.
I have downloaded MySQLmodule-1.4 which is a source (just one .c file) for
python module allowing to access MySQL database.
The README says:
---------------
To build a dynamically loadable module without access to the python
source tree, use (Trond Eivind Glomsr\xf8d):
gcc -shared -I/usr/include/python1.5 -I/usr/local/include/mysql \
MySQLmodule.c -lmysqlclient -L/usr/lib/python1.5/config -lpython1.5 \
-o MySQLmodule.so
and move the resulting MySQLmodule.so file into the PYTHONPATH. Again,
substitute the proper locations of your include and library files.
----------------
Applied to my situation the command line was:
gcc -shared -I/usr/local/include/python1.5 -I/usr/local/include/mysql
\
MySQLmodule.c -L/usr/local/lib/mysql -lmysqlclient
-L/usr/local/lib/python1.5/config -lpython1.5 \
-o MySQLmodule.so
that is how I compiled the module and moved the resulting MySQLmodule.so to
appropriate place.
When I run python and try to use it the python crashes:
ferda:/usr/home/mira> python
Python 1.5.1 (#2, Oct 12 1998, 15:11:45) [GCC 2.7.2.1] on freebsd3
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> import MySQL
Fatal Python error: PyThreadState_Get: no current thread
Abort (core dumped)
ferda:/usr/home/mira>
If I do that under FreeBSD 2.6 release it works. So my guess is there
something wrong with the compiler options
a.out vs ELF, or .... I found some 3.0 & MySQL related notes saying:
------------------------------------
You have to configure with:
--with-named-thread-libs=-lc_r
The pthreads library for FreeBSD doesn't contain the sigwait function and
there is some bugs in it. To fix this, get the
`FreeBSD-3.0-libc_r-1.0.diff' file and
apply this in the `/usr/src/lib/libc_r/uthread' directory. Follow after
this the instructions that can be found with man pthread about how to
recompile the
libc_r library.
You can test if you have a 'modern' libpthread.a with:
> nm /usr/lib/libc_r.a | grep sigwait.
If the above doesn't find sigwait you have to use the above patch and
recompile libc_r.
----------------------------------
My experience with compiler options, libraries to link with etc. is not
good enough to fix this.
Can anybody give me a hint what's wrong?
Thanks a lot
Mira
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?C125671A.0052DA3B.00>
