[RFA] ignore PYTHONHOME environment variable.

Joel Brobecker
2010-11-23T01:03:32Z

This is something I hinted during one of our discussion at this year's
GCC Summit.

If PYTHONHOME is defined in the environment, then Py_SetProgramName
does not use the program-name location to find the python library.
Instead, it follows the PYTHONHOME, which can cause problems if
it points to a different Python installation, particularly if that
installation is from a different version of Python.

gdb/ChangeLog:

* python/python.c (_initialize_python): Call Py_SetPythonHome
if GDB was configured with --with-python.

Tested on x86_64-linux. Ok to commit?

---
gdb/python/python.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/gdb/python/python.c b/gdb/python/python.c
index d009be9..4f6f679 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -955,6 +955,12 @@ Enables or disables printing of Python stack traces."),
Py_Initialize ();
PyEval_InitThreads ();

+#ifdef WITH_PYTHON_PATH
+ /* We override any value that the PYTHONHOME might have, as we want
+ to make sure that we use the Python library that comes with GDB. */
+ Py_SetPythonHome (ldirname (python_libdir));
+#endif
+
gdb_module = Py_InitModule ("gdb", GdbMethods);

/* The casts to (char*) are for python 2.4. */
--
1.7.1