Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Bug Tcl 8.0.4] Severe problems on 64-bit machines

2 views
Skip to first unread message

jgoe...@complete.org

unread,
Nov 30, 1998, 3:00:00 AM11/30/98
to
Tcl 8.0.4 Bug: Generated by Scriptics' bug entry form at

http://www.scriptics.com/support/bugForm.html

Responses to this post are encouraged.

------

Submitted by: John Goerzen
OperatingSystem: Other
OperatingSystemVersion: Linux glibc on DEC Alpha, 2.0.35, 2.0.7; Linux erwin 2.0.35 #1 Wed Nov 25 12:16:15 CST 1998 alpha unknown

Extensions: n/a
CustomShell: no modifications
Synopsis: Severe problems on 64-bit machines

ReproducibleScript:
This occurs while compiling.

ObservedBehavior:
The problem is that Tcl uses ints to store pointers. On platforms such as Alpha Linux, a pointer is 64 bits wide while an int is 32 bits wide. This occurs at MANY places. I've placed a build dump up at; please let me know when you've got it, so I can remove it.

This problem results in complete inability of sockets to operate (first thing I noticed), and can generally lead to coredumps and other undesirable effects.

A sample occurs at line 1316 of tclUnixChan.c. This line reads:

int fd = (int) handle;

handle is of type ClientData, which is a pointer type.

Here, you're trying to store a 64-bit value in a 32-bit variable. BAD!

DesiredBehavior:
Pointers should always remain pointers and should NEVER be cast to integers. If this is absolutely necessary, integers of the same size as pointers must be used.

Patch:
Here is the relevant output from the build process. Note each warning is another problem.

