aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/python.c
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>2010-05-27 03:40:45 +0000
committerDoug Evans <dje@google.com>2010-05-27 03:40:45 +0000
commit0c4a40633c767da2c7659a3f460cf1e8e3dd3a5c (patch)
tree5e04abc4cc89fd32c6532d5d7bdd654af37b4c45 /gdb/python/python.c
parentec685c5ecafd5bf8876d332a0eb17f206c8d733a (diff)
downloadgdb-0c4a40633c767da2c7659a3f460cf1e8e3dd3a5c.zip
gdb-0c4a40633c767da2c7659a3f460cf1e8e3dd3a5c.tar.gz
gdb-0c4a40633c767da2c7659a3f460cf1e8e3dd3a5c.tar.bz2
Allow python to find its files if moved from original location.
* acinclude.m4 (GDB_AC_DEFINE_RELOCATABLE): New function. (GDB_AC_WITH_DIR): Call it. * configure.ac: Define WITH_PYTHON_PATH if we can find the python installation directory. * config.in: Regenerate. * configure: Regenerate. * defs.h (python_libdir): Declare. * main.c (python_libdir): Define. (captured_main): Initialize python_libdir. * python/python.c (_initialize_python): #ifdef WITH_PYTHON_PATH, call Py_SetProgramName to make sure python can find its libraries and modules.
Diffstat (limited to 'gdb/python/python.c')
-rw-r--r--gdb/python/python.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gdb/python/python.c b/gdb/python/python.c
index 288c701..0b7b7ba 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -647,6 +647,17 @@ Enables or disables printing of Python stack traces."),
&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.
+ NOTE: Python assumes the following layout:
+ /foo/bin/python
+ /foo/lib/pythonX.Y/...
+ This must be done before calling Py_Initialize. */
+ Py_SetProgramName (concat (ldirname (python_libdir), SLASH_STRING, "bin",
+ SLASH_STRING, "python", NULL));
+#endif
+
Py_Initialize ();
PyEval_InitThreads ();