]> git.pld-linux.org Git - packages/vim.git/blame - 7.3.062
- new
[packages/vim.git] / 7.3.062
CommitLineData
5634d1d6
ER
1To: vim_dev@googlegroups.com
2Subject: Patch 7.3.062
3Fcc: outbox
4From: Bram Moolenaar <Bram@moolenaar.net>
5Mime-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8------------
9
10Patch 7.3.062
11Problem: Python doesn't work properly when installed in another directory
12 than expected.
13Solution: Figure out home directory in configure and use Py_SetPythonHome()
14 at runtime. (Roland Puntaier)
15Files: src/configure.in, src/auto/configure, src/if_python.c,
16 src/if_python3.c
17
18
19*** ../vim-7.3.061/src/configure.in 2010-11-03 22:32:18.000000000 +0100
20--- src/configure.in 2010-11-16 17:47:36.000000000 +0100
21***************
22*** 891,899 ****
23
24 PYTHON_LIBS="${vi_cv_path_python_plibs}"
25 if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
26! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
27 else
28! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version}"
29 fi
30 PYTHON_SRC="if_python.c"
31 dnl For Mac OSX 10.2 config.o is included in the Python library.
32--- 891,899 ----
33
34 PYTHON_LIBS="${vi_cv_path_python_plibs}"
35 if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
36! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
37 else
38! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
39 fi
40 PYTHON_SRC="if_python.c"
41 dnl For Mac OSX 10.2 config.o is included in the Python library.
42***************
43*** 905,911 ****
44 if test "${vi_cv_var_python_version}" = "1.4"; then
45 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
46 fi
47! PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
48
49 dnl On FreeBSD linking with "-pthread" is required to use threads.
50 dnl _THREAD_SAFE must be used for compiling then.
51--- 905,911 ----
52 if test "${vi_cv_var_python_version}" = "1.4"; then
53 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
54 fi
55! PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
56
57 dnl On FreeBSD linking with "-pthread" is required to use threads.
58 dnl _THREAD_SAFE must be used for compiling then.
59***************
60*** 1063,1071 ****
61
62 PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
63 if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
64! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}"
65 else
66! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}"
67 fi
68 PYTHON3_SRC="if_python3.c"
69 dnl For Mac OSX 10.2 config.o is included in the Python library.
70--- 1063,1071 ----
71
72 PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
73 if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
74! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
75 else
76! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
77 fi
78 PYTHON3_SRC="if_python3.c"
79 dnl For Mac OSX 10.2 config.o is included in the Python library.
80***************
81*** 1143,1151 ****
82 if test "$python_ok" = yes && test "$python3_ok" = yes; then
83 AC_DEFINE(DYNAMIC_PYTHON)
84 AC_DEFINE(DYNAMIC_PYTHON3)
85! AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL)
86 cflags_save=$CFLAGS
87! CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
88 ldflags_save=$LDFLAGS
89 LDFLAGS="$LDFLAGS -ldl"
90 AC_RUN_IFELSE([
91--- 1143,1151 ----
92 if test "$python_ok" = yes && test "$python3_ok" = yes; then
93 AC_DEFINE(DYNAMIC_PYTHON)
94 AC_DEFINE(DYNAMIC_PYTHON3)
95! AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL for Python)
96 cflags_save=$CFLAGS
97! CFLAGS="$CFLAGS $PYTHON_CFLAGS"
98 ldflags_save=$LDFLAGS
99 LDFLAGS="$LDFLAGS -ldl"
100 AC_RUN_IFELSE([
101***************
102*** 1156,1170 ****
103 * Only the first pyhton version used will be switched on.
104 */
105
106! int no_rtl_global_needed_for(char *python_instsoname)
107 {
108 int needed = 0;
109 void* pylib = dlopen(python_instsoname, RTLD_LAZY);
110 if (pylib != 0)
111 {
112 void (*init)(void) = dlsym(pylib, "Py_Initialize");
113 int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
114 void (*final)(void) = dlsym(pylib, "Py_Finalize");
115 (*init)();
116 needed = (*simple)("import termios") == -1;
117 (*final)();
118--- 1156,1172 ----
119 * Only the first pyhton version used will be switched on.
120 */
121
122! int no_rtl_global_needed_for(char *python_instsoname, char *prefix)
123 {
124 int needed = 0;
125 void* pylib = dlopen(python_instsoname, RTLD_LAZY);
126 if (pylib != 0)
127 {
128+ void (*pfx)(char *home) = dlsym(pylib, "Py_SetPythonHome");
129 void (*init)(void) = dlsym(pylib, "Py_Initialize");
130 int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
131 void (*final)(void) = dlsym(pylib, "Py_Finalize");
132+ (*pfx)(prefix);
133 (*init)();
134 needed = (*simple)("import termios") == -1;
135 (*final)();
136***************
137*** 1176,1188 ****
138 int main(int argc, char** argv)
139 {
140 int not_needed = 0;
141! if (no_rtl_global_needed_for("libpython2.7.so.1.0") && no_rtl_global_needed_for("libpython3.1.so.1.0"))
142 not_needed = 1;
143 return !not_needed;
144 }],
145 [AC_MSG_RESULT(yes);AC_DEFINE(PY_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
146 CFLAGS=$cflags_save
147 LDFLAGS=$ldflags_save
148 PYTHON_SRC="if_python.c"
149 PYTHON_OBJ="objects/if_python.o"
150 PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\""
151--- 1178,1237 ----
152 int main(int argc, char** argv)
153 {
154 int not_needed = 0;
155! if (no_rtl_global_needed_for("${python_INSTSONAME}", "${vi_cv_path_python_pfx}"))
156 not_needed = 1;
157 return !not_needed;
158 }],
159 [AC_MSG_RESULT(yes);AC_DEFINE(PY_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
160+
161 CFLAGS=$cflags_save
162 LDFLAGS=$ldflags_save
163+
164+ AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL for Python3)
165+ cflags_save=$CFLAGS
166+ CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
167+ ldflags_save=$LDFLAGS
168+ LDFLAGS="$LDFLAGS -ldl"
169+ AC_RUN_IFELSE([
170+ #include <dlfcn.h>
171+ #include <wchar.h>
172+ /* If this program fails, then RTLD_GLOBAL is needed.
173+ * RTLD_GLOBAL will be used and then it is not possible to
174+ * have both python versions enabled in the same vim instance.
175+ * Only the first pyhton version used will be switched on.
176+ */
177+
178+ int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix)
179+ {
180+ int needed = 0;
181+ void* pylib = dlopen(python_instsoname, RTLD_LAZY);
182+ if (pylib != 0)
183+ {
184+ void (*pfx)(wchar_t *home) = dlsym(pylib, "Py_SetPythonHome");
185+ void (*init)(void) = dlsym(pylib, "Py_Initialize");
186+ int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
187+ void (*final)(void) = dlsym(pylib, "Py_Finalize");
188+ (*pfx)(prefix);
189+ (*init)();
190+ needed = (*simple)("import termios") == -1;
191+ (*final)();
192+ dlclose(pylib);
193+ }
194+ return !needed;
195+ }
196+
197+ int main(int argc, char** argv)
198+ {
199+ int not_needed = 0;
200+ if (no_rtl_global_needed_for("${python3_INSTSONAME}", L"${vi_cv_path_python3_pfx}"))
201+ not_needed = 1;
202+ return !not_needed;
203+ }],
204+ [AC_MSG_RESULT(yes);AC_DEFINE(PY3_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
205+
206+ CFLAGS=$cflags_save
207+ LDFLAGS=$ldflags_save
208+
209 PYTHON_SRC="if_python.c"
210 PYTHON_OBJ="objects/if_python.o"
211 PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\""
212*** ../vim-7.3.061/src/auto/configure 2010-11-03 22:32:18.000000000 +0100
213--- src/auto/configure 2010-11-16 17:47:42.000000000 +0100
214***************
215*** 5326,5334 ****
216
217 PYTHON_LIBS="${vi_cv_path_python_plibs}"
218 if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
219! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
220 else
221! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version}"
222 fi
223 PYTHON_SRC="if_python.c"
224 if test "x$MACOSX" = "xyes"; then
225--- 5326,5334 ----
226
227 PYTHON_LIBS="${vi_cv_path_python_plibs}"
228 if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
229! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
230 else
231! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
232 fi
233 PYTHON_SRC="if_python.c"
234 if test "x$MACOSX" = "xyes"; then
235***************
236*** 5339,5345 ****
237 if test "${vi_cv_var_python_version}" = "1.4"; then
238 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
239 fi
240! PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
241
242 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -pthread should be used" >&5
243 $as_echo_n "checking if -pthread should be used... " >&6; }
244--- 5339,5345 ----
245 if test "${vi_cv_var_python_version}" = "1.4"; then
246 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
247 fi
248! PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
249
250 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -pthread should be used" >&5
251 $as_echo_n "checking if -pthread should be used... " >&6; }
252***************
253*** 5601,5609 ****
254
255 PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
256 if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
257! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}"
258 else
259! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}"
260 fi
261 PYTHON3_SRC="if_python3.c"
262 if test "x$MACOSX" = "xyes"; then
263--- 5601,5609 ----
264
265 PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
266 if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
267! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
268 else
269! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
270 fi
271 PYTHON3_SRC="if_python3.c"
272 if test "x$MACOSX" = "xyes"; then
273***************
274*** 5708,5717 ****
275
276 $as_echo "#define DYNAMIC_PYTHON3 1" >>confdefs.h
277
278! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL" >&5
279! $as_echo_n "checking whether we can do without RTLD_GLOBAL... " >&6; }
280 cflags_save=$CFLAGS
281! CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
282 ldflags_save=$LDFLAGS
283 LDFLAGS="$LDFLAGS -ldl"
284 if test "$cross_compiling" = yes; then :
285--- 5708,5717 ----
286
287 $as_echo "#define DYNAMIC_PYTHON3 1" >>confdefs.h
288
289! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL for Python" >&5
290! $as_echo_n "checking whether we can do without RTLD_GLOBAL for Python... " >&6; }
291 cflags_save=$CFLAGS
292! CFLAGS="$CFLAGS $PYTHON_CFLAGS"
293 ldflags_save=$LDFLAGS
294 LDFLAGS="$LDFLAGS -ldl"
295 if test "$cross_compiling" = yes; then :
296***************
297*** 5730,5744 ****
298 * Only the first pyhton version used will be switched on.
299 */
300
301! int no_rtl_global_needed_for(char *python_instsoname)
302 {
303 int needed = 0;
304 void* pylib = dlopen(python_instsoname, RTLD_LAZY);
305 if (pylib != 0)
306 {
307 void (*init)(void) = dlsym(pylib, "Py_Initialize");
308 int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
309 void (*final)(void) = dlsym(pylib, "Py_Finalize");
310 (*init)();
311 needed = (*simple)("import termios") == -1;
312 (*final)();
313--- 5730,5746 ----
314 * Only the first pyhton version used will be switched on.
315 */
316
317! int no_rtl_global_needed_for(char *python_instsoname, char *prefix)
318 {
319 int needed = 0;
320 void* pylib = dlopen(python_instsoname, RTLD_LAZY);
321 if (pylib != 0)
322 {
323+ void (*pfx)(char *home) = dlsym(pylib, "Py_SetPythonHome");
324 void (*init)(void) = dlsym(pylib, "Py_Initialize");
325 int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
326 void (*final)(void) = dlsym(pylib, "Py_Finalize");
327+ (*pfx)(prefix);
328 (*init)();
329 needed = (*simple)("import termios") == -1;
330 (*final)();
331***************
332*** 5750,5756 ****
333 int main(int argc, char** argv)
334 {
335 int not_needed = 0;
336! if (no_rtl_global_needed_for("libpython2.7.so.1.0") && no_rtl_global_needed_for("libpython3.1.so.1.0"))
337 not_needed = 1;
338 return !not_needed;
339 }
340--- 5752,5758 ----
341 int main(int argc, char** argv)
342 {
343 int not_needed = 0;
344! if (no_rtl_global_needed_for("${python_INSTSONAME}", "${vi_cv_path_python_pfx}"))
345 not_needed = 1;
346 return !not_needed;
347 }
348***************
349*** 5767,5774 ****
350--- 5769,5844 ----
351 conftest.$ac_objext conftest.beam conftest.$ac_ext
352 fi
353
354+
355 CFLAGS=$cflags_save
356 LDFLAGS=$ldflags_save
357+
358+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL for Python3" >&5
359+ $as_echo_n "checking whether we can do without RTLD_GLOBAL for Python3... " >&6; }
360+ cflags_save=$CFLAGS
361+ CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
362+ ldflags_save=$LDFLAGS
363+ LDFLAGS="$LDFLAGS -ldl"
364+ if test "$cross_compiling" = yes; then :
365+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
366+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
367+ as_fn_error "cannot run test program while cross compiling
368+ See \`config.log' for more details." "$LINENO" 5; }
369+ else
370+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
371+ /* end confdefs.h. */
372+
373+ #include <dlfcn.h>
374+ #include <wchar.h>
375+ /* If this program fails, then RTLD_GLOBAL is needed.
376+ * RTLD_GLOBAL will be used and then it is not possible to
377+ * have both python versions enabled in the same vim instance.
378+ * Only the first pyhton version used will be switched on.
379+ */
380+
381+ int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix)
382+ {
383+ int needed = 0;
384+ void* pylib = dlopen(python_instsoname, RTLD_LAZY);
385+ if (pylib != 0)
386+ {
387+ void (*pfx)(wchar_t *home) = dlsym(pylib, "Py_SetPythonHome");
388+ void (*init)(void) = dlsym(pylib, "Py_Initialize");
389+ int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
390+ void (*final)(void) = dlsym(pylib, "Py_Finalize");
391+ (*pfx)(prefix);
392+ (*init)();
393+ needed = (*simple)("import termios") == -1;
394+ (*final)();
395+ dlclose(pylib);
396+ }
397+ return !needed;
398+ }
399+
400+ int main(int argc, char** argv)
401+ {
402+ int not_needed = 0;
403+ if (no_rtl_global_needed_for("${python3_INSTSONAME}", L"${vi_cv_path_python3_pfx}"))
404+ not_needed = 1;
405+ return !not_needed;
406+ }
407+ _ACEOF
408+ if ac_fn_c_try_run "$LINENO"; then :
409+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
410+ $as_echo "yes" >&6; };$as_echo "#define PY3_NO_RTLD_GLOBAL 1" >>confdefs.h
411+
412+ else
413+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
414+ $as_echo "no" >&6; }
415+ fi
416+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
417+ conftest.$ac_objext conftest.beam conftest.$ac_ext
418+ fi
419+
420+
421+ CFLAGS=$cflags_save
422+ LDFLAGS=$ldflags_save
423+
424 PYTHON_SRC="if_python.c"
425 PYTHON_OBJ="objects/if_python.o"
426 PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\""
427*** ../vim-7.3.061/src/if_python.c 2010-10-23 14:02:48.000000000 +0200
428--- src/if_python.c 2010-11-16 17:07:00.000000000 +0100
429***************
430*** 102,108 ****
431 # include <dlfcn.h>
432 # define FARPROC void*
433 # define HINSTANCE void*
434! # ifdef PY_NO_RTLD_GLOBAL
435 # define load_dll(n) dlopen((n), RTLD_LAZY)
436 # else
437 # define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
438--- 102,108 ----
439 # include <dlfcn.h>
440 # define FARPROC void*
441 # define HINSTANCE void*
442! # if defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)
443 # define load_dll(n) dlopen((n), RTLD_LAZY)
444 # else
445 # define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
446***************
447*** 168,173 ****
448--- 168,174 ----
449 # define Py_BuildValue dll_Py_BuildValue
450 # define Py_FindMethod dll_Py_FindMethod
451 # define Py_InitModule4 dll_Py_InitModule4
452+ # define Py_SetPythonHome dll_Py_SetPythonHome
453 # define Py_Initialize dll_Py_Initialize
454 # define Py_Finalize dll_Py_Finalize
455 # define Py_IsInitialized dll_Py_IsInitialized
456***************
457*** 226,231 ****
458--- 227,233 ----
459 static PyObject*(*dll_Py_BuildValue)(char *, ...);
460 static PyObject*(*dll_Py_FindMethod)(struct PyMethodDef[], PyObject *, char *);
461 static PyObject*(*dll_Py_InitModule4)(char *, struct PyMethodDef *, char *, PyObject *, int);
462+ static void(*dll_Py_SetPythonHome)(char *home);
463 static void(*dll_Py_Initialize)(void);
464 static void(*dll_Py_Finalize)(void);
465 static int(*dll_Py_IsInitialized)(void);
466***************
467*** 310,315 ****
468--- 312,318 ----
469 # else
470 {"Py_InitModule4", (PYTHON_PROC*)&dll_Py_InitModule4},
471 # endif
472+ {"Py_SetPythonHome", (PYTHON_PROC*)&dll_Py_SetPythonHome},
473 {"Py_Initialize", (PYTHON_PROC*)&dll_Py_Initialize},
474 {"Py_Finalize", (PYTHON_PROC*)&dll_Py_Finalize},
475 {"Py_IsInitialized", (PYTHON_PROC*)&dll_Py_IsInitialized},
476***************
477*** 349,355 ****
478 {
479 int i;
480
481! #if !defined(PY_NO_RTLD_GLOBAL) && defined(UNIX) && defined(FEAT_PYTHON3)
482 /* Can't have Python and Python3 loaded at the same time.
483 * It cause a crash, because RTLD_GLOBAL is needed for
484 * standard C extension libraries of one or both python versions. */
485--- 352,358 ----
486 {
487 int i;
488
489! #if !(defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)) && defined(UNIX) && defined(FEAT_PYTHON3)
490 /* Can't have Python and Python3 loaded at the same time.
491 * It cause a crash, because RTLD_GLOBAL is needed for
492 * standard C extension libraries of one or both python versions. */
493***************
494*** 543,548 ****
495--- 546,555 ----
496 }
497 #endif
498
499+ #ifdef PYTHON_HOME
500+ Py_SetPythonHome(PYTHON_HOME);
501+ #endif
502+
503 init_structs();
504
505 #if !defined(MACOS) || defined(MACOS_X_UNIX)
506*** ../vim-7.3.061/src/if_python3.c 2010-10-23 14:02:48.000000000 +0200
507--- src/if_python3.c 2010-11-16 17:07:26.000000000 +0100
508***************
509*** 80,86 ****
510 # include <dlfcn.h>
511 # define FARPROC void*
512 # define HINSTANCE void*
513! # ifdef PY_NO_RTLD_GLOBAL
514 # define load_dll(n) dlopen((n), RTLD_LAZY)
515 # else
516 # define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
517--- 80,86 ----
518 # include <dlfcn.h>
519 # define FARPROC void*
520 # define HINSTANCE void*
521! # if defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)
522 # define load_dll(n) dlopen((n), RTLD_LAZY)
523 # else
524 # define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
525***************
526*** 132,137 ****
527--- 132,138 ----
528 # define PyType_Ready py3_PyType_Ready
529 #undef Py_BuildValue
530 # define Py_BuildValue py3_Py_BuildValue
531+ # define Py_SetPythonHome py3_Py_SetPythonHome
532 # define Py_Initialize py3_Py_Initialize
533 # define Py_Finalize py3_Py_Finalize
534 # define Py_IsInitialized py3_Py_IsInitialized
535***************
536*** 170,175 ****
537--- 171,177 ----
538 * Pointers for dynamic link
539 */
540 static int (*py3_PySys_SetArgv)(int, wchar_t **);
541+ static void (*py3_Py_SetPythonHome)(wchar_t *home);
542 static void (*py3_Py_Initialize)(void);
543 static PyObject* (*py3_PyList_New)(Py_ssize_t size);
544 static PyGILState_STATE (*py3_PyGILState_Ensure)(void);
545***************
546*** 254,259 ****
547--- 256,262 ----
548 } py3_funcname_table[] =
549 {
550 {"PySys_SetArgv", (PYTHON_PROC*)&py3_PySys_SetArgv},
551+ {"Py_SetPythonHome", (PYTHON_PROC*)&py3_Py_SetPythonHome},
552 {"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize},
553 {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
554 {"PyList_New", (PYTHON_PROC*)&py3_PyList_New},
555***************
556*** 336,342 ****
557 int i;
558 void *ucs_from_string, *ucs_from_string_and_size;
559
560! # if !defined(PY_NO_RTLD_GLOBAL) && defined(UNIX) && defined(FEAT_PYTHON)
561 /* Can't have Python and Python3 loaded at the same time.
562 * It cause a crash, because RTLD_GLOBAL is needed for
563 * standard C extension libraries of one or both python versions. */
564--- 339,345 ----
565 int i;
566 void *ucs_from_string, *ucs_from_string_and_size;
567
568! # if !(defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)) && defined(UNIX) && defined(FEAT_PYTHON)
569 /* Can't have Python and Python3 loaded at the same time.
570 * It cause a crash, because RTLD_GLOBAL is needed for
571 * standard C extension libraries of one or both python versions. */
572***************
573*** 539,544 ****
574--- 542,552 ----
575
576 init_structs();
577
578+
579+ #ifdef PYTHON3_HOME
580+ Py_SetPythonHome(PYTHON3_HOME);
581+ #endif
582+
583 /* initialise threads */
584 PyEval_InitThreads();
585
586*** ../vim-7.3.061/src/version.c 2010-11-16 16:25:46.000000000 +0100
587--- src/version.c 2010-11-16 17:12:40.000000000 +0100
588***************
589*** 716,717 ****
590--- 716,719 ----
591 { /* Add new patch number below this line */
592+ /**/
593+ 62,
594 /**/
595
596--
597ARTHUR: CHARGE!
598 [The mighty ARMY charges. Thundering noise of feet. Clatter of coconuts.
599 Shouts etc. Suddenly there is a wail of a siren and a couple of police
600 cars roar round in front of the charging ARMY and the POLICE leap out and
601 stop them. TWO POLICEMAN and the HISTORIAN'S WIFE. Black Marias skid up
602 behind them.]
603HISTORIAN'S WIFE: They're the ones, I'm sure.
604 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
605
606 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
607/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
608\\\ an exciting new programming language -- http://www.Zimbu.org ///
609 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
This page took 0.108547 seconds and 4 git commands to generate.