This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[RFC] Help python find its files
- From: dje at google dot com (Doug Evans)
- To: gdb-patches at sourceware dot org
- Date: Mon, 8 Feb 2010 11:29:42 -0800 (PST)
- Subject: [RFC] Help python find its files
Hi.
We had problems with python not being able to find its files.
This may be specific to installations where gdb and python
are installed in different places.
2010-02-08 Doug Evans <dje@google.com>
* configure.ac (--with-python): Define WITH_PYTHON_PATH if
--with-python arg is a path.
* config.in: Regenerated.
* configure: Regenerated.
* python/python.c (_initialize_python): If configured
--with-python=/path, pass a fake argv[0] to Py_SetProgramName so
python can find its files.
Index: configure.ac
===================================================================
RCS file: /cvs/src/src/gdb/configure.ac,v
retrieving revision 1.114
diff -u -p -r1.114 configure.ac
--- configure.ac 25 Jan 2010 13:22:02 -0000 1.114
+++ configure.ac 8 Feb 2010 19:08:11 -0000
@@ -652,6 +657,13 @@ else
AC_DEFINE(HAVE_LIBPYTHON2_4, 1, [Define if Python 2.4 is being used.])
fi
fi
+ if test ${have_libpython} = yes; then
+ case "${with_python}" in
+ /*)
+ AC_DEFINE_UNQUOTED(WITH_PYTHON_PATH, "${with_python}", [Define if --with-python contains a path.])
+ ;;
+ esac
+ fi
if test ${have_libpython} = no; then
case "${with_python}" in
yes)
Index: python/python.c
===================================================================
RCS file: /cvs/src/src/gdb/python/python.c,v
retrieving revision 1.25
diff -u -p -r1.25 python.c
--- python/python.c 18 Jan 2010 10:50:44 -0000 1.25
+++ python/python.c 8 Feb 2010 19:08:11 -0000
@@ -631,6 +631,12 @@ Enables or disables auto-loading of Pyth
&show_python_list);
#ifdef HAVE_PYTHON
+#ifdef WITH_PYTHON_PATH
+ /* Work around problem where python gets confused about where it is,
+ and then can't find its libraries, etc.
+ Lie and pretend argv[0] is in WITH_PYTHON_PATH. */
+ Py_SetProgramName(WITH_PYTHON_PATH "/bin/python");
+#endif
Py_Initialize ();
PyEval_InitThreads ();