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

Re: 961002: problem with ncdump (fwd)



>From: Patrick Guio <address@hidden>
>Subject: problem with ncdump (fwd)
>Organization: .
>Keywords: 199610020843.AA13593

Patrick,

> I have well received your patch. I have unpatched it using the command
> patch vardata.c vardata..c.patch
> I have recompiled it on DEC Alpha/DU4.0, the new ncdump works fine by
> now. On SGI the file compiled too but the ncdump still behave the same
> way as earlier with the _'s.

The patched version works on our 64-bit SGI when we use the compiler
option

  -OPT:IEEE_comparisons

This works even if -O is also used.

On a 32-bit SGI, it works when we use the compiler options

  -n32 -OPT:IEEE_comparisons

On an Alpha/OSF1, it works with the compiler option

  -ieee

or any stricter ieee option.

Hence I think if we can make our configure script set these options in
the Makefile for ncdump/vardata.c, the patch will work on all the
platforms we have access to.  I haven't found any alternative portable
way to determine whether a floating-point value is an IEEE infinity.

> I have a few other remarks concerning the configure run.
> On DEC Alpha/DU4.0, the default c++ compiler choosen by configure is
> cxx. We moved from DU3.0 to 4.0 a few weeks ago, cxx used to work fine
> to compile the cxx directory, but now I cannot manage to compile the
> file ncvalues.cc. Here how it looks like :
> 
> mitra.phys.uit.no % make cxx/all
> 
> making `all' in directory /usr/usersB/eiscat/netcdf/netcdf-2.4.3/src/cxx
> 
> cxx -c  -I../libsrc   netcdf.cc
> cxx -c  -I../libsrc   ncvalues.cc
> cxx: Error: ncvalues.cc, line 156: In this statement, the argument list
> "ostrstream(s,sizeof(s))<<the_values[n]" matches no "ostream::operator
> <<".
> as_string_implement(short)
> ^
> cxx: Error: ncvalues.cc, line 157: In this statement, the argument list
> "ostrstream(s,sizeof(s))<<the_values[n]" matches no "ostream::operator
> <<".
> as_string_implement(nclong)
> ^
> cxx: Error: ncvalues.cc, line 158: In this statement, the argument list
> "ostrstream(s,sizeof(s))<<the_values[n]" matches no "ostream::operator
> <<".
> as_string_implement(float)
> ^
> cxx: Error: ncvalues.cc, line 159: In this statement, the argument list
> "ostrstream(s,sizeof(s))<<the_values[n]" matches no "ostream::operator
> <<".
> as_string_implement(double)
> ^

> If I use the GNU c++ compiler (g++), I have no problem to compile. So I
> was wondering whether you had been testing the package under DU4.0 with
> cxx or g++ ?

We have been using g++, because we don't have a license for cxx.  The
above messages look like a compiler error to me.

> On SGI running the configure set the ranlib variable to
> s%@RANLIB@%ranlib%g
> So I have to rerun the config.status with the following change
> s%@RANLIB@%ar ts%g
> in order to make all

Our R8000 SGI running IRIX64 6.2 doesn't have a ranlib either, but the
2.4.3 distribution seemed to build OK on it.

I'm forwarding this problem to Steve Emmerson, our configure expert, to
see if he can reproduce the problem or figure out if we need to change
something here.

> I think that's all for now !

Thanks for the bug reports!  

--Russ

_____________________________________________________________________

Russ Rew                                         UCAR Unidata Program
address@hidden                     http://www.unidata.ucar.edu