Overview
Comment: | Updated to use dladdr() to find ourselves if possible |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
eb6f15ad72953de5a8610de49dde60f2 |
User & Date: | rkeene on 2010-09-26 04:50:05 |
Other Links: | manifest | tags |
Context
2010-09-26
| ||
04:50 | Updated to not remove EXTRA_OBJS when `clean' target called check-in: a4e97ccf7b user: rkeene tags: trunk | |
04:50 | Updated to use dladdr() to find ourselves if possible check-in: eb6f15ad72 user: rkeene tags: trunk | |
04:50 | Updated to load boot.tcl in new interpreters, issue with previous workaround and fixing creating new interpreters check-in: d5bcf0ec06 user: rkeene tags: trunk | |
Changes
Modified kitsh/buildsrc/kitsh-0.0/Makefile.in from [c486d97051] to [60aec6b7f1].
1 2 | CC = @CC@ RC = @RC@ | | | | 1 2 3 4 5 6 7 8 9 10 11 | CC = @CC@ RC = @RC@ CFLAGS = @CFLAGS@ @DEFS@ -DTK_LOCAL_APPINIT=TclKit_AppInit CPPFLAGS = @CPPFLAGS@ @DEFS@ -DTK_LOCAL_APPINIT=TclKit_AppInit LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ ARCHS = @ARCHS@ OBJS = kitInit.o main.o pwb.o rechan.o zlib.o winMain.o @EXTRA_OBJS@ all: kit |
︙ | ︙ |
Modified kitsh/buildsrc/kitsh-0.0/configure.ac from [442f0e7737] to [a3f511626a].
︙ | ︙ | |||
37 38 39 40 41 42 43 44 | LIBS="${ARCHS} ${LIBS}" dnl Determine if we have "Tcl_SetStartupScript" (8.6.x) or "TclSetStartupScriptPath" (8.4.x) AC_CHECK_FUNCS(Tcl_SetStartupScript TclSetStartupScriptPath) dnl Check for the ability to get the current system encoding AC_CHECK_FUNCS(Tcl_GetEncodingNameFromEnvironment Tcl_SetSystemEncoding) LIBS="${SAVE_LIBS}" dnl Check for optional system calls | > > > > | | 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | LIBS="${ARCHS} ${LIBS}" dnl Determine if we have "Tcl_SetStartupScript" (8.6.x) or "TclSetStartupScriptPath" (8.4.x) AC_CHECK_FUNCS(Tcl_SetStartupScript TclSetStartupScriptPath) dnl Check for the ability to get the current system encoding AC_CHECK_FUNCS(Tcl_GetEncodingNameFromEnvironment Tcl_SetSystemEncoding) LIBS="${SAVE_LIBS}" dnl Check for optional headers AC_HEADER_STDC AC_CHECK_HEADERS(unistd.h dlfcn.h) dnl Check for optional system calls AC_CHECK_FUNCS(readlink dladdr) dnl Find zlib AC_ARG_WITH(zlib, AC_HELP_STRING([--with-zlib], [directory containing zlib]), [ CPPFLAGS="${CPPFLAGS} -I${with_zlib}/include -I${with_zlib}" CFLAGS="${CFLAGS} -I${with_zlib}/include -I${with_zlib}" LDFLAGS="${LDFLAGS} -L${with_zlib}/lib -L${with_zlib}" ]) |
︙ | ︙ |
Modified kitsh/buildsrc/kitsh-0.0/kitInit.c from [0506bc15b0] to [bab566bd8a].
︙ | ︙ | |||
28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #endif /* _WIN32 */ #ifndef MB_TASKMODAL # define MB_TASKMODAL 0 #endif /* MB_TASKMODAL */ #include "tclInt.h" #if defined(HAVE_TCL_GETENCODINGNAMEFROMENVIRONMENT) && defined(HAVE_TCL_SETSYSTEMENCODING) # define TCLKIT_CAN_SET_ENCODING 1 #endif #if 10 * TCL_MAJOR_VERSION + TCL_MINOR_VERSION < 85 # define TCLKIT_REQUIRE_TCLEXECUTABLENAME 1 #endif | > > > > > > > > > > > | 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | #endif /* _WIN32 */ #ifndef MB_TASKMODAL # define MB_TASKMODAL 0 #endif /* MB_TASKMODAL */ #include "tclInt.h" #ifdef HAVE_UNISTD_H # include <unistd.h> #endif #ifdef HAVE_DLADDR # ifdef HAVE_DLFCN_H # include <dlfcn.h> # else # undef HAVE_DLADDR # endif #endif #if defined(HAVE_TCL_GETENCODINGNAMEFROMENVIRONMENT) && defined(HAVE_TCL_SETSYSTEMENCODING) # define TCLKIT_CAN_SET_ENCODING 1 #endif #if 10 * TCL_MAJOR_VERSION + TCL_MINOR_VERSION < 85 # define TCLKIT_REQUIRE_TCLEXECUTABLENAME 1 #endif |
︙ | ︙ | |||
191 192 193 194 195 196 197 | return; } static void FindAndSetExecName(Tcl_Interp *interp) { int len = 0; Tcl_Obj *execNameObj; Tcl_Obj *lobjv[1]; | | > > > > > > > > > > > > > > > | | 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 | return; } static void FindAndSetExecName(Tcl_Interp *interp) { int len = 0; Tcl_Obj *execNameObj; Tcl_Obj *lobjv[1]; #ifdef HAVE_READLINK ssize_t readlink_ret; char procpath[4096]; char exe_buf[4096]; int snprintf_ret; #endif /* HAVE_READLINK */ #ifdef HAVE_DLADDR Dl_info syminfo; int dladdr_ret; #endif /* HAVE_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)) { readlink_ret = readlink(procpath, exe_buf, sizeof(exe_buf) - 1); if (readlink_ret > 0 && readlink_ret < (sizeof(exe_buf) - 1)) { exe_buf[readlink_ret] = '\0'; SetExecName(interp, exe_buf); return; } } } #endif /* HAVE_READLINK */ #ifdef HAVE_DLADDR if (Tcl_GetNameOfExecutable() == NULL) { dladdr_ret = dladdr(&SetExecName, &syminfo); if (dladdr_ret != 0) { SetExecName(interp, syminfo.dli_fname); } } #endif /* HAVE_DLADDR */ if (Tcl_GetNameOfExecutable() == NULL) { lobjv[0] = Tcl_GetVar2Ex(interp, "argv0", NULL, TCL_GLOBAL_ONLY); execNameObj = Tcl_FSJoinToPath(Tcl_FSGetCwd(interp), 1, lobjv); SetExecName(interp, Tcl_GetStringFromObj(execNameObj, &len)); |
︙ | ︙ |