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

20000914: compile error on Linux for McIDAS-X



>From: Robert Benites <address@hidden>
>Organization: UNCA
>Keywords: 200009141532.e8EFWQb27728 McIDAS-X servutil.c Linux

Bob,

>Alex and I were following your instructions for the installation of
>the mcidas bugfixes on one of our Linux machines:
>
>> cd ~/mcidas7.6/src
>> touch Mcmkmcgrid.c
>> make all
>> make install.all
>
>During the make portion we received the following error:
>
>./mccomp -O -vendor -I. -I../netcdf/libsrc -c servutil.c
>gcc -c -O -ansi -D_GNU_SOURCE -I/usr/X11R6/include -O -I. -I../netcdf/libsrc s
> ervutil.c
>servutil.c: In function `GetFileList':
>servutil.c:308: `GLOB_ABORTED' undeclared (first use this function)
>servutil.c:308: (Each undeclared identifier is reported only once
>servutil.c:308: for each function it appears in.)
>servutil.c: In function `AllowedAccess':
>servutil.c:2131: warning: assignment makes pointer from integer without a cast
>compile        servutil.c:             FAILED

The code in question works under RedHat 5.2 and 6.x Linux, so I have to
ask you what version of Linux you are using?  As an aside, this is one
of the problems with "Linux": Linux is not Linux is not Linux.  I am
seeing enough differences between RedHat, Debian, and Slackware to
convince myself that the build environment under "Linux" is not
standardized.

What will have to be done is look at /usr/include/glob.h and see what
your file has defined for GLOB_*.  Here is the relevant section from
/usr/include/glob.h from our RedHat 6.2 system:

/* Error returns from `glob'.  */
#define GLOB_NOSPACE    1       /* Ran out of memory.  */
#define GLOB_ABORTED    2       /* Read error.  */
#define GLOB_NOMATCH    3       /* No matches found.  */
#define GLOB_NOSYS      4       /* Not implemented.  */
#ifdef _GNU_SOURCE
/* Previous versions of this file defined GLOB_ABEND instead of
   GLOB_ABORTED.  Provide a compatibility definition here.  */
# define GLOB_ABEND GLOB_ABORTED
#endif

It is likely that your glob.h file has a define for GLOB_ABEND.  At this
point, you have two options:

o edit servutil.c and change GLOB_ABORTED to GLOB_ABEND
o define GLOB_ABORTED to be GLOB_ABEND at the top of servutil.c

>I've only excerpted the above errors from the makelog. If you'd like
>to see the entire makelog, it can be found at:
>
>   ftp://ftp.cs.unca.edu/pub/benites/makelog

I don't think that this is necessary.

>Any suggestions?

See above.

Tom


NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.