diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2021-06-25 14:03:55 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2021-06-25 14:03:55 (GMT) |
commit | ce4804bf2c760215562c9ca1c5f76589611050cb (patch) | |
tree | f7eae2bd3b367bc716ce851d7e988a3b3b8e14dc /generic/tclZipfs.c | |
parent | 7951ebbd2e2809e4c48986c8bc50b39eb0b2b75a (diff) | |
parent | a6691785d8bdaa339449e8df532a8b11a8690909 (diff) | |
download | tcl-ce4804bf2c760215562c9ca1c5f76589611050cb.zip tcl-ce4804bf2c760215562c9ca1c5f76589611050cb.tar.gz tcl-ce4804bf2c760215562c9ca1c5f76589611050cb.tar.bz2 |
Merge 8.7
Diffstat (limited to 'generic/tclZipfs.c')
-rw-r--r-- | generic/tclZipfs.c | 10 |
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); |