[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