aboutsummaryrefslogtreecommitdiff
path: root/util/crossgcc/patches/gdb-7.4.1_pythonhome.patch
diff options
context:
space:
mode:
Diffstat (limited to 'util/crossgcc/patches/gdb-7.4.1_pythonhome.patch')
-rw-r--r--util/crossgcc/patches/gdb-7.4.1_pythonhome.patch19
1 files changed, 19 insertions, 0 deletions
diff --git a/util/crossgcc/patches/gdb-7.4.1_pythonhome.patch b/util/crossgcc/patches/gdb-7.4.1_pythonhome.patch
new file mode 100644
index 0000000000..9bab2e022c
--- /dev/null
+++ b/util/crossgcc/patches/gdb-7.4.1_pythonhome.patch
@@ -0,0 +1,19 @@
+diff -ur gdb-7.4.1.orig/gdb/python/python.c gdb-7.4.1/gdb/python/python.c
+--- gdb-7.4.1.orig/gdb/python/python.c 2012-01-15 02:04:05.000000000 +0800
++++ gdb-7.4.1/gdb/python/python.c 2012-08-21 15:11:32.000000000 +0800
+@@ -1273,6 +1273,15 @@
+ SLASH_STRING, "python", NULL));
+ #endif
+
++ char readlinkbuffer[BUFSIZ];
++ int readlinks = readlink("/proc/self/exe", readlinkbuffer, BUFSIZ - 1);
++ readlinkbuffer[readlinks] = 0;
++ char *executeablepath = dirname(readlinkbuffer);
++ char *pythonhome = malloc(strlen(executeablepath) + strlen("/../") + 2);
++ strcpy(pythonhome, executeablepath);
++ strcat(pythonhome, "/../");
++ setenv("PYTHONHOME", pythonhome, 1);
++
+ Py_Initialize ();
+ PyEval_InitThreads ();
+