[GRASS5] CRAY T3E compile errors

Hi all,

currently I have access to a CRAY T3E in our university computer
center and try to compile the GRASS (what surprise).
I have to use a CC compiler:
cc(1) and c89(1). These commands invoke the Cray Standard C
       compiler and the source preprocessor on source files that contain C
       code. The compiler conforms to the International Standards
       Organization (ISO) ISO/IEC 9899:1990 and to the American National
       Standards Institute (ANSI) X3.159-1989 standards. The c89 command
       conforms to the POSIX standard, IEEE Std P1003.2.

Unfortunately I run into some troubles where I am rather
helpless:

/home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/digitizer
sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
OBJ.alpha-cray-unicosmk2.0.4.X/make.rules: file already exists.
  make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules

cmd-2415 make: line '158': 'syntax error'. Stop.
Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 digitizer": Error code 1
-> I can't see any problems in libes/digitizer/OBJ*/make.rules
   But somehow it is different to other make.rules files?!

---------------------------------------------------

/home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/gis
sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
OBJ.alpha-cray-unicosmk2.0.4.X/make.rules: file already exists.
  make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules
        cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c fork.c
-o OBJ.alpha-cray-unicosmk2.0.4.X/fork.o
CC-140 cc: ERROR File = fork.c, Line = 32
  Too many arguments in function call.

        setpgrp (0, getpid());
                 ^
1 error detected in the compilation of "fork.c".
Make: "cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c fork.c
-o OBJ.alpha-cray-unicosmk2.0.4.X/fork.o": Error code 1
cmd-2436 make: Stop.
Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 gis": Error code 1
-> mhhh, no idea here

---------------------------------------------------

/home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/proj
sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
OBJ.alpha-cray-unicosmk2.0.4.X/make.rules: file already exists.
  make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules

        rm -f OBJ.alpha-cray-unicosmk2.0.4.X/bch2bps.o
        cc -g -I. -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c
bch2bps.c
CC-167 cc: ERROR File = bch2bps.c, Line = 141
  Argument of type "UV **" is incompatible with parameter of type "void **".

        freev2(d, nu);
               ^
1 error detected in the compilation of "bch2bps.c".
Make: "cc -g -I. -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c
bch2bps.c": Error code 1
Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 proj": Error code 1
-> mhhh, no idea here

---------------------------------------------------
/home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/segment
sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
OBJ.alpha-cray-unicosmk2.
0.4.X/make.rules: file already exists.
  make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules

        rm -f OBJ.alpha-cray-unicosmk2.0.4.X/address.o
        cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c
address.c
CC-20 cc: ERROR File =
/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include/segment.h,
Line = 39
  The identifier "off_t" is undefined.

      SEEK_OFFSET offset; /* offset of data past header */
      ^
CC-20 cc: ERROR File =
/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include/segment.h,
Line = 43
  The identifier "off_t" is undefined.

  SEEK_OFFSET lseek();
  ^
2 errors detected in the compilation of "address.c".
Make: "cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c
address.c":
Error code 1
Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 segment": Error code 1
-> probably a problem with includes/config.h ?

---------------------------------------------------

/home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/vect32/georef
sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
OBJ.alpha-cray-unicosmk2.0.4.X/make.rules: file already exists.
  make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules

        rm -f OBJ.alpha-cray-unicosmk2.0.4.X/curses.o
        cc -g -I../digitizers -I../libes
-I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c curses.c
CC-147 cc: ERROR File = georef.h, Line = 27
  Declaration is incompatible with "int suspend(int, int)" (declared at line
359
          of "/usr/include/unistd.h").

  int suspend(void);
      ^
1 error detected in the compilation of "curses.c".
Make: "cc -g -I../digitizers -I../libes
-I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c curses.c": Error code 1
Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 georef": Error code 1

---------------------------------------------------
The other src/libes/ compiled so far.
I would be glad to receive assistance on above errors...

Yours

Markus

--
Dipl.-Geogr. Markus Neteler * University of Hannover
Institute of Physical Geography and Landscape Ecology
Schneiderberg 50 * D-30167 Hannover * Germany
Tel: ++49-(0)511-762-4494 Fax: -3984

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

On Tue, Sep 19, 2000 at 04:56:59PM +0100, Markus Neteler wrote:

currently I have access to a CRAY T3E in our university computer
center and try to compile the GRASS (what surprise).
I have to use a CC compiler:
cc(1) and c89(1). These commands invoke the Cray Standard C
       compiler and the source preprocessor on source files that contain C
       code. The compiler conforms to the International Standards
       Organization (ISO) ISO/IEC 9899:1990 and to the American National
       Standards Institute (ANSI) X3.159-1989 standards. The c89 command
       conforms to the POSIX standard, IEEE Std P1003.2.

Even when compatible with C standards,
there can be significant differences.

Unfortunately I run into some troubles where I am rather
helpless:

/home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/digitizer
sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
OBJ.alpha-cray-unicosmk2.0.4.X/make.rules: file already exists.
  make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules

cmd-2415 make: line '158': 'syntax error'. Stop.
Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 digitizer": Error code 1
-> I can't see any problems in libes/digitizer/OBJ*/make.rules
   But somehow it is different to other make.rules files?!

