This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
>From: Erick Lorenz (address@hidden) <address@hidden> >Organization: UC Davis >Keywords: 199910011836.MAA28054 McIDAS-X DEX OSF/1 4.0F Tcl Erick, >I am trying to "make all" McIDAS 7.6 on ATM25 a DEC Alpha running >OSF/1 4.0F or as Compaq perfers to call it TRU64 Unix 4.0F. I have not tried a build on 4.0F... >The make stopped with the following series of messages: >======================================================================== >(cd ../tcl/unix && make) >/bin/c89 -c -O -I./../generic -I. -DHAVE_GETCWD=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 -DNO_UNION_WAIT=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void -DHAVE_SIGNED_CHAR= >1 -DHAVE_SYS_IOCTL_H=1 -DUSE_FIONBIO=1 -DTCL_SHLIB_EXT=\".so\" ./ >tclUnixChan.c >cc: Error: ./tclUnixChan.c, line 2464: Missing ";". (nosemi) > static fd_mask readyMasks[3*MASK_SIZE]; >-------------------^ >cc: Warning: ./tclUnixChan.c, line 1665: In this statement, the referenced >type of the pointer value "&size" is "int", which is not compatible with >"unsigned long". (ptrmismatch) > if (getpeername(statePtr->fd, (struct sockaddr *) &peername, &size) >---------------------------------------------------------------------^ >cc: Warning: ./tclUnixChan.c, line 1708: In this statement, the referenced >type of the pointer value "&size" is "int", which is not compatible with >"unsigned long". (ptrmismatch) > if (getsockname(statePtr->fd, (struct sockaddr *) &sockname, &size) >---------------------------------------------------------------------^ >cc: Warning: ./tclUnixChan.c, line 2229: In this statement, the referenced >type of the pointer value "&len" is "int", which is not compatible with >"unsigned long". (ptrmismatch) > newsock = accept(sockState->fd, (struct sockaddr *)&addr, &len); >--------------------------------------------------------------^ >cc: Error: ./tclUnixChan.c, line 2498: In this statement, "readyMasks" is >not declared. (undeclared) > memset((VOID *) readyMasks, 0, 3*MASK_SIZE*sizeof(fd_mask)); >--------------------^ >*** Exit 1 >Stop. >*** Exit 1 >Stop. >======================================================================= >These are the messages that come to the screen. They are not echoed >in the makelog. Right, the build of Tcl and Tk stuff is not logged into makefile. >Are these really syntax errors or am I missing some include files again? It looks like an include problem since the code at which the first error occurs is using a defined variable type: Tcl_Time abortTime, now; struct timeval blockTime, *timeoutPtr; int index, bit, numFound, result = 0; static fd_mask readyMasks[3*MASK_SIZE]; /* This array reflects the readable/writable * conditions that were found to exist by the * last call to select. */ I did a quick search for 'fd_mask' on my OSF/1 4.0E box and found it in sys/select.h: ifndef _XOPEN_SOURCE_EXTENDED typedef struct fd_set { fd_mask fds_bits[fds_howmany(FD_SETSIZE, FD_NFDBITS)]; } fd_set; #define FD_SET(n, p) ((p)->fds_bits[(n)/FD_NFDBITS] |= (1L << ((n) % FD_NFDBI TS))) #define FD_CLR(n, p) ((p)->fds_bits[(n)/FD_NFDBITS] &= ~(1L << ((n) % FD_NFDB ITS))) #define FD_ISSET(n, p) ((p)->fds_bits[(n)/FD_NFDBITS] & (1L << ((n) % FD_NFDBIT S))) #else typedef struct { long fds_bits[_fds_howmany(FD_SETSIZE, FD_NFDBITS)]; } fd_set; The error message is complaining about a missing semi-colon at the location of fd_mask which seems to be telling us that the compiler doesn't know what an fd_set type is (I am not positive about this, however). This is a strange problem since it is in the Tcl, not McIDAS code. I can probably help you troubleshoot this next Thursday. Right now, I have to prepare for a trip; sorry. >Thanks >Erick Lorenz, LAWR, UCDavis Tom