[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
20020612: udunits library on a VPP 5000 (32 bit mode)
- Subject: 20020612: udunits library on a VPP 5000 (32 bit mode)
- Date: Wed, 12 Jun 2002 09:05:19 -0600
Gottfried,
> To: address@hidden
> From: Gottfried Necker <address@hidden>
> Subject: udunits library on a VPP 5000 (32 bit mode)
> Organization: ?
> Keywords: 200206120909.g5C99PJ17848 UDUNITS VPP 5000
The above message contained the following:
> Hello,
>
> I tried to compile the udunits library on a VPP 5000 in 32 bit mode. I
> got some very strange errors during the compilation. I must admit that
> I don't really need the udunits library on this system, but I am
> curious what caused the problems.
>
> $ uname -a
> UNIX_System_V hikvpp-00 4.1 ES 3 5000 UXP/V
> $ less VERSION
> 1.11.7
> $ type cc
> cc is /usr/lang/bin/cc
...
> making `all' in directory
> /tmp_mnt/hlrfs/home2/inr/necker/c/udunits-1.11.7/src/lib
>
> gmake[1]: Entering directory
> `/tmp_mnt/hlrfs/home2/inr/necker/c/udunits-1.11.7/src/lib'
> ln -s ../port/misc/udalloc.c .
> ln -s ../port/misc/udalloc.h .
> cc -c -O -KA32 -I../port/misc -I../port/cfortran
> -DUT_DEFAULT_PATH='"/hlrfs/home2/inr/necker/etc/udunits.dat"' -DNDEBUG
> -DsunFortran utlib.c
> "utlib.c", line 939: warning: assignment from `int' to `char *': operator `='
Line 939 in version 1.11.7 of file utlib.c is the following:
if ((cp = strchr(linebuf, '#')) != NULL)
Apparently, the compiler thinks that the strchr(...) function returns an
integer. That function should be correctly declared to return a pointer
to a char in either ../port/misc/string.h or in the compiler's
<string.h>. See if it is so declared.
> "utlib.c", line 958: error: invalid type combination of `int' and `int':
> operator `[]'
Line 958 is
strncpy(name, cp, n)[n] = 0;
Again, the compiler apparently doesn't have a valid declaration for the
strncpy(...) function. Check the same two header files.
Regards,
Steve Emmerson <http://www.unidata.ucar.edu>