[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