@@ -34,16 +34,14 @@ #include "tclInt.h" #ifdef HAVE_UNISTD_H # include #endif -#ifdef HAVE_DLADDR -# ifdef HAVE_DLFCN_H -# include -# else -# undef HAVE_DLADDR -# endif + +/* For dladdr() and Dl_info */ +#ifdef HAVE_DLFCN_H +# include #endif #if defined(HAVE_TCL_GETENCODINGNAMEFROMENVIRONMENT) && defined(HAVE_TCL_SETSYSTEMENCODING) # define TCLKIT_CAN_SET_ENCODING 1 #endif @@ -210,14 +208,14 @@ ssize_t readlink_ret; char procpath[4096]; char exe_buf[4096]; int snprintf_ret; #endif /* HAVE_READLINK */ -#ifdef HAVE_DLADDR +#ifdef HAVE_ACCEPTABLE_DLADDR Dl_info syminfo; int dladdr_ret; -#endif /* HAVE_DLADDR */ +#endif /*aHAVE_ACCEPTABLE_DLADDR */ #ifdef HAVE_READLINK if (Tcl_GetNameOfExecutable() == NULL) { snprintf_ret = snprintf(procpath, sizeof(procpath), "/proc/%lu/exe", (unsigned long) getpid()); if (snprintf_ret < sizeof(procpath)) { @@ -232,18 +230,18 @@ } } } #endif /* HAVE_READLINK */ -#ifdef HAVE_DLADDR +#ifdef HAVE_ACCEPTABLE_DLADDR if (Tcl_GetNameOfExecutable() == NULL) { dladdr_ret = dladdr(&SetExecName, &syminfo); if (dladdr_ret != 0) { SetExecName(interp, syminfo.dli_fname); } } -#endif /* HAVE_DLADDR */ +#endif /* HAVE_ACCEPTABLE_DLADDR */ if (Tcl_GetNameOfExecutable() == NULL) { lobjv[0] = Tcl_GetVar2Ex(interp, "argv0", NULL, TCL_GLOBAL_ONLY); execNameObj = Tcl_FSJoinToPath(Tcl_FSGetCwd(interp), 1, lobjv);