summaryrefslogtreecommitdiffstats
path: root/generic/tclZipfs.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2021-06-25 14:03:55 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2021-06-25 14:03:55 (GMT)
commitce4804bf2c760215562c9ca1c5f76589611050cb (patch)
treef7eae2bd3b367bc716ce851d7e988a3b3b8e14dc /generic/tclZipfs.c
parent7951ebbd2e2809e4c48986c8bc50b39eb0b2b75a (diff)
parenta6691785d8bdaa339449e8df532a8b11a8690909 (diff)
downloadtcl-ce4804bf2c760215562c9ca1c5f76589611050cb.zip
tcl-ce4804bf2c760215562c9ca1c5f76589611050cb.tar.gz
tcl-ce4804bf2c760215562c9ca1c5f76589611050cb.tar.bz2
Merge 8.7
Diffstat (limited to 'generic/tclZipfs.c')
-rw-r--r--generic/tclZipfs.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/generic/tclZipfs.c b/generic/tclZipfs.c
index dbb4cd9..b0392b1 100644
--- a/generic/tclZipfs.c
+++ b/generic/tclZipfs.c
@@ -32,6 +32,10 @@
#define TBLS 1
#endif
+#if !defined(_WIN32) && !defined(NO_DLFCN_H)
+#include <dlfcn.h>
+#endif
+
#ifdef HAVE_ZLIB
#include "zlib.h"
#include "crypt.h"
@@ -3907,6 +3911,12 @@ TclZipfs_TclLibrary(void)
if (ZipfsAppHookFindTclInit(dllName) == TCL_OK) {
return Tcl_NewStringObj(zipfs_literal_tcl_library, -1);
}
+#elif !defined(NO_DLFCN_H)
+ Dl_info dlinfo;
+ if (dladdr(TclZipfs_TclLibrary, &dlinfo) && (dlinfo.dli_fname != NULL)
+ && (ZipfsAppHookFindTclInit(dlinfo.dli_fname) == TCL_OK)) {
+ return Tcl_NewStringObj(zipfs_literal_tcl_library, -1);
+ }
#else
if (ZipfsAppHookFindTclInit(CFG_RUNTIME_LIBDIR "/" CFG_RUNTIME_DLLFILE) == TCL_OK) {
return Tcl_NewStringObj(zipfs_literal_tcl_library, -1);