This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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 ();
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]