1 To: vim_dev@googlegroups.com
4 From: Bram Moolenaar <Bram@moolenaar.net>
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
11 Problem: Python doesn't work properly when installed in another directory
13 Solution: Figure out home directory in configure and use Py_SetPythonHome()
14 at runtime. (Roland Puntaier)
15 Files: src/configure.in, src/auto/configure, src/if_python.c,
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
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}"
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}"
30 PYTHON_SRC="if_python.c"
31 dnl For Mac OSX 10.2 config.o is included in the Python library.
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}\\\""
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}\\\""
40 PYTHON_SRC="if_python.c"
41 dnl For Mac OSX 10.2 config.o is included in the Python library.
44 if test "${vi_cv_var_python_version}" = "1.4"; then
45 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
47 ! PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
49 dnl On FreeBSD linking with "-pthread" is required to use threads.
50 dnl _THREAD_SAFE must be used for compiling then.
52 if test "${vi_cv_var_python_version}" = "1.4"; then
53 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
55 ! PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
57 dnl On FreeBSD linking with "-pthread" is required to use threads.
58 dnl _THREAD_SAFE must be used for compiling then.
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}"
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}"
68 PYTHON3_SRC="if_python3.c"
69 dnl For Mac OSX 10.2 config.o is included in the Python library.
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}\\\""
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}\\\""
78 PYTHON3_SRC="if_python3.c"
79 dnl For Mac OSX 10.2 config.o is included in the Python library.
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)
87 ! CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
89 LDFLAGS="$LDFLAGS -ldl"
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)
97 ! CFLAGS="$CFLAGS $PYTHON_CFLAGS"
99 LDFLAGS="$LDFLAGS -ldl"
103 * Only the first pyhton version used will be switched on.
106 ! int no_rtl_global_needed_for(char *python_instsoname)
109 void* pylib = dlopen(python_instsoname, RTLD_LAZY);
112 void (*init)(void) = dlsym(pylib, "Py_Initialize");
113 int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
114 void (*final)(void) = dlsym(pylib, "Py_Finalize");
116 needed = (*simple)("import termios") == -1;
119 * Only the first pyhton version used will be switched on.
122 ! int no_rtl_global_needed_for(char *python_instsoname, char *prefix)
125 void* pylib = dlopen(python_instsoname, RTLD_LAZY);
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");
134 needed = (*simple)("import termios") == -1;
138 int main(int argc, char** argv)
141 ! if (no_rtl_global_needed_for("libpython2.7.so.1.0") && no_rtl_global_needed_for("libpython3.1.so.1.0"))
145 [AC_MSG_RESULT(yes);AC_DEFINE(PY_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
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}\\\""
152 int main(int argc, char** argv)
155 ! if (no_rtl_global_needed_for("${python_INSTSONAME}", "${vi_cv_path_python_pfx}"))
159 [AC_MSG_RESULT(yes);AC_DEFINE(PY_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
162 LDFLAGS=$ldflags_save
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"
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.
178 + int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix)
181 + void* pylib = dlopen(python_instsoname, RTLD_LAZY);
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");
190 + needed = (*simple)("import termios") == -1;
197 + int main(int argc, char** argv)
199 + int not_needed = 0;
200 + if (no_rtl_global_needed_for("${python3_INSTSONAME}", L"${vi_cv_path_python3_pfx}"))
202 + return !not_needed;
204 + [AC_MSG_RESULT(yes);AC_DEFINE(PY3_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
206 + CFLAGS=$cflags_save
207 + LDFLAGS=$ldflags_save
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
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}"
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}"
223 PYTHON_SRC="if_python.c"
224 if test "x$MACOSX" = "xyes"; then
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}\\\""
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}\\\""
233 PYTHON_SRC="if_python.c"
234 if test "x$MACOSX" = "xyes"; then
237 if test "${vi_cv_var_python_version}" = "1.4"; then
238 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
240 ! PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
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; }
245 if test "${vi_cv_var_python_version}" = "1.4"; then
246 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
248 ! PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
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; }
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}"
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}"
261 PYTHON3_SRC="if_python3.c"
262 if test "x$MACOSX" = "xyes"; then
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}\\\""
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}\\\""
271 PYTHON3_SRC="if_python3.c"
272 if test "x$MACOSX" = "xyes"; then
276 $as_echo "#define DYNAMIC_PYTHON3 1" >>confdefs.h
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; }
281 ! CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
282 ldflags_save=$LDFLAGS
283 LDFLAGS="$LDFLAGS -ldl"
284 if test "$cross_compiling" = yes; then :
287 $as_echo "#define DYNAMIC_PYTHON3 1" >>confdefs.h
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; }
292 ! CFLAGS="$CFLAGS $PYTHON_CFLAGS"
293 ldflags_save=$LDFLAGS
294 LDFLAGS="$LDFLAGS -ldl"
295 if test "$cross_compiling" = yes; then :
298 * Only the first pyhton version used will be switched on.
301 ! int no_rtl_global_needed_for(char *python_instsoname)
304 void* pylib = dlopen(python_instsoname, RTLD_LAZY);
307 void (*init)(void) = dlsym(pylib, "Py_Initialize");
308 int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
309 void (*final)(void) = dlsym(pylib, "Py_Finalize");
311 needed = (*simple)("import termios") == -1;
314 * Only the first pyhton version used will be switched on.
317 ! int no_rtl_global_needed_for(char *python_instsoname, char *prefix)
320 void* pylib = dlopen(python_instsoname, RTLD_LAZY);
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");
329 needed = (*simple)("import termios") == -1;
333 int main(int argc, char** argv)
336 ! if (no_rtl_global_needed_for("libpython2.7.so.1.0") && no_rtl_global_needed_for("libpython3.1.so.1.0"))
341 int main(int argc, char** argv)
344 ! if (no_rtl_global_needed_for("${python_INSTSONAME}", "${vi_cv_path_python_pfx}"))
351 conftest.$ac_objext conftest.beam conftest.$ac_ext
356 LDFLAGS=$ldflags_save
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; }
370 + cat confdefs.h - <<_ACEOF >conftest.$ac_ext
371 + /* end confdefs.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.
381 + int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix)
384 + void* pylib = dlopen(python_instsoname, RTLD_LAZY);
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");
393 + needed = (*simple)("import termios") == -1;
400 + int main(int argc, char** argv)
402 + int not_needed = 0;
403 + if (no_rtl_global_needed_for("${python3_INSTSONAME}", L"${vi_cv_path_python3_pfx}"))
405 + return !not_needed;
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
413 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
414 + $as_echo "no" >&6; }
416 + rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
417 + conftest.$ac_objext conftest.beam conftest.$ac_ext
421 + CFLAGS=$cflags_save
422 + LDFLAGS=$ldflags_save
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
432 # define FARPROC void*
433 # define HINSTANCE void*
434 ! # ifdef PY_NO_RTLD_GLOBAL
435 # define load_dll(n) dlopen((n), RTLD_LAZY)
437 # define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
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)
445 # define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
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
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);
470 {"Py_InitModule4", (PYTHON_PROC*)&dll_Py_InitModule4},
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},
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. */
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. */
500 + Py_SetPythonHome(PYTHON_HOME);
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
511 # define FARPROC void*
512 # define HINSTANCE void*
513 ! # ifdef PY_NO_RTLD_GLOBAL
514 # define load_dll(n) dlopen((n), RTLD_LAZY)
516 # define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
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)
524 # define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
528 # define PyType_Ready py3_PyType_Ready
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
538 * Pointers for dynamic link
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);
548 } py3_funcname_table[] =
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},
558 void *ucs_from_string, *ucs_from_string_and_size;
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. */
566 void *ucs_from_string, *ucs_from_string_and_size;
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. */
579 + #ifdef PYTHON3_HOME
580 + Py_SetPythonHome(PYTHON3_HOME);
583 /* initialise threads */
584 PyEval_InitThreads();
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
591 { /* Add new patch number below this line */
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
603 HISTORIAN'S WIFE: They're the ones, I'm sure.
604 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
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 ///