summaryrefslogtreecommitdiffstats
path: root/unix/tclLoadDyld.c
diff options
context:
space:
mode:
authordgp@users.sourceforge.net <dgp>2011-05-10 16:05:48 (GMT)
committerdgp@users.sourceforge.net <dgp>2011-05-10 16:05:48 (GMT)
commit218ceaadd5f73fb8cda18ef6658390dba3540dc9 (patch)
tree1ca2feda250662282a8e77080fef123d9256b839 /unix/tclLoadDyld.c
parent955b5f01d8001935ee2215cce6575d27d184dc14 (diff)
downloadtcl-218ceaadd5f73fb8cda18ef6658390dba3540dc9.zip
tcl-218ceaadd5f73fb8cda18ef6658390dba3540dc9.tar.gz
tcl-218ceaadd5f73fb8cda18ef6658390dba3540dc9.tar.bz2
Completed patch with mucho comments. Merge 8.5.
Diffstat (limited to 'unix/tclLoadDyld.c')
-rw-r--r--unix/tclLoadDyld.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/unix/tclLoadDyld.c b/unix/tclLoadDyld.c
index 08d651c..0a36215 100644
--- a/unix/tclLoadDyld.c
+++ b/unix/tclLoadDyld.c
@@ -196,7 +196,10 @@ TclpDlopen(
if (tclMacOSXDarwinRelease >= 8)
#endif
{
- dlHandle = dlopen(nativePath, RTLD_NOW | RTLD_GLOBAL);
+ /*
+ * Use (RTLD_NOW|RTLD_LOCAL) always, see [Bug #3216070]
+ */
+ dlHandle = dlopen(nativePath, RTLD_NOW | RTLD_LOCAL);
if (!dlHandle) {
/*
* Let the OS loader examine the binary search path for whatever
@@ -206,7 +209,10 @@ TclpDlopen(
fileName = Tcl_GetString(pathPtr);
nativeFileName = Tcl_UtfToExternalDString(NULL, fileName, -1, &ds);
- dlHandle = dlopen(nativeFileName, RTLD_NOW | RTLD_GLOBAL);
+ /*
+ * Use (RTLD_NOW|RTLD_LOCAL) always, see [Bug #3216070]
+ */
+ dlHandle = dlopen(nativeFileName, RTLD_NOW | RTLD_LOCAL);
}
if (dlHandle) {
TclLoadDbgMsg("dlopen() successful");