cd unix && ./configure --prefix=/usr && make CFLAGS="-O0 -D_REENTRANT"
creating cache ./config.cache
checking for ranlib... ranlib
checking for getcwd... yes
checking for opendir... yes
checking for strstr... yes
checking for strtol... yes
checking for tmpnam... yes
checking for waitpid... yes
checking for strerror... yes
checking for getwd... yes
checking for wait3... yes
checking for uname... yes
checking for sin... no
checking for main in -lieee... yes
checking dirent.h... yes
checking how to run the C preprocessor... cc -E
checking for errno.h... yes
checking for float.h... yes
checking for values.h... yes
checking for limits.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for sys/wait.h... yes
checking for dlfcn.h... yes
checking for unistd.h... yes
checking termios vs. termio vs. sgtty... termios
checking fd_set and sys/select... yes
checking for sys/time.h... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for tm_zone in struct tm... yes
checking tm_tzadj in struct tm... no
checking tm_gmtoff in struct tm... yes
checking long timezone variable... yes
checking for st_blksize in struct stat... yes
checking proper strstr implementation... yes
checking for strtoul... yes
checking for strtod... yes
checking for strtod... (cached) yes
checking for Solaris strtod bug... ok
checking for ANSI C header files... yes
checking for mode_t... yes
checking for pid_t... yes
checking for size_t... yes
checking for uid_t in sys/types.h... yes
checking for opendir... (cached) yes
checking union wait... yes
checking matherr support... yes
checking return type of signal handlers... void
checking for vfork... yes
checking vfork/signal bug... ok
checking for strncasecmp... yes
checking for BSDgettimeofday... no
checking for gettimeofday... yes
checking for gettimeofday declaration... present
checking for main in -linet... no
checking for net/errno.h... no
checking whether char is unsigned... no
checking signed char declarations... yes
checking for connect... yes
checking for gethostbyname... yes
checking system version (for dynamic loading)... Linux-2.0.35
checking for dlopen in -ldl... yes
checking for sys/ioctl.h... yes
checking for sys/filio.h... no
checking FIONBIO vs. O_NONBLOCK for nonblocking I/O... O_NONBLOCK
updating cache ./config.cache
creating ./config.status
creating Makefile
creating tclConfig.sh
make[1]: Entering directory `/home/jgoerzen/tcl/tcl8.0-8.0.4/unix'
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/panic.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/regexp.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclAsync.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclBasic.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclBinary.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclCkalloc.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclClock.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclCmdAH.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclCmdIL.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclCmdMZ.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclCompExpr.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclCompile.c
/../generic/tclCompile.c: In function `TclPrintByteCodeObj':
/../generic/tclCompile.c:491: warning: cast from pointer to integer of different size
/../generic/tclCompile.c:492: warning: cast from pointer to integer of different size
/../generic/tclCompile.c:519: warning: cast from pointer to integer of different size
/../generic/tclCompile.c: In function `TclObjIndexForString':
/../generic/tclCompile.c:7014: warning: cast from pointer to integer of different size
/../generic/tclCompile.c:7055: warning: cast to pointer from integer of different size
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclDate.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclEnv.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclEvent.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclExecute.c
/../generic/tclExecute.c: In function `PrintByteCodeInfo':
/../generic/tclExecute.c:3015: warning: cast from pointer to integer of different size
/../generic/tclExecute.c:3016: warning: cast from pointer to integer of different size
/../generic/tclExecute.c:3037: warning: cast from pointer to integer of different size
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclFCmd.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclFileName.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclGet.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclHash.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclHistory.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclIndexObj.c
/../generic/tclIndexObj.c: In function `Tcl_GetIndexFromObj':
/../generic/tclIndexObj.c:89: warning: cast from pointer to integer of different size
/../generic/tclIndexObj.c:131: warning: cast to pointer from integer of different size
/../generic/tclIndexObj.c: In function `Tcl_WrongNumArgs':
/../generic/tclIndexObj.c:293: warning: cast from pointer to integer of different size
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclInterp.c
/../generic/tclInterp.c: In function `AliasCreationHelper':
/../generic/tclInterp.c:985: warning: cast to pointer from integer of different size
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclIO.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclIOCmd.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclIOSock.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclIOUtil.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclLink.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclListObj.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclLoad.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclMain.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclNamesp.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclNotify.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclObj.c
/../generic/tclObj.c: In function `TclAllocateFreeObjects':
/../generic/tclObj.c:561: warning: cast from pointer to integer of different size
/../generic/tclObj.c:561: warning: cast from pointer to integer of different size
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclParse.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclPipe.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclPkg.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclPosixStr.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclPreserve.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclProc.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclStringObj.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclTimer.c
/../generic/tclTimer.c: In function `Tcl_CreateTimerHandler':
/../generic/tclTimer.c:239: warning: cast to pointer from integer of different size
/../generic/tclTimer.c: In function `TimerHandlerEventProc':
/../generic/tclTimer.c:509: warning: cast from pointer to integer of different size
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclUtil.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclVar.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclResolve.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclMtherr.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclUnixChan.c
/tclUnixChan.c: In function `FileGetHandleProc':
/tclUnixChan.c:533: warning: cast to pointer from integer of different size
/tclUnixChan.c: In function `Tcl_MakeFileChannel':
/tclUnixChan.c:1316: warning: cast from pointer to integer of different size
/tclUnixChan.c: In function `TcpGetHandleProc':
/tclUnixChan.c:1816: warning: cast to pointer from integer of different size
/tclUnixChan.c: In function `Tcl_MakeTcpClientChannel':
/tclUnixChan.c:2125: warning: cast from pointer to integer of different size
/tclUnixChan.c: In function `TclGetDefaultStdChannel':
/tclUnixChan.c:2322: warning: cast to pointer from integer of different size
/tclUnixChan.c: In function `Tcl_GetOpenFile':
/tclUnixChan.c:2401: warning: cast from pointer to integer of different size
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclUnixEvent.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclUnixFCmd.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclUnixFile.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclUnixPipe.c
/tclUnixPipe.c: In function `TclpMakeFile':
/tclUnixPipe.c:107: warning: cast from pointer to integer of different size
/tclUnixPipe.c:107: warning: cast to pointer from integer of different size
/tclUnixPipe.c: In function `TclpOpenFile':
/tclUnixPipe.c:154: warning: cast to pointer from integer of different size
/tclUnixPipe.c: In function `TclpCreateTempFile':
/tclUnixPipe.c:194: warning: cast from pointer to integer of different size
/tclUnixPipe.c: In function `TclpCreatePipe':
/tclUnixPipe.c:243: warning: cast to pointer from integer of different size
/tclUnixPipe.c:244: warning: cast to pointer from integer of different size
/tclUnixPipe.c: In function `TclpCloseFile':
/tclUnixPipe.c:268: warning: cast from pointer to integer of different size
/tclUnixPipe.c: In function `TclpCreateProcess':
/tclUnixPipe.c:361: warning: cast from pointer to integer of different size
/tclUnixPipe.c:406: warning: cast from pointer to integer of different size
/tclUnixPipe.c:418: warning: cast to pointer from integer of different size
/tclUnixPipe.c:428: warning: cast to pointer from integer of different size
/tclUnixPipe.c: In function `SetupStdFile':
/tclUnixPipe.c:566: warning: cast from pointer to integer of different size
/tclUnixPipe.c: In function `TclpCreateCommandChannel':
/tclUnixPipe.c:651: warning: cast from pointer to integer of different size
/tclUnixPipe.c:653: warning: cast from pointer to integer of different size
/tclUnixPipe.c:655: warning: cast from pointer to integer of different size
/tclUnixPipe.c: In function `PipeBlockModeProc':
/tclUnixPipe.c:753: warning: cast from pointer to integer of different size
/tclUnixPipe.c:766: warning: cast from pointer to integer of different size
/tclUnixPipe.c: In function `PipeCloseProc':
/tclUnixPipe.c:872: warning: cast from pointer to integer of different size
/tclUnixPipe.c:872: warning: cast to pointer from integer of different size
/tclUnixPipe.c: In function `PipeInputProc':
/tclUnixPipe.c:929: warning: cast from pointer to integer of different size
/tclUnixPipe.c: In function `PipeOutputProc':
/tclUnixPipe.c:967: warning: cast from pointer to integer of different size
/tclUnixPipe.c: In function `PipeWatchProc':
/tclUnixPipe.c:1005: warning: cast from pointer to integer of different size
/tclUnixPipe.c:1009: warning: cast from pointer to integer of different size
/tclUnixPipe.c:1015: warning: cast from pointer to integer of different size
/tclUnixPipe.c:1019: warning: cast from pointer to integer of different size
/tclUnixPipe.c: In function `PipeGetHandleProc':
/tclUnixPipe.c:1051: warning: cast from pointer to integer of different size
/tclUnixPipe.c:1051: warning: cast to pointer from integer of different size
/tclUnixPipe.c:1055: warning: cast from pointer to integer of different size
/tclUnixPipe.c:1055: warning: cast to pointer from integer of different size
/tclUnixPipe.c: In function `Tcl_WaitPid':
/tclUnixPipe.c:1086: warning: cast from pointer to integer of different size
/tclUnixPipe.c:1090: warning: cast to pointer from integer of different size
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclUnixSock.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclUnixTime.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" -DTCL_LIBRARY=\"/usr/lib/tcl8.0\" -DTCL_PACKAGE_PATH="\"/usr/lib\"" ./tclUnixInit.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclUnixNotfy.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclLoadDl.c
rm -f libtcl8.0.a
ar cr libtcl8.0.a panic.o regexp.o tclAsync.o tclBasic.o tclBinary.o tclCkalloc.o tclClock.o tclCmdAH.o tclCmdIL.o tclCmdMZ.o tclCompExpr.o tclCompile.o tclDate.o tclEnv.o tclEvent.o tclExecute.o tclFCmd.o tclFileName.o tclGet.o tclHash.o tclHistory.o tclIndexObj.o tclInterp.o tclIO.o tclIOCmd.o tclIOSock.o tclIOUtil.o tclLink.o tclListObj.o tclLoad.o tclMain.o tclNamesp.o tclNotify.o tclObj.o tclParse.o tclPipe.o tclPkg.o tclPosixStr.o tclPreserve.o tclProc.o tclStringObj.o tclTimer.o tclUtil.o tclVar.o tclResolve.o tclMtherr.o tclUnixChan.o tclUnixEvent.o tclUnixFCmd.o tclUnixFile.o tclUnixPipe.o tclUnixSock.o tclUnixTime.o tclUnixInit.o tclUnixNotfy.o tclLoadDl.o
ranlib libtcl8.0.a
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclAppInit.c
cc -c -O0 -D_REENTRANT -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" rl-tclMain.c
cc -rdynamic tclAppInit.o rl-tclMain.o /home/jgoerzen/tcl/tcl8.0-8.0.4/unix/libtcl8.0.a -lreadline -lncurses -ldl -lieee -lm -lc -o tclsh
make[1]: Leaving directory `/home/jgoerzen/tcl/tcl8.0-8.0.4/unix'
mv unix/libtcl8.0.a unix/xlibtcl8.0.ax
cd unix && make distclean
make[1]: Entering directory `/home/jgoerzen/tcl/tcl8.0-8.0.4/unix'
rm -f *.a *.o libtcl* core errs *~ \#* TAGS *.E a.out errors tclsh tcltest lib.exp
if test -f dltest/Makefile; then cd dltest; make clean; fi
rm -rf Makefile config.status config.cache config.log tclConfig.sh SCRPtcl.* prototype
if test -f dltest/Makefile; then cd dltest; make distclean; fi
make[1]: Leaving directory `/home/jgoerzen/tcl/tcl8.0-8.0.4/unix'
mv unix/xlibtcl8.0.ax unix/libtcl8.0.a
cd unix && ./configure --prefix=/usr --enable-shared && make CFLAGS="-O0 -D_REENTRANT"
creating cache ./config.cache
checking for ranlib... ranlib
checking for getcwd... yes
checking for opendir... yes
checking for strstr... yes
checking for strtol... yes
checking for tmpnam... yes
checking for waitpid... yes
checking for strerror... yes
checking for getwd... yes
checking for wait3... yes
checking for uname... yes
checking for sin... no
checking for main in -lieee... yes
checking dirent.h... yes
checking how to run the C preprocessor... cc -E
checking for errno.h... yes
checking for float.h... yes
checking for values.h... yes
checking for limits.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for sys/wait.h... yes
checking for dlfcn.h... yes
checking for unistd.h... yes
checking termios vs. termio vs. sgtty... termios
checking fd_set and sys/select... yes
checking for sys/time.h... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for tm_zone in struct tm... yes
checking tm_tzadj in struct tm... no
checking tm_gmtoff in struct tm... yes
checking long timezone variable... yes
checking for st_blksize in struct stat... yes
checking proper strstr implementation... yes
checking for strtoul... yes
checking for strtod... yes
checking for strtod... (cached) yes
checking for Solaris strtod bug... ok
checking for ANSI C header files... yes
checking for mode_t... yes
checking for pid_t... yes
checking for size_t... yes
checking for uid_t in sys/types.h... yes
checking for opendir... (cached) yes
checking union wait... yes
checking matherr support... yes
checking return type of signal handlers... void
checking for vfork... yes
checking vfork/signal bug... ok
checking for strncasecmp... yes
checking for BSDgettimeofday... no
checking for gettimeofday... yes
checking for gettimeofday declaration... present
checking for main in -linet... no
checking for net/errno.h... no
checking whether char is unsigned... no
checking signed char declarations... yes
checking for connect... yes
checking for gethostbyname... yes
checking system version (for dynamic loading)... Linux-2.0.35
checking for dlopen in -ldl... yes
checking for sys/ioctl.h... yes
checking for sys/filio.h... no
checking FIONBIO vs. O_NONBLOCK for nonblocking I/O... O_NONBLOCK
updating cache ./config.cache
creating ./config.status
creating Makefile
creating tclConfig.sh
make[1]: Entering directory `/home/jgoerzen/tcl/tcl8.0-8.0.4/unix'
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/panic.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/regexp.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclAsync.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclBasic.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclBinary.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclCkalloc.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclClock.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclCmdAH.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclCmdIL.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclCmdMZ.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclCompExpr.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclCompile.c
/../generic/tclCompile.c: In function `TclPrintByteCodeObj':
/../generic/tclCompile.c:491: warning: cast from pointer to integer of different size
/../generic/tclCompile.c:492: warning: cast from pointer to integer of different size
/../generic/tclCompile.c:519: warning: cast from pointer to integer of different size
/../generic/tclCompile.c: In function `TclObjIndexForString':
/../generic/tclCompile.c:7014: warning: cast from pointer to integer of different size
/../generic/tclCompile.c:7055: warning: cast to pointer from integer of different size
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclDate.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclEnv.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclEvent.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclExecute.c
/../generic/tclExecute.c: In function `PrintByteCodeInfo':
/../generic/tclExecute.c:3015: warning: cast from pointer to integer of different size
/../generic/tclExecute.c:3016: warning: cast from pointer to integer of different size
/../generic/tclExecute.c:3037: warning: cast from pointer to integer of different size
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclFCmd.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclFileName.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclGet.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclHash.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclHistory.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclIndexObj.c
/../generic/tclIndexObj.c: In function `Tcl_GetIndexFromObj':
/../generic/tclIndexObj.c:89: warning: cast from pointer to integer of different size
/../generic/tclIndexObj.c:131: warning: cast to pointer from integer of different size
/../generic/tclIndexObj.c: In function `Tcl_WrongNumArgs':
/../generic/tclIndexObj.c:293: warning: cast from pointer to integer of different size
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclInterp.c
/../generic/tclInterp.c: In function `AliasCreationHelper':
/../generic/tclInterp.c:985: warning: cast to pointer from integer of different size
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclIO.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclIOCmd.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclIOSock.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclIOUtil.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclLink.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclListObj.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclLoad.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclMain.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclNamesp.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclNotify.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclObj.c
/../generic/tclObj.c: In function `TclAllocateFreeObjects':
/../generic/tclObj.c:561: warning: cast from pointer to integer of different size
/../generic/tclObj.c:561: warning: cast from pointer to integer of different size
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclParse.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclPipe.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclPkg.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclPosixStr.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclPreserve.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclProc.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclStringObj.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclTimer.c
/../generic/tclTimer.c: In function `Tcl_CreateTimerHandler':
/../generic/tclTimer.c:239: warning: cast to pointer from integer of different size
/../generic/tclTimer.c: In function `TimerHandlerEventProc':
/../generic/tclTimer.c:509: warning: cast from pointer to integer of different size
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclUtil.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclVar.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclResolve.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclMtherr.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclUnixChan.c
/tclUnixChan.c: In function `FileGetHandleProc':
/tclUnixChan.c:533: warning: cast to pointer from integer of different size
/tclUnixChan.c: In function `Tcl_MakeFileChannel':
/tclUnixChan.c:1316: warning: cast from pointer to integer of different size
/tclUnixChan.c: In function `TcpGetHandleProc':
/tclUnixChan.c:1816: warning: cast to pointer from integer of different size
/tclUnixChan.c: In function `Tcl_MakeTcpClientChannel':
/tclUnixChan.c:2125: warning: cast from pointer to integer of different size
/tclUnixChan.c: In function `TclGetDefaultStdChannel':
/tclUnixChan.c:2322: warning: cast to pointer from integer of different size
/tclUnixChan.c: In function `Tcl_GetOpenFile':
/tclUnixChan.c:2401: warning: cast from pointer to integer of different size
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclUnixEvent.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclUnixFCmd.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclUnixFile.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclUnixPipe.c
/tclUnixPipe.c: In function `TclpMakeFile':
/tclUnixPipe.c:107: warning: cast from pointer to integer of different size
/tclUnixPipe.c:107: warning: cast to pointer from integer of different size
/tclUnixPipe.c: In function `TclpOpenFile':
/tclUnixPipe.c:154: warning: cast to pointer from integer of different size
/tclUnixPipe.c: In function `TclpCreateTempFile':
/tclUnixPipe.c:194: warning: cast from pointer to integer of different size
/tclUnixPipe.c: In function `TclpCreatePipe':
/tclUnixPipe.c:243: warning: cast to pointer from integer of different size
/tclUnixPipe.c:244: warning: cast to pointer from integer of different size
/tclUnixPipe.c: In function `TclpCloseFile':
/tclUnixPipe.c:268: warning: cast from pointer to integer of different size
/tclUnixPipe.c: In function `TclpCreateProcess':
/tclUnixPipe.c:361: warning: cast from pointer to integer of different size
/tclUnixPipe.c:406: warning: cast from pointer to integer of different size
/tclUnixPipe.c:418: warning: cast to pointer from integer of different size
/tclUnixPipe.c:428: warning: cast to pointer from integer of different size
/tclUnixPipe.c: In function `SetupStdFile':
/tclUnixPipe.c:566: warning: cast from pointer to integer of different size
/tclUnixPipe.c: In function `TclpCreateCommandChannel':
/tclUnixPipe.c:651: warning: cast from pointer to integer of different size
/tclUnixPipe.c:653: warning: cast from pointer to integer of different size
/tclUnixPipe.c:655: warning: cast from pointer to integer of different size
/tclUnixPipe.c: In function `PipeBlockModeProc':
/tclUnixPipe.c:753: warning: cast from pointer to integer of different size
/tclUnixPipe.c:766: warning: cast from pointer to integer of different size
/tclUnixPipe.c: In function `PipeCloseProc':
/tclUnixPipe.c:872: warning: cast from pointer to integer of different size
/tclUnixPipe.c:872: warning: cast to pointer from integer of different size
/tclUnixPipe.c: In function `PipeInputProc':
/tclUnixPipe.c:929: warning: cast from pointer to integer of different size
/tclUnixPipe.c: In function `PipeOutputProc':
/tclUnixPipe.c:967: warning: cast from pointer to integer of different size
/tclUnixPipe.c: In function `PipeWatchProc':
/tclUnixPipe.c:1005: warning: cast from pointer to integer of different size
/tclUnixPipe.c:1009: warning: cast from pointer to integer of different size
/tclUnixPipe.c:1015: warning: cast from pointer to integer of different size
/tclUnixPipe.c:1019: warning: cast from pointer to integer of different size
/tclUnixPipe.c: In function `PipeGetHandleProc':
/tclUnixPipe.c:1051: warning: cast from pointer to integer of different size
/tclUnixPipe.c:1051: warning: cast to pointer from integer of different size
/tclUnixPipe.c:1055: warning: cast from pointer to integer of different size
/tclUnixPipe.c:1055: warning: cast to pointer from integer of different size
/tclUnixPipe.c: In function `Tcl_WaitPid':
/tclUnixPipe.c:1086: warning: cast from pointer to integer of different size
/tclUnixPipe.c:1090: warning: cast to pointer from integer of different size
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclUnixSock.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclUnixTime.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" -DTCL_LIBRARY=\"/usr/lib/tcl8.0\" -DTCL_PACKAGE_PATH="\"/usr/lib\"" ./tclUnixInit.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclUnixNotfy.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclLoadDl.c
rm -f libtcl8.0.so.1
cc -shared -o libtcl8.0.so.1 panic.o regexp.o tclAsync.o tclBasic.o tclBinary.o tclCkalloc.o tclClock.o tclCmdAH.o tclCmdIL.o tclCmdMZ.o tclCompExpr.o tclCompile.o tclDate.o tclEnv.o tclEvent.o tclExecute.o tclFCmd.o tclFileName.o tclGet.o tclHash.o tclHistory.o tclIndexObj.o tclInterp.o tclIO.o tclIOCmd.o tclIOSock.o tclIOUtil.o tclLink.o tclListObj.o tclLoad.o tclMain.o tclNamesp.o tclNotify.o tclObj.o tclParse.o tclPipe.o tclPkg.o tclPosixStr.o tclPreserve.o tclProc.o tclStringObj.o tclTimer.o tclUtil.o tclVar.o tclResolve.o tclMtherr.o tclUnixChan.o tclUnixEvent.o tclUnixFCmd.o tclUnixFile.o tclUnixPipe.o tclUnixSock.o tclUnixTime.o tclUnixInit.o tclUnixNotfy.o tclLoadDl.o -ldl -lieee -lm -lc -Wl,-soname,libtcl8.0.so.1
: libtcl8.0.so.1
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./tclAppInit.c
cc -c -O0 -D_REENTRANT -fPIC -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" rl-tclMain.c
cc -rdynamic tclAppInit.o rl-tclMain.o /home/jgoerzen/tcl/tcl8.0-8.0.4/unix/libtcl8.0.so.1 -lreadline -lncurses -ldl -lieee -lm -lc -o tclsh
make[1]: Leaving directory `/home/jgoerzen/tcl/tcl8.0-8.0.4/unix'

John Goerzen

unread,
Nov 30, 1998, 3:00:00 AM11/30/98
to
A couple of addendums to this.

Fist, the problem is not that all sockets are broken, but that at
times, it reports that "network is unreachable" incorrectly. Also,
the DCC Send operation of Zircon, a pure-Tcl/tk IRC client, is broken --
but only on the 64-bit Alpha. The exact same Tcl code works
*perfectly* on i386. Zircon is at
http://catless.ncl.ac.uk/Programs/Zircon/.

Secondly, the Tcl program was compiled with the Debian diffs, namely:

+++ tcl8.0-8.0.4/unix/tclUnixPipe.c
@@ -181,13 +181,14 @@
* DString that is filled with the name of
* the temp file that was created. */
{
- char fileName[L_tmpnam];
+ char *fileName;
TclFile file;
size_t length = (contents == NULL) ? 0 : strlen(contents);

- tmpnam(fileName);
- file = TclpOpenFile(fileName, O_RDWR|O_CREAT|O_TRUNC);
+ fileName = tempnam(NULL, "tcl");
+ file = TclpOpenFile(fileName, O_RDWR|O_CREAT|O_TRUNC|O_EXCL);
unlink(fileName);
+ free(fileName);

if ((file != NULL) && (length > 0)) {
int fd = GetFd(file);

So this may result in slight line number skew in the relevant file.

jgoe...@complete.org writes:

> Tcl 8.0.4 Bug: Generated by Scriptics' bug entry form at
>
> http://www.scriptics.com/support/bugForm.html
>
> Responses to this post are encouraged.
>
> ------
>
> Submitted by: John Goerzen
> OperatingSystem: Other
> OperatingSystemVersion: Linux glibc on DEC Alpha, 2.0.35, 2.0.7; Linux erwin 2.0.35 #1 Wed Nov 25 12:16:15 CST 1998 alpha unknown
>
> Extensions: n/a
> CustomShell: no modifications
> Synopsis: Severe problems on 64-bit machines
>
> ReproducibleScript:
> This occurs while compiling.
>
> ObservedBehavior:
> The problem is that Tcl uses ints to store pointers. On platforms such as Alpha Linux, a pointer is 64 bits wide while an int is 32 bits wide. This occurs at MANY places. I've placed a build dump up at; please let me know when you've got it, so I can remove it.
>
> This problem results in complete inability of sockets to operate (first thing I noticed), and can generally lead to coredumps and other undesirable effects.
>
> A sample occurs at line 1316 of tclUnixChan.c. This line reads:
>
> int fd = (int) handle;
>
> handle is of type ClientData, which is a pointer type.
>
> Here, you're trying to store a 64-bit value in a 32-bit variable. BAD!

[ chop ]

--
John Goerzen SouthWind Internet Access, Inc.
E-mail: Business, jgoe...@southwind.net; Personal, jgoe...@complete.org
Developer, Debian GNU/Linux <http://www.debian.org>

John Goerzen

unread,
Nov 30, 1998, 3:00:00 AM11/30/98
to Paul Duffin
On Mon, Nov 30, 1998 at 03:56:50PM +0000, Paul Duffin wrote:

> Actually the problem is not quite so bad as you make out. What the above

First, this is only one example of the code. I did not look at all of the
other numerous warnings along these lines, since time did not permit such.
I have no doubt that these are causing some problems.

> code is doing is extracting from handle an integer value which was
> previously stored in the handle. This is ok as long as the following

Why on earth is Tcl using a pointer to store an integer value? If it's an
int, use an int!

> holds for all values that A can hold when A is an int.
>
> A == (int) (void *) A
>
> In general this is ok as long as sizeof(void *) >= sizeof(int). If this
> is not the case then an awful lot of programs will fail as this is a
> very common idiom which is 'almost' permitted in the ANSI standard.

But it is never guaranteed, and programs should not even do this. I don't
understand why one would use a pointer to store an int. (Conversely, with
modern C, I don't understand why one would do the reverse except in very
peculiar circumstances, and even then, it doesn't work on many platforms.)

> I think that the way to get rid of the warnings is to do the following.
>
> int fd = (int) (long) handle;

While that *may* suppress the warning on the Alpha, still I maintain that
it's a very bad idea to be converting from pointers to ints like that.
Further, it is not the correct cross-platform way to do it, and does not
address the root problem.

> Ideally the configuration script should define a few macros which can be
> used to convert from one type to another without any warnings.

Ideally one should use ints to store ints and pointers to store pointers :-)

--
John Goerzen Linux, Unix consulting & programming jgoe...@complete.org |
Developer, Debian GNU/Linux (Free powerful OS upgrade) www.debian.org |
----------------------------------------------------------------------------+

Paul Duffin

unread,
Nov 30, 1998, 3:00:00 AM11/30/98
to John Goerzen
John Goerzen wrote:
>
> On Mon, Nov 30, 1998 at 03:56:50PM +0000, Paul Duffin wrote:
>
> > Actually the problem is not quite so bad as you make out. What the above
>
> First, this is only one example of the code. I did not look at all of the
> other numerous warnings along these lines, since time did not permit such.
> I have no doubt that these are causing some problems.
>
> > code is doing is extracting from handle an integer value which was
> > previously stored in the handle. This is ok as long as the following
>
> Why on earth is Tcl using a pointer to store an integer value? If it's an
> int, use an int!
>

The problem is that in this case the handle contains an int, on other
platforms it could contain a pointer or some other type. Obviously the
safest way to manage this is using a union but this mechanism works
well as long as the sizes of the 'generic' type is large enough.

> > holds for all values that A can hold when A is an int.
> >
> > A == (int) (void *) A
> >
> > In general this is ok as long as sizeof(void *) >= sizeof(int). If this
> > is not the case then an awful lot of programs will fail as this is a
> > very common idiom which is 'almost' permitted in the ANSI standard.
>
> But it is never guaranteed, and programs should not even do this. I don't
> understand why one would use a pointer to store an int. (Conversely, with
> modern C, I don't understand why one would do the reverse except in very
> peculiar circumstances, and even then, it doesn't work on many platforms.)
>

The reverse is not being done as far as I know as you are correct it will
fail on a lot of platforms. In general sizeof(void*) >= sizeof(long).

> > I think that the way to get rid of the warnings is to do the following.
> >
> > int fd = (int) (long) handle;
>
> While that *may* suppress the warning on the Alpha, still I maintain that
> it's a very bad idea to be converting from pointers to ints like that.
> Further, it is not the correct cross-platform way to do it, and does not
> address the root problem.
>

I think that you will find that it will not cause a problem for you. There
are undoubtedly other issues which will cause you problems but storing an
int in a void * will not.

> > Ideally the configuration script should define a few macros which can be
> > used to convert from one type to another without any warnings.
>
> Ideally one should use ints to store ints and pointers to store pointers :-)
>
> --
> John Goerzen Linux, Unix consulting & programming jgoe...@complete.org |
> Developer, Debian GNU/Linux (Free powerful OS upgrade) www.debian.org |
> ----------------------------------------------------------------------------+

--
Paul Duffin
DT/6000 Development Email: pdu...@hursley.ibm.com
IBM UK Laboratories Ltd., Hursley Park nr. Winchester
Internal: 7-246880 International: +44 1962-816880

Donal K. Fellows

unread,
Dec 1, 1998, 3:00:00 AM12/1/98
to
In article <slrn765ks6....@garfield.complete.org>,

John Goerzen <jgoe...@complete.org> wrote:
> On Mon, Nov 30, 1998 at 03:56:50PM +0000, Paul Duffin wrote:
>> code is doing is extracting from handle an integer value which was
>> previously stored in the handle. This is ok as long as the following
>
> Why on earth is Tcl using a pointer to store an integer value?

More code reuse. Code reuse is a Good Thing.

> If it's an int, use an int!

If you want to replace Tcl_CreateCommand() with
Tcl_CreateCommandIntArg() and Tcl_CreateCommandLongArg() and
Tcl_CreateCommandPointerArg()...

And the same for all the hash table code. And filehandle code. Etc.

Strictly, you can do it by making the ClientData type into a union of
a suitable collection of integer types and a pointer, but then you'd
probably need to go through an awful lot of other code to update it to
use your new type correctly. Personally, I prefer to use the macros:

#define ptr2int(ptr) ((int)(((char *)(ptr))-((char *)NULL)))
#define int2ptr(i) (((char *)NULL)+((int)i))

These work fine on both 32-bit (sparc-SunOS/Solaris) and 64-bit (Irix
with a -64 flag to the compiler) platforms.

Donal.
--
Donal K. Fellows http://www.cs.man.ac.uk/~fellowsd/ fell...@cs.man.ac.uk
Department of Computer Science, University of Manchester, U.K. +44-161-275-6137
--
If you staple a penguin to the head of a gnu, the result won't catch herring...

lvi...@cas.org

unread,
Dec 2, 1998, 3:00:00 AM12/2/98
to

According to Paul Duffin <pdu...@mailserver.hursley.ibm.com>:
:The problem is that in this case the handle contains an int, on other

:platforms it could contain a pointer or some other type. Obviously the
:safest way to manage this is using a union but this mechanism works
:well as long as the sizes of the 'generic' type is large enough.

And now that's no longer the case, it appears that it would be worthwhile
to change to use the union, right?

--
<URL: mailto:lvi...@cas.org> Quote: Saving the world before bedtime.
<*> O- <URL: http://www.purl.org/NET/lvirden/>
Unless explicitly stated to the contrary, nothing in this posting
should be construed as representing my employer's opinions.

lvi...@cas.org

unread,
Dec 2, 1998, 3:00:00 AM12/2/98
to

According to Donal K. Fellows <fell...@cs.man.ac.uk>:
:Strictly, you can do it by making the ClientData type into a union of

:a suitable collection of integer types and a pointer, but then you'd
:probably need to go through an awful lot of other code to update it to
:use your new type correctly. Personally, I prefer to use the macros:

I myself would rather see the unions ...

John Goerzen

unread,
Dec 2, 1998, 3:00:00 AM12/2/98
to fel...@cs.man.ac.uk, pdu...@mailserver.hursley.ibm.com
OK, I've found the problem. It was not as I originally thought. Here's the
offender, in tclObj.c:

if (((long)((int)l)) == l) {
*intPtr = (int)objPtr->internalRep.longValue;
return TCL_OK;
}

This breaks with ints larger than 31 bits. The code in question uses a
"format %u" on an IP address, which could indeed use 32 bits. Here's sample
C code to demonstrate:

#include <stdio.h>
void main(void) {
long l;
long l2;
int i;

printf("long: %d, int: %d\n", sizeof(long), sizeof(int));
l = 3459608549U;
i = (int)l;
l2 = ((long)((int)l));
printf("l: %ld, i: %d, l2: %ld\n", l, i, l2);
}

OK, on PC, this displays:

long: 4, int: 4
l: -835358747, i: -835358747, l2: -835358747

That is, it takes the 32nd bit of the number and uses it as the sign bit.
Fine.

But on Alpha:

erwin ~$ ./test
long: 8, int: 4
l: 3459608549, i: -835358747, l2: -835358747

Now the problem appears! The long correctly holds it. The int takes it as
the sign bit, just as on i386 -- but when it goes back to long, look out!
There's the problem!

So, how to fix?

I first thought of this:

Replace:

if (((long)((int)l)) == l) {

with:

if (((long)((unsigned int)l)) == l) {

Which fixes this problem but breaks for negative numbers. That code SHOULD
read:

if (l <= UINT_MAX) {

It may be necessary to #include <values.h> for this to work on some systems,
if it's not already included.

How do we get this fixed for 8.0.5?

BTW, this is Linux on both the Alpha and Pentium that I'm using for testing.

To confirm this works (this is after setting to the UINT_MAX test above):

% puts [format %u 3459608549]
3459608549
% puts [format %u 13459608549]
integer value too large to represent as non-long integer

(On alpha)

And on i386:

% puts [format %u 3459608549]
3459608549
% puts [format %u 13459608549]
integer value too large to represent

Works!

On 1 Dec 1998 14:20:11 GMT, Donal K. Fellows <fell...@cs.man.ac.uk> wrote:
>Strictly, you can do it by making the ClientData type into a union of
>a suitable collection of integer types and a pointer, but then you'd
>probably need to go through an awful lot of other code to update it to
>use your new type correctly. Personally, I prefer to use the macros:
>

> #define ptr2int(ptr) ((int)(((char *)(ptr))-((char *)NULL)))
> #define int2ptr(i) (((char *)NULL)+((int)i))
>
>These work fine on both 32-bit (sparc-SunOS/Solaris) and 64-bit (Irix
>with a -64 flag to the compiler) platforms.
>

--

John Goerzen Linux, Unix consulting & programming jgoe...@complete.org |
Developer, Debian GNU/Linux (Free powerful OS upgrade) www.debian.org |
----------------------------------------------------------------------------+

Visit the Air Capital Linux Users Group on the web at http://www.aclug.org

Cameron Laird

unread,
Dec 2, 1998, 3:00:00 AM12/2/98
to
In article <slrn769830....@garfield.complete.org>,

John Goerzen <jgoe...@complete.org> wrote:
>OK, I've found the problem. It was not as I originally thought. Here's the
>offender, in tclObj.c:
>
> if (((long)((int)l)) == l) {
> *intPtr = (int)objPtr->internalRep.longValue;
> return TCL_OK;
> }
>
>This breaks with ints larger than 31 bits. The code in question uses a
.
.
.
Anyone taking votes? I *sure* want Tcl to work on Alphas.
This needs to be fixed, in a hurry.
--

Cameron Laird http://starbase.neosoft.com/~claird/home.html
cla...@NeoSoft.com +1 281 996 8546 FAX

Donal K. Fellows

unread,
Dec 2, 1998, 3:00:00 AM12/2/98
to
> Replace:
> if (((long)((int)l)) == l) {
> with:
> if (((long)((unsigned int)l)) == l) {
>
> Which fixes this problem but breaks for negative numbers. That code SHOULD
> read:
> if (l <= UINT_MAX) {

Mixing signed and unsigned integers usually leads to trouble.
Especially when the two may be (but are not necessarily) of different
lengths. I suspect that this might be a good time to consider putting
tests on the size of int and long in the configure script...

Donal.
--
Donal K. Fellows http://www.cs.man.ac.uk/~fellowsd/ fell...@cs.man.ac.uk
Department of Computer Science, University of Manchester, U.K. +44-161-275-6137
--

"And remember, evidence is nothing." - Stacy Strock <sp...@adisfwb.com>

WANGNICK Sebastian

unread,
Dec 2, 1998, 3:00:00 AM12/2/98
to
John Goerzen wrote:
>
> OK, I've found the problem. It was not as I originally thought. Here's the
> offender, in tclObj.c:
>
> if (((long)((int)l)) == l) {
> *intPtr = (int)objPtr->internalRep.longValue;
> return TCL_OK;
> }
>
> This breaks with ints larger than 31 bits. The code in question uses a
> Replace:
>
> if (((long)((int)l)) == l) {
>
> with:
>
> if (((long)((unsigned int)l)) == l) {
>
> Which fixes this problem but breaks for negative numbers. That code SHOULD
> read:
>
> if (l <= UINT_MAX) {
>
> It may be necessary to #include <values.h> for this to work on some systems,
> if it's not already included.
>
> How do we get this fixed for 8.0.5?
>
> BTW, this is Linux on both the Alpha and Pentium that I'm using for testing.
>
> To confirm this works (this is after setting to the UINT_MAX test above):
>
> % puts [format %u 3459608549]
> 3459608549
> % puts [format %u 13459608549]
> integer value too large to represent as non-long integer
>
> (On alpha)
>
> And on i386:
>
> % puts [format %u 3459608549]
> 3459608549
> % puts [format %u 13459608549]
> integer value too large to represent
>
> Works!

I disagree!

1. When converting the string "3459608549" to a LongObj, shouldn't Tcl
flag
this number as not being representable on the PC?

2. When converting the LongObj containing 3459608549U to a (signed)
int in Tcl_GetIntFromObj, Tcl should continue to flag this error
on the Alpha (not that following 1. above, a LongObj can NEVER
contain 3459608549U on the PC!).

3. In Tcl_FormatObjCmd, IMHO the cases 'o', 'u', 'x' and 'X' should
rather do a Tcl_GetLongFromObj and do the cast to int size themselves.

Regards,
Sebastian
--
Dipl.-Inform. Sebastian <dot> Wangnick <at eurocontrol in be>
Office: Eurocontrol Maastricht UAC, Horsterweg 11, NL-6191RX Beek,
Tel: +31-433661370, Fax: ~300
Spam email is reported to service providers. Report charge is $100.

John Goerzen

unread,
Dec 3, 1998, 3:00:00 AM12/3/98
to
OK, please understand I have almost zero knowledge of the Tcl C core; I was
simply tracking down a problem with using format %u on something that
clearly fit into an int.

On Wed, 02 Dec 1998 12:25:57 +0000,
WANGNICK Sebastian <sebastian...@eurocontrol.be> wrote:

>>
>> % puts [format %u 3459608549]
>> 3459608549
>> % puts [format %u 13459608549]
>> integer value too large to represent
>>
>> Works!
>


>I disagree!
>
>1. When converting the string "3459608549" to a LongObj, shouldn't Tcl
>flag
>this number as not being representable on the PC?

I have no idea if it is already or not; this particular number is being
generated from an IP address by the following Zircon code:

proc ipPack {ip} {
set val 0
foreach x [split $ip .] { set val [expr {($val << 8) | ($x & 0377)}] }
return [format %u $val]
}

The problem was at the format %u on the Alpha; it would incorrectly claim
that 3459608549 was too large to represent in an integer. I will leave it
to others to decide whether or not it should be settable to that value
directly; and in fact, with the above code, you could very wall get a
negative number if you treat $val as a signed 32-bit integer. However, on
Alpha, you have a 64-bit integer, and so the above code has no hope of
hitting the sign bit (unless you give it fake IP addresses <g>).

However, I am concerned: 1) why does Tcl lose information on a number when
printing it out, and 2) why should the Alpha be limited by the PC?

>2. When converting the LongObj containing 3459608549U to a (signed)
>int in Tcl_GetIntFromObj, Tcl should continue to flag this error
>on the Alpha (not that following 1. above, a LongObj can NEVER
>contain 3459608549U on the PC!).

Why should it flag the error on Alpha but not on PC? Remember that the same
exact Tcl code is used to generate it. Why should it fail on 64-bit
machines? I take VERY strong exception at this.

>3. In Tcl_FormatObjCmd, IMHO the cases 'o', 'u', 'x' and 'X' should
>rather do a Tcl_GetLongFromObj and do the cast to int size themselves.

What about other things that do Tcl_GetIntFromObj?

Paul Duffin

unread,
Dec 3, 1998, 3:00:00 AM12/3/98
to
lvi...@cas.org wrote:
>
> According to Paul Duffin <pdu...@mailserver.hursley.ibm.com>:
> :The problem is that in this case the handle contains an int, on other
> :platforms it could contain a pointer or some other type. Obviously the
> :safest way to manage this is using a union but this mechanism works
> :well as long as the sizes of the 'generic' type is large enough.
>
> And now that's no longer the case, it appears that it would be worthwhile
> to change to use the union, right?
>

Why is it no longer the case ? The 'generic' type is void *.
sizeof(void *) is 8
sizeof(char *) is 8
sizeof(int) is 4
sizeof(long) is 8

Therefore both an int and a long will fit into a void *.

Paul Duffin

unread,
Dec 3, 1998, 3:00:00 AM12/3/98
to
John Goerzen wrote:
>
> OK, I've found the problem. It was not as I originally thought. Here's the
> offender, in tclObj.c:
>
> if (((long)((int)l)) == l) {
> *intPtr = (int)objPtr->internalRep.longValue;
> return TCL_OK;
> }
>
> This breaks with ints larger than 31 bits. The code in question uses a
> "format %u" on an IP address, which could indeed use 32 bits. Here's sample
> C code to demonstrate:
>
> #include <stdio.h>
> void main(void) {
> long l;
> long l2;
> int i;
>
> printf("long: %d, int: %d\n", sizeof(long), sizeof(int));
> l = 3459608549U;
> i = (int)l;
> l2 = ((long)((int)l));
> printf("l: %ld, i: %d, l2: %ld\n", l, i, l2);
> }
>

What happens if you make l,l2 and i unsigned ? The reason I ask is that
you are storing an unsigned value literal into a signed long, converting
that to a signed int and then back to a signed long so you are bound to
have problems.

My personal opinion is you should only use signed chars, shorts, ints
and longs if you know that you need signed values. If you do not then
use unsigned as it will save you a lot of grief.

When handling 'generic' integral types then you should use unsigned for
as long as possible. You should never really convert from a type A to a
type B which has a different size and signs. If you have to then you
have to be very careful, otherwise you could get implementation specific
behaviour which is not something you want. From the ANSI standard:

A6.2 Integral conversions

Any integer is converted to a given unsigned type by finding the
smallest non-negative value that is congruent to that integer, modulo
one more than the largest value that can be represented in the unsigned
type. In a two's complement representation, this is equivalent to
left-truncation if the bit pattern of the unsigned type is narrower,
and to zero-filling unsigned values and sign-extending signed values if
the unsigned type is wider.
When any integer is converted to a signed type, the value is
unchanged if it can be represented in the new type and is implementation
defined otherwise.

If I have a signed integer which actually contains an unsigned value and
I want to convert it to an unsigned long then I should first convert it
to an unsigned int and then convert it to an unsigned long, otherwise
I will get sign extension.

> OK, on PC, this displays:
>
> long: 4, int: 4
> l: -835358747, i: -835358747, l2: -835358747
>
> That is, it takes the 32nd bit of the number and uses it as the sign bit.
> Fine.
>
> But on Alpha:
>
> erwin ~$ ./test
> long: 8, int: 4
> l: 3459608549, i: -835358747, l2: -835358747
>
> Now the problem appears! The long correctly holds it. The int takes it as
> the sign bit, just as on i386 -- but when it goes back to long, look out!
> There's the problem!
>
> So, how to fix?
>
> I first thought of this:
>
> Replace:
>
> if (((long)((int)l)) == l) {
>
> with:
>
> if (((long)((unsigned int)l)) == l) {
>

This should probably be

> Which fixes this problem but breaks for negative numbers. That code SHOULD
> read:
>
> if (l <= UINT_MAX) {
>
> It may be necessary to #include <values.h> for this to work on some systems,
> if it's not already included.
>
> How do we get this fixed for 8.0.5?
>
> BTW, this is Linux on both the Alpha and Pentium that I'm using for testing.
>
> To confirm this works (this is after setting to the UINT_MAX test above):
>

> % puts [format %u 3459608549]
> 3459608549
> % puts [format %u 13459608549]

> integer value too large to represent as non-long integer
>
> (On alpha)
>
> And on i386:
>

> % puts [format %u 3459608549]
> 3459608549
> % puts [format %u 13459608549]
> integer value too large to represent
>
> Works!
>

Fixing this will probably require some incompatible changes to the
object interface.

John Goerzen

unread,
Dec 4, 1998, 3:00:00 AM12/4/98
to
Paul Duffin <pdu...@mailserver.hursley.ibm.com> writes:

> > #include <stdio.h>
> > void main(void) {
> > long l;
> > long l2;
> > int i;
> >
> > printf("long: %d, int: %d\n", sizeof(long), sizeof(int));
> > l = 3459608549U;
> > i = (int)l;
> > l2 = ((long)((int)l));
> > printf("l: %ld, i: %d, l2: %ld\n", l, i, l2);
> > }
> >
>
> What happens if you make l,l2 and i unsigned ? The reason I ask is that

Well I could, but this code snippet was deisnged to demonstrate what
Tcl is doing, and Tcl is using signed stuff all over.

> you are storing an unsigned value literal into a signed long, converting
> that to a signed int and then back to a signed long so you are bound to
> have problems.

Right. Hence the problems in Tcl.


> When handling 'generic' integral types then you should use unsigned for
> as long as possible. You should never really convert from a type A to a
> type B which has a different size and signs. If you have to then you
> have to be very careful, otherwise you could get implementation specific
> behaviour which is not something you want. From the ANSI standard:

Right, which is the problem with Tcl.

WANGNICK Sebastian

unread,
Dec 7, 1998, 3:00:00 AM12/7/98
to John Goerzen, Cameron Laird, Donal K. Fellows, Paul Duffin
Gentlemen,

I suggested in a previous message the following:

1. When converting the string "3459608549" to a LongObj,

Tcl should flag this number as not being representable on the PC.

2. When converting the LongObj containing 3459608549U to a (signed)
int in Tcl_GetIntFromObj, Tcl should continue to flag this error
on the Alpha (not that following 1. above, a LongObj can NEVER
contain 3459608549U on the PC!).

3. In Tcl_FormatObjCmd, the cases 'o', 'u', 'x' and 'X' should


rather do a Tcl_GetLongFromObj and do the cast to int size themselves.

Did you receive this post? I didn't read any reply, only the
continuation of the discussion between you four guys?

0 new messages