patch 7.4.1190
Problem: On OSX the default flag for dlopen() is different.
Solution: Add RTLD_LOCAL in the configure check. (sv99, closes #604)
diff --git a/src/configure.in b/src/configure.in
index e9ffa7b..ffa0b2d 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -1219,7 +1219,7 @@
vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
fi
])
- AC_CACHE_VAL(vi_cv_dll_name_python,
+ AC_CACHE_CHECK(Python's dll name,vi_cv_dll_name_python,
[
if test "X$python_DLLLIBRARY" != "X"; then
vi_cv_dll_name_python="$python_DLLLIBRARY"
@@ -1428,7 +1428,7 @@
vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
])
- AC_CACHE_VAL(vi_cv_dll_name_python3,
+ AC_CACHE_CHECK(Python3's dll name,vi_cv_dll_name_python3,
[
if test "X$python3_DLLLIBRARY" != "X"; then
vi_cv_dll_name_python3="$python3_DLLLIBRARY"
@@ -1540,7 +1540,7 @@
int no_rtl_global_needed_for(char *python_instsoname, char *prefix)
{
int needed = 0;
- void* pylib = dlopen(python_instsoname, RTLD_LAZY);
+ void* pylib = dlopen(python_instsoname, RTLD_LAZY|RTLD_LOCAL);
if (pylib != 0)
{
void (*pfx)(char *home) = dlsym(pylib, "Py_SetPythonHome");
@@ -1586,7 +1586,7 @@
int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix)
{
int needed = 0;
- void* pylib = dlopen(python_instsoname, RTLD_LAZY);
+ void* pylib = dlopen(python_instsoname, RTLD_LAZY|RTLD_LOCAL);
if (pylib != 0)
{
void (*pfx)(wchar_t *home) = dlsym(pylib, "Py_SetPythonHome");