NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

19991001: Making McIDAS on OSF/1 4.0F



>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