What version of make are you using?
(It might be an idea to build gnu make first.)

CC-140 cc: ERROR File = fork.c, Line = 32
  Too many arguments in function call.

        setpgrp (0, getpid());
                 ^
1 error detected in the compilation of "fork.c".
Make: "cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c fork.c
-o OBJ.alpha-cray-unicosmk2.0.4.X/fork.o": Error code 1
cmd-2436 make: Stop.
Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 gis": Error code 1
-> mhhh, no idea here

Try "man setpgrp" and compare.

---------------------------------------------------

/home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/proj
sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
OBJ.alpha-cray-unicosmk2.0.4.X/make.rules: file already exists.
  make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules

        rm -f OBJ.alpha-cray-unicosmk2.0.4.X/bch2bps.o
        cc -g -I. -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c
bch2bps.c
CC-167 cc: ERROR File = bch2bps.c, Line = 141
  Argument of type "UV **" is incompatible with parameter of type "void **".

        freev2(d, nu);
               ^
1 error detected in the compilation of "bch2bps.c".
Make: "cc -g -I. -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c
bch2bps.c": Error code 1
Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 proj": Error code 1
-> mhhh, no idea here

Again, man might help.
You might be able lto use a cast here.

--
Professional Service around Free Software (intevation.net)
The FreeGIS Project (freegis.org)
Association for a Free Informational Infrastructure (ffii.org)

On Tue, Sep 19, 2000 at 05:36:00PM +0200, Bernhard Reiter wrote:

On Tue, Sep 19, 2000 at 04:56:59PM +0100, Markus Neteler wrote:
>
> currently I have access to a CRAY T3E in our university computer
> center and try to compile the GRASS (what surprise).
> I have to use a CC compiler:
> cc(1) and c89(1). These commands invoke the Cray Standard C
> compiler and the source preprocessor on source files that contain C
> code. The compiler conforms to the International Standards
> Organization (ISO) ISO/IEC 9899:1990 and to the American National
> Standards Institute (ANSI) X3.159-1989 standards. The c89 command
> conforms to the POSIX standard, IEEE Std P1003.2.

Even when compatible with C standards,
there can be significant differences.

Yes, very true. But I have no admin rights there... So I will have
to live with this compiler currently.

> Unfortunately I run into some troubles where I am rather
> helpless:
>
> /home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/digitizer
> sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
> OBJ.alpha-cray-unicosmk2.0.4.X/make.rules: file already exists.
> make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules
>
> cmd-2415 make: line '158': 'syntax error'. Stop.
> Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 digitizer": Error code 1
> -> I can't see any problems in libes/digitizer/OBJ*/make.rules
> But somehow it is different to other make.rules files?!

What version of make are you using?
(It might be an idea to build gnu make first.)

It is a CRAY make. As only the libes/digitizer/OBJ*/make.rules fails
but all others are o.k. it might be a problem in
libes/digitizer/OBJ*/make.rules (only I can't see it).

> ---------------------------------------------------
> CC-140 cc: ERROR File = fork.c, Line = 32
> Too many arguments in function call.
>
> setpgrp (0, getpid());
> ^
> 1 error detected in the compilation of "fork.c".
> Make: "cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c fork.c
> -o OBJ.alpha-cray-unicosmk2.0.4.X/fork.o": Error code 1
> cmd-2436 make: Stop.
> Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 gis": Error code 1
> -> mhhh, no idea here

Try "man setpgrp" and compare.

  SETPGID(2) Linux Programmer's Manual SETPGID(2)
  NAME
       setpgid, getpgid, setpgrp, getpgrp - set/get process group
  SYNOPSIS
       #include <unistd.h>

       int setpgid(pid_t pid, pid_t pgid);
       pid_t getpgid(pid_t pid);
       int setpgrp(void);
       pid_t getpgrp(void);

   SETPGRP(2) UNICOS/mk 2.0.4 Last changed: 2-24-98
   NAME
     setpgrp - Sets process group ID
   SYNOPSIS
     #include <unistd.h>

     int setpgrp (void);
   IMPLEMENTATION
     CRAY T3E systems
   DESCRIPTION
     The setpgrp system call sets the process group ID of the calling
     process to the process ID of the calling process and returns the new
     process group ID.

.. it looks pretty different. Probably some #ifdef environment is
required in src/libes/gis/fork.c ?

> ---------------------------------------------------
>
> /home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/proj
> sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
> OBJ.alpha-cray-unicosmk2.0.4.X/make.rules: file already exists.
> make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules
>
> rm -f OBJ.alpha-cray-unicosmk2.0.4.X/bch2bps.o
> cc -g -I. -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c
> bch2bps.c
> CC-167 cc: ERROR File = bch2bps.c, Line = 141
> Argument of type "UV **" is incompatible with parameter of type "void **".
>
> freev2(d, nu);
> ^
> 1 error detected in the compilation of "bch2bps.c".
> Make: "cc -g -I. -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c
> bch2bps.c": Error code 1
> Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 proj": Error code 1
> -> mhhh, no idea here

Again, man might help.
You might be able lto use a cast here.

freev2 is defined in src/libes/proj/vector1.c:

        void /* free 2D array */
          freev2(void **v, int nrows) {
            [...]
        }

Mhhh....

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hi Markus

Markus Neteler wrote:

/home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/digitizer
sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
OBJ.alpha-cray-unicosmk2.0.4.X/make.rules: file already exists.
  make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules

cmd-2415 make: line '158': 'syntax error'. Stop.
Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 digitizer": Error
code 1
-> I can't see any problems in libes/digitizer/OBJ*/make.rules
   But somehow it is different to other make.rules files?!

I came across this type of error before in the old grass code (that is,
I haven't seen it recently). The line at the stated line number for me
was something like

$(LIB): # in case LIB changes.

I'm not sure, but this sounds like the LIB target contained something
like -lm which is an invalid target. Check to see if the line mentioned
is something like this, then check the definition for the target to make
sure it only contains proper values (if it is a LIB target it should
only have -L values).

/home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/gis
sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
OBJ.alpha-cray-unicosmk2.0.4.X/make.rules: file already exists.
  make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules
        cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c
fork.c
-o OBJ.alpha-cray-unicosmk2.0.4.X/fork.o
CC-140 cc: ERROR File = fork.c, Line = 32
  Too many arguments in function call.

        setpgrp (0, getpid());
                 ^
1 error detected in the compilation of "fork.c".
Make: "cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c fork.c
-o OBJ.alpha-cray-unicosmk2.0.4.X/fork.o": Error code 1
cmd-2436 make: Stop.
Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 gis": Error code 1
-> mhhh, no idea here

As you can see from you man page listing in your reply to Bernhard, the
setpgrp() function on the cray does not take any arguments. You could
use #ifdef's as you suggested but it would be much better to have this
determined by configure. Unfortunately, I have no idea how to do that.

---------------------------------------------------

/home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/proj
sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
OBJ.alpha-cray-unicosmk2.0.4.X/make.rules: file already exists.
  make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules

        rm -f OBJ.alpha-cray-unicosmk2.0.4.X/bch2bps.o
        cc -g -I. -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c
bch2bps.c
CC-167 cc: ERROR File = bch2bps.c, Line = 141
  Argument of type "UV **" is incompatible with parameter of type "void **".

        freev2(d, nu);
               ^
1 error detected in the compilation of "bch2bps.c".
Make: "cc -g -I. -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c
bch2bps.c": Error code 1
Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 proj": Error code 1
-> mhhh, no idea here

Here, d has probably been defiined as type UV ** in bch2bps.c and as you
saw, the first argument to freev2 is a void **. Therefore, d needs to be
cast to a void ** as follows:

freev2((void **) d, nu);

Unfortunately, this could be dangerous since the structure of UV
(whatever it happens to be) is unknown to the freev2 function. This may
not be a problem but should at least be considered.

---------------------------------------------------
/home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/segment
sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
OBJ.alpha-cray-unicosmk2.
0.4.X/make.rules: file already exists.
  make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules

        rm -f OBJ.alpha-cray-unicosmk2.0.4.X/address.o
        cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c
address.c
CC-20 cc: ERROR File =
/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include/segment.h,
Line = 39
  The identifier "off_t" is undefined.

      SEEK_OFFSET offset; /* offset of data past header */
      ^
CC-20 cc: ERROR File =
/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include/segment.h,
Line = 43
  The identifier "off_t" is undefined.

  SEEK_OFFSET lseek();
  ^
2 errors detected in the compilation of "address.c".
Make: "cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c
address.c":
Error code 1
Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 segment": Error code 1
-> probably a problem with includes/config.h ?

I think you're right here, which means another visit to configure.

---------------------------------------------------

/home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/vect32/georef
sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
OBJ.alpha-cray-unicosmk2.0.4.X/make.rules: file already exists.
  make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules

        rm -f OBJ.alpha-cray-unicosmk2.0.4.X/curses.o
        cc -g -I../digitizers -I../libes
-I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c curses.c
CC-147 cc: ERROR File = georef.h, Line = 27
  Declaration is incompatible with "int suspend(int, int)" (declared at line
359
          of "/usr/include/unistd.h").

  int suspend(void);
      ^
1 error detected in the compilation of "curses.c".
Make: "cc -g -I../digitizers -I../libes
-I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c curses.c": Error code 1
Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 georef": Error code 1

This is again similar to the setpgrp error and should be dealt with in
configure.

I hope this helped.

--
Sincerely,

Jazzman (a.k.a. Justin Hickey) e-mail: jhickey@hpcc.nectec.or.th
High Performance Computing Center
National Electronics and Computer Technology Center (NECTEC)
Bangkok, Thailand

People who think they know everything are very irritating to those
of us who do. ---Anonymous

Jazz and Trek Rule!!!

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hi,

On Wed, Sep 20, 2000 at 03:56:57PM +0700, Justin Hickey wrote:

Hi Markus

Markus Neteler wrote:
> /home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/digitizer
> sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
> OBJ.alpha-cray-unicosmk2.0.4.X/make.rules: file already exists.
> make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules
>
> cmd-2415 make: line '158': 'syntax error'. Stop.
> Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 digitizer": Error
> code 1
> -> I can't see any problems in libes/digitizer/OBJ*/make.rules
> But somehow it is different to other make.rules files?!

I came across this type of error before in the old grass code (that is,
I haven't seen it recently). The line at the stated line number for me
was something like

$(LIB): # in case LIB changes.

I'm not sure, but this sounds like the LIB target contained something
like -lm which is an invalid target. Check to see if the line mentioned
is something like this, then check the definition for the target to make
sure it only contains proper values (if it is a LIB target it should
only have -L values).

The affecting line is 158:
#################################################################
/home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/digitizer
  make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules

cmd-2415 make: line '158': 'syntax error'. Stop.

cat make.rules:
   153 OBJ = \
   154 $(OBJARCH)/graph_input.o
   155
   156 all: $(DIGITLIB)
   157
   158 $(DIGITLIB): $(OBJ)
   159 $(AR)
   160
   161 #$(LIBDIR)/linkm.h: linkm.h
   162 # rm -f $@
   163 # cp $? $@
   164 # chmod +r $@
   165
   166 $(OBJ): #linkm.h

I can't see an problem... Strange.

> /home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/gis
> sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
> OBJ.alpha-cray-unicosmk2.0.4.X/make.rules: file already exists.
> make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules
> cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c
> fork.c
> -o OBJ.alpha-cray-unicosmk2.0.4.X/fork.o
> CC-140 cc: ERROR File = fork.c, Line = 32
> Too many arguments in function call.
>
> setpgrp (0, getpid());
> ^
> 1 error detected in the compilation of "fork.c".
> Make: "cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c fork.c
> -o OBJ.alpha-cray-unicosmk2.0.4.X/fork.o": Error code 1
> cmd-2436 make: Stop.
> Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 gis": Error code 1
> -> mhhh, no idea here

As you can see from you man page listing in your reply to Bernhard, the
setpgrp() function on the cray does not take any arguments. You could
use #ifdef's as you suggested but it would be much better to have this
determined by configure. Unfortunately, I have no idea how to do that.

Good luck for me: I have detected the problem. I fork.c there is
already an #ifdef statement. Reason fro my problem was that the
ksh on CRAY was in a "noclobber" mode. By setting
set +C

By that I got rid of strange write errors while running "configure"
(affecting src/includes/config.h). Now, after re-running configure,
the SETPGRP_VOID was set properly.

.. src/libes/gis compiles now.

> ---------------------------------------------------
>
> /home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/proj
> sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
> OBJ.alpha-cray-unicosmk2.0.4.X/make.rules: file already exists.
> make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules
>
> rm -f OBJ.alpha-cray-unicosmk2.0.4.X/bch2bps.o
> cc -g -I. -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c
> bch2bps.c
> CC-167 cc: ERROR File = bch2bps.c, Line = 141
> Argument of type "UV **" is incompatible with parameter of type "void **".
>
> freev2(d, nu);
> ^
> 1 error detected in the compilation of "bch2bps.c".
> Make: "cc -g -I. -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c
> bch2bps.c": Error code 1
> Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 proj": Error code 1
> -> mhhh, no idea here

Here, d has probably been defiined as type UV ** in bch2bps.c and as you

Yes, that's right.

saw, the first argument to freev2 is a void **. Therefore, d needs to be
cast to a void ** as follows:

freev2((void **) d, nu);

Unfortunately, this could be dangerous since the structure of UV
(whatever it happens to be) is unknown to the freev2 function. This may
not be a problem but should at least be considered.

Probably I should put the cast into an #ifdef depending on config.h?
But: what variable I would have to check from config.h? Sorry, here
I am very unexperienced.

> ---------------------------------------------------
> /home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/segment
> sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
> OBJ.alpha-cray-unicosmk2.
> 0.4.X/make.rules: file already exists.
> make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules
>
> rm -f OBJ.alpha-cray-unicosmk2.0.4.X/address.o
> cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c
> address.c
> CC-20 cc: ERROR File =
> /home/t3e/fsn/nhdc/nhdcmark/grass5/src/include/segment.h,
> Line = 39
> The identifier "off_t" is undefined.

[...]

> -> probably a problem with includes/config.h ?

I think you're right here, which means another visit to configure.

Also fixed by above set +C setting and re-"configure".
Here a new error occured:

CC-852 cc: ERROR File = get_row.c, Line = 29
  The expression must be a pointer to a complete object type.

        buf += size;
        ^
1 error detected in the compilation of "get_row.c".
-> I am hesitating to change anything "intuitively"...
   Recommendations?

> ---------------------------------------------------
>
> /home/t3e/fsn/nhdc/nhdcmark/grass5/src/libes/vect32/georef
> sh-48 /home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5[7]:
> OBJ.alpha-cray-unicosmk2.0.4.X/make.rules: file already exists.
> make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules
>
> rm -f OBJ.alpha-cray-unicosmk2.0.4.X/curses.o
> cc -g -I../digitizers -I../libes
> -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c curses.c
> CC-147 cc: ERROR File = georef.h, Line = 27
> Declaration is incompatible with "int suspend(int, int)" (declared at line
> 359
> of "/usr/include/unistd.h").
>
> int suspend(void);
> ^
> 1 error detected in the compilation of "curses.c".
> Make: "cc -g -I../digitizers -I../libes
> -I/home/t3e/fsn/nhdc/nhdcmark/grass5/src/include -c curses.c": Error code 1
> Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 georef": Error code 1

This is again similar to the setpgrp error and should be dealt with in
configure.

Or probably an #ifdef environment, too? I try to search for another
suspend() call...

Thanks so far

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hi all,

excuse me for writing so many mails...

As I am still not very experienced with fixing pointer problems,
I would like to ask for assistance with further CRAY compile
errors (the other errors from my previous mail are fixed):

Further CRAY T3E compile errors:

/home/t3e/fsn/nhdc/nhdcmark/grass/src/mapdev/v.cutter
  make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules

        cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass/src/include -c build.c
-o OBJ.alpha-cray-unicosmk2.0.4.X/build.o
CC-167 cc: ERROR File = build.c, Line = 313
  Argument of type "struct poly_vert_info **" is incompatible with parameter
of
          type "void **".

                swap_pointers (&Vert, &Vert2);
                               ^
CC-167 cc: ERROR File = build.c, Line = 313
  Argument of type "struct poly_vert_info **" is incompatible with parameter
of
          type "void **".

                swap_pointers (&Vert, &Vert2);
                                      ^
2 errors detected in the compilation of "build.c".
Make: "cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass/src/include -c build.c
-o OBJ.alpha-cray-unicosmk2.0.4.X/build.o": Error code 1
cmd-2436 make: Stop.

-------------------------------------------------------
/home/t3e/fsn/nhdc/nhdcmark/grass/src/mapdev/v.in.shape
  make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules

        cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass/src/include -c
dbutils.c -o OBJ.alpha-cray-unicosmk2.0.4.X/dbutils.o
CC-167 cc: ERROR File = dbutils.c, Line = 93
  Argument of type "pntDescript ***" is incompatible with parameter of type
          "void **".

    res = btree_find( hDB, keyHolder, &dataHolder );
                                      ^

1 error detected in the compilation of "dbutils.c".
Make: "cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass/src/include -c dbutils.c
-o OBJ.alpha-cray-unicosmk2.0.4.X/dbutils.o": Error code 1
cmd-2436 make: Stop.

-------------------------------------------------------
/home/t3e/fsn/nhdc/nhdcmark/grass/src/mapdev/v.out.mif
  make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules

        cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass/src/include -c plot.c
-o OBJ.alpha-cray-unicosmk2.0.4.X/plot.o
CC-167 cc: ERROR File = plot.c, Line = 109
  Argument of type "struct Map_info **" is incompatible with parameter of
type
          "struct Map_info *".

            Vect_close (&Map);
                        ^
CC-167 cc: ERROR File = plot.c, Line = 139
  Argument of type "struct Map_info **" is incompatible with parameter of
type
          "struct Map_info *".

            Vect_close (&Map);
                        ^
2 errors detected in the compilation of "plot.c".
Make: "cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass/src/include -c plot.c -o
OBJ.alpha-cray-unicosmk2.0.4.X/plot.o": Error code 1
cmd-2436 make: Stop.

-------------------------------------------------------
/home/t3e/fsn/nhdc/nhdcmark/grass/src/mapdev/v.rmdup/cmd
  make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules

        cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass/src/include -c rmdup.c
-o OBJ.alpha-cray-unicosmk2.0.4.X/rmdup.o
CC-136 cc: ERROR File = rmdup.c, Line = 198
  The struct "<unnamed>" has no field "_shortbuf".

      while (match == 0 && Closet->dig_fp->_shortbuf[1]) /* try to upgrade
in 5/2000 */
                                           ^
1 error detected in the compilation of "rmdup.c".
Make: "cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass/src/include -c rmdup.c
-o OBJ.alpha-cray-unicosmk2.0.4.X/rmdup.o": Error code 1
cmd-2436 make: Stop.
Make: "/home/t3e/fsn/nhdc/nhdcmark/grass5bin/gmake5 cmd": Error code 1
cmd-2436 make: Stop.

-------------------------------------------------------
/home/t3e/fsn/nhdc/nhdcmark/grass/src/raster/r.binfer
  make -f OBJ.alpha-cray-unicosmk2.0.4.X/make.rules

        rm -f lex.c gram.c
        yacc binfer.y
        rm -f gram.c
        mv y.tab.c gram.c
        cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass/src/include -c gram.c
-o OBJ.alpha-cray-unicosmk2.0.4.X/gram.o
        lex binfer.l
"binfer.l":line 13: Error: Missing translation value
Make: "lex binfer.l": Error code 1

-> looks like a problem with "%option lex-compat"

Many thanks

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

On Tue, Sep 19, 2000 at 05:34:35PM +0100, Markus Neteler wrote:

On Tue, Sep 19, 2000 at 05:36:00PM +0200, Bernhard Reiter wrote:
> Even when compatible with C standards,
> there can be significant differences.
Yes, very true. But I have no admin rights there... So I will have
to live with this compiler currently.
> What version of make are you using?
> (It might be an idea to build gnu make first.)
It is a CRAY make. As only the libes/digitizer/OBJ*/make.rules fails
but all others are o.k. it might be a problem in
libes/digitizer/OBJ*/make.rules (only I can't see it).

You have no admin rights, but you have shell and disk space? If so,
install gcc and make in your own home directory ...

cd
mkdir bin
# include ~/bin in your PATH

cd
tar xfz make-*.tar.gz
cd make-*
./configure --prefix=`echo ~`
make
make install

cd
tar xfz gcc-*.tar.gz
cd gcc-*
./configure --prefix=`echo ~`
make
make install

Then I'd remake make with gcc. :wink:

--
James Cameron mailto:quozl@us.netrek.org http://quozl.netrek.org/

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hi Markus

Most of these can be fixed by casting, and it appears that most of the
casts will be OK. I have noted which ones need some care.

Markus Neteler wrote:

  Argument of type "struct poly_vert_info **" is incompatible with parameter
of
          type "void **".

                swap_pointers (&Vert, &Vert2);
                               ^

This one should be safe to cast.

  Argument of type "struct poly_vert_info **" is incompatible with parameter
of
          type "void **".

                swap_pointers (&Vert, &Vert2);
                                      ^

This one should be safe to cast

  Argument of type "pntDescript ***" is incompatible with parameter of type
          "void **".

    res = btree_find( hDB, keyHolder, &dataHolder );
                                      ^

Already fixed by David (I think)

  Argument of type "struct Map_info **" is incompatible with parameter of
type
          "struct Map_info *".

            Vect_close (&Map);
                        ^

Looks like a typo, perhaps Map is declared as a pointer already and
passing the address of Map is passing a double pointer, thus the
conflict. You can verify this if other calls to Vect_close exist.
Otherwise, I still think it is safe to simply remove the "&" from Map.
Note this also applies to the second error. Another thing you could do
is check the code in Vect_close to see how Map is used. If it is used as
a single pointer then you can get rid of the "&".

  The struct "<unnamed>" has no field "_shortbuf".

      while (match == 0 && Closet->dig_fp->_shortbuf[1]) /* try to upgrade
in 5/2000 */
                                           ^

Ahh! This one happened to me as well. There are #ifdef's in place
already for this line in the code. In the code they check for a struct
member called _cnt for SGI, and _bf._size for CYGWIN and FreeBSD. Check
the file /usr/include/stdio.h to see if either of these members are
inside the FILE structure. If it is there, then add the appropriate
"defined (cray)" check (just guessing on the cray part, you will need to
verify the proper variable name) in the source code. If there is no
match in the FILE struct, then send the FILE struct details to me and I
will see if I can determine the proper member to check. It may be the
same as the SGI line since SGI owned (or still does own) Cray.

"binfer.l":line 13: Error: Missing translation value
Make: "lex binfer.l": Error code 1

-> looks like a problem with "%option lex-compat"

No idea with this one.

--
Sincerely,

Jazzman (a.k.a. Justin Hickey) e-mail: jhickey@hpcc.nectec.or.th
High Performance Computing Center
National Electronics and Computer Technology Center (NECTEC)
Bangkok, Thailand

People who think they know everything are very irritating to those
of us who do. ---Anonymous

Jazz and Trek Rule!!!

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hi Justin,

many thanks again...

On Mon, Sep 25, 2000 at 12:17:43PM +0700, Justin Hickey wrote:

Hi Markus

Most of these can be fixed by casting, and it appears that most of the
casts will be OK. I have noted which ones need some care.

Markus Neteler wrote:

v.cutter:

> Argument of type "struct poly_vert_info **" is incompatible with parameter
> of
> type "void **".
>
> swap_pointers (&Vert, &Vert2);
> ^

This one should be safe to cast.

> Argument of type "struct poly_vert_info **" is incompatible with parameter
> of
> type "void **".
>
> swap_pointers (&Vert, &Vert2);
> ^

This one should be safe to cast

Both are casted now. It compiles o.k. on CRAY now.

> Argument of type "pntDescript ***" is incompatible with parameter of type
> "void **".
>
> res = btree_find( hDB, keyHolder, &dataHolder );
> ^

Already fixed by David (I think)

That's right.

v.out.mapinfo:
> Argument of type "struct Map_info **" is incompatible with parameter of
> type
> "struct Map_info *".
>
> Vect_close (&Map);
> ^

Looks like a typo, perhaps Map is declared as a pointer already and
passing the address of Map is passing a double pointer, thus the
conflict. You can verify this if other calls to Vect_close exist.
Otherwise, I still think it is safe to simply remove the "&" from Map.
Note this also applies to the second error. Another thing you could do
is check the code in Vect_close to see how Map is used. If it is used as
a single pointer then you can get rid of the "&".

Bingo. It was a typo, I have fixed it.

> The struct "<unnamed>" has no field "_shortbuf".
>
> while (match == 0 && Closet->dig_fp->_shortbuf[1]) /* try to upgrade
> in 5/2000 */
> ^
Ahh! This one happened to me as well. There are #ifdef's in place
already for this line in the code. In the code they check for a struct
member called _cnt for SGI, and _bf._size for CYGWIN and FreeBSD. Check
the file /usr/include/stdio.h to see if either of these members are
inside the FILE structure. If it is there, then add the appropriate
"defined (cray)" check (just guessing on the cray part, you will need to
verify the proper variable name) in the source code. If there is no
match in the FILE struct, then send the FILE struct details to me and I
will see if I can determine the proper member to check. It may be the
same as the SGI line since SGI owned (or still does own) Cray.

Yep. I have added CRAY to _cnt (like SGI). Now this one compiles, too.

> "binfer.l":line 13: Error: Missing translation value
> Make: "lex binfer.l": Error code 1
>
> -> looks like a problem with "%option lex-compat"

No idea with this one.

Hello lex-professionals! Any ideas? This is the last bug to be fixed
on CRAY. All other basic modules compile.

Thanks to all who have helped here!

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hi James,

On Sun, Sep 24, 2000 at 11:15:05PM +1100, James Cameron wrote:

On Tue, Sep 19, 2000 at 05:34:35PM +0100, Markus Neteler wrote:
> On Tue, Sep 19, 2000 at 05:36:00PM +0200, Bernhard Reiter wrote:
> > Even when compatible with C standards,
> > there can be significant differences.
> Yes, very true. But I have no admin rights there... So I will have
> to live with this compiler currently.
> > What version of make are you using?
> > (It might be an idea to build gnu make first.)
> It is a CRAY make. As only the libes/digitizer/OBJ*/make.rules fails
> but all others are o.k. it might be a problem in
> libes/digitizer/OBJ*/make.rules (only I can't see it).

You have no admin rights, but you have shell and disk space? If so,
install gcc and make in your own home directory ...

[...]

Then I'd remake make with gcc. :wink:

thanks for your help. But :slight_smile:
the libes/digitizer/ directory is the *only* directory causing such
problem. Therefore I think it is a bug which should be fixed.
The entire src/ directories are compiled now.

Currently I am jumping into the G3D stuff encountering further
bugs. It seems that the CRAY compiler is nice to find them as
gcc is more tolerant (at least it prevents us from further mails
of other users later):

src/libes/g3d:
        cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass/src/include -c
filecompare.c -o OBJ.alpha-cray-unicosmk2.0.4.X/filecompare.o
CC-167 cc: ERROR File = filecompare.c, Line = 25
  Argument of type "float *" is incompatible with parameter of type
"caddr_t".

    xdrmem_create (&xdrEncodeStream, xdrf, 4, XDR_ENCODE);
                                     ^

CC-167 cc: ERROR File = filecompare.c, Line = 46
  Argument of type "double *" is incompatible with parameter of type
"caddr_t".

    xdrmem_create (&xdrEncodeStream, xdrd, 8, XDR_ENCODE);
                                     ^
On Linux I have:
grep caddr_t /usr/include/rpc/xdr.h
        bool_t (*x_getbytes) __PMT ((XDR *__xdrs, caddr_t __addr,
    caddr_t x_public; /* users' data */
    caddr_t x_private; /* pointer to private data */
    caddr_t x_base; /* private used for position info */
* bool_t (*xdrproc_t)(XDR *, caddr_t *);
* caddr_t addr;
extern bool_t xdr_array __P ((XDR * _xdrs, caddr_t *__addrp, u_int *__sizep,
extern bool_t xdr_opaque __P ((XDR *__xdrs, caddr_t __cp, u_int __cnt));
extern bool_t xdr_reference __P ((XDR *__xdrs, caddr_t *__xpp, u_int __size,
extern void xdrmem_create __P ((XDR *__xdrs, __const caddr_t __addr,
                                u_int __recvsize, caddr_t __tcp_handle,

On CRAY I have:
grep caddr_t /usr/include/rpc/xdr.h
* bool_t (*xdrproc_t)(XDR *, caddr_t *);
        caddr_t x_public; /* users' data */
        caddr_t x_private; /* pointer to private data */
        caddr_t x_base; /* private used for position info */
* caddr_t addr;
extern bool_t xdr_array __((XDR *_Xdrs, caddr_t *_Addrp, u_int *_Sizep,
extern bool_t xdr_opaque __((XDR *_Xdrs, caddr_t _Cp, u_int _Cnt));
extern bool_t xdr_reference __((XDR *_Xdrs, caddr_t *_Pp, u_int _Size,
extern void xdrmem_create __((XDR *_Xdrs, caddr_t _Addr, u_int _Size,

As this is pretty complex (for me), I would be glad to receive
an advice.

I hope it's not too annoying to post these problems here. If so, I
will stop it. Just complain.

Thanks again

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Markus,

The gcc compiler can find the warnings with the -Wall
option. Plus, you can use the -pedantic option which
causes the compile to fail if the types do not match.

John Huddleston

----- Original Message -----
From: Markus Neteler <neteler@geog.uni-hannover.de>
To: <grass5@geog.uni-hannover.de>
Sent: Monday, September 25, 2000 10:49 AM
Subject: Re: [GRASS5] CRAY T3E compile errors

Hi James,

On Sun, Sep 24, 2000 at 11:15:05PM +1100, James Cameron wrote:
> On Tue, Sep 19, 2000 at 05:34:35PM +0100, Markus Neteler wrote:
> > On Tue, Sep 19, 2000 at 05:36:00PM +0200, Bernhard Reiter wrote:
> > > Even when compatible with C standards,
> > > there can be significant differences.
> > Yes, very true. But I have no admin rights there... So I will have
> > to live with this compiler currently.
> > > What version of make are you using?
> > > (It might be an idea to build gnu make first.)
> > It is a CRAY make. As only the libes/digitizer/OBJ*/make.rules fails
> > but all others are o.k. it might be a problem in
> > libes/digitizer/OBJ*/make.rules (only I can't see it).
>
> You have no admin rights, but you have shell and disk space? If so,
> install gcc and make in your own home directory ...
[...]
> Then I'd remake make with gcc. :wink:

thanks for your help. But :slight_smile:
the libes/digitizer/ directory is the *only* directory causing such
problem. Therefore I think it is a bug which should be fixed.
The entire src/ directories are compiled now.

Currently I am jumping into the G3D stuff encountering further
bugs. It seems that the CRAY compiler is nice to find them as
gcc is more tolerant (at least it prevents us from further mails
of other users later):

src/libes/g3d:
        cc -g -I/home/t3e/fsn/nhdc/nhdcmark/grass/src/include -c
filecompare.c -o OBJ.alpha-cray-unicosmk2.0.4.X/filecompare.o
CC-167 cc: ERROR File = filecompare.c, Line = 25
  Argument of type "float *" is incompatible with parameter of type
"caddr_t".

    xdrmem_create (&xdrEncodeStream, xdrf, 4, XDR_ENCODE);
                                     ^

CC-167 cc: ERROR File = filecompare.c, Line = 46
  Argument of type "double *" is incompatible with parameter of type
"caddr_t".

    xdrmem_create (&xdrEncodeStream, xdrd, 8, XDR_ENCODE);
                                     ^
On Linux I have:
grep caddr_t /usr/include/rpc/xdr.h
        bool_t (*x_getbytes) __PMT ((XDR *__xdrs, caddr_t __addr,
    caddr_t x_public; /* users' data */
    caddr_t x_private; /* pointer to private data */
    caddr_t x_base; /* private used for position info */
* bool_t (*xdrproc_t)(XDR *, caddr_t *);
* caddr_t addr;
extern bool_t xdr_array __P ((XDR * _xdrs, caddr_t *__addrp, u_int

*__sizep,

extern bool_t xdr_opaque __P ((XDR *__xdrs, caddr_t __cp, u_int __cnt));
extern bool_t xdr_reference __P ((XDR *__xdrs, caddr_t *__xpp, u_int

__size,

extern void xdrmem_create __P ((XDR *__xdrs, __const caddr_t __addr,
                                u_int __recvsize, caddr_t __tcp_handle,

On CRAY I have:
grep caddr_t /usr/include/rpc/xdr.h
* bool_t (*xdrproc_t)(XDR *, caddr_t *);
        caddr_t x_public; /* users' data */
        caddr_t x_private; /* pointer to private data */
        caddr_t x_base; /* private used for position info

*/

* caddr_t addr;
extern bool_t xdr_array __((XDR *_Xdrs, caddr_t *_Addrp, u_int *_Sizep,
extern bool_t xdr_opaque __((XDR *_Xdrs, caddr_t _Cp, u_int _Cnt));
extern bool_t xdr_reference __((XDR *_Xdrs, caddr_t *_Pp, u_int _Size,
extern void xdrmem_create __((XDR *_Xdrs, caddr_t _Addr, u_int _Size,

As this is pretty complex (for me), I would be glad to receive
an advice.

I hope it's not too annoying to post these problems here. If so, I
will stop it. Just complain.

Thanks again

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write

to:

minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hi Markus

Markus Neteler wrote:

  Argument of type "float *" is incompatible with parameter of type
"caddr_t".

    xdrmem_create (&xdrEncodeStream, xdrf, 4, XDR_ENCODE);
                                     ^

  Argument of type "double *" is incompatible with parameter of type
"caddr_t".

    xdrmem_create (&xdrEncodeStream, xdrd, 8, XDR_ENCODE);

It should be safe to cast the xdrf and xdrd variables to caddr_t. The
man page for the xdrmem_create function indicates that it is basically a
memory allocation function. Thus the xdrf and xdrd pointers point to the
new memory. Therefore, the cast should not only be safe but required in
my mind.

Talk to you later.

--
Sincerely,

Jazzman (a.k.a. Justin Hickey) e-mail: jhickey@hpcc.nectec.or.th
High Performance Computing Center
National Electronics and Computer Technology Center (NECTEC)
Bangkok, Thailand

People who think they know everything are very irritating to those
of us who do. ---Anonymous

Jazz and Trek Rule!!!

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'