Unidata - To provide the data services, tools, and cyberinfrastructure leadership that advance Earth system science, enhance educational opportunities, and broaden participation. Unidata
         
  advanced  
 

Re: [netcdfgroup] please try out the netcdf daily snapshot for opendap, hdf4-reading, hdf5-reading, szip compression, etc.

On 10/18/09 5:14 AM, Ed Hartnett said:

>Now would be a great time for our dedicated user community to download
>the daily snapshot, let us know that it builds cleanly

Ed,

I only really use NetCDF as a dependency of another library.  So my
testing has been limited to compilation issues.  Many that I reported
previously have been fixed (some not).  Here's what I still see building
on Mac OS X 10.6 with clang:

export CC=/Developer/usr/bin/clang
export CXX=/Developer/usr/bin/llvm-gcc-4.2
export CFLAGS="-Wall -Wextra -arch x86_64"
export CXXFLAGS="-Wall -Wextra -arch x86_64"


(1) Easy to fix:

libtool: compile:  /Developer/usr/bin/clang -DHAVE_CONFIG_H -I. -I.. -
I../fortran -arch x86_64 -MT
utf8proc.lo -MD -MP -MF .deps/utf8proc.Tpo -c utf8proc.c -o utf8proc.o
warning: implicitly declaring C library function 'strlen' with type
'unsigned long (char const *)'
note: please include the header <string.h> or explicitly provide a
declaration for 'strlen'

(2) Lots of these:

cdfdata.c:321:2: warning: expression result unused [-Wunused-value]
        bbClear(memory);
        ^~~~~~~~~~~~~~~
./bytebuffer.h:61:42: note: instantiated from:
#define bbClear(bb) ((bb)?(bb)->length=0:0U)
                                         ^~
I've searched everywhere, and the result of bbClear is never used, so
the macro could be changed to avoid the warning, for example:

#define bbClear(bb) (void)((bb)?(bb)->length=0:0U)

(3) Trickier:

ncvalues.cpp: In member function 'virtual char NcValues_ncbyte::as_char
(long int) const':
ncvalues.cpp:81: warning: comparison is always false due to limited
range of data type

(4)

Not a compilation issue, but I couldn't hep but notice that the source
is riddled with the use of sprintf().  This function really should never
be used, see for example:

<http://developer.apple.com/mac/library/documentation/Security/
Conceptual/SecureCodingGuide/Articles/BufferOverflows.html#//apple_ref/
doc/uid/TP40002577>

Random example:

int field_exist(const char* file, const char *name)
{
  char msg[512];
  ...
  sprintf(msg, "field_exist: in opening file %s", file);

If the file's path is longer than ~500 chars?  :(

hth,

--
____________________________________________________________
Sean McBride, B. Eng                 sean@xxxxxxxxxxxxxxxxxx
Rogue Research                        www.rogue-research.com
Mac Software Developer              Montréal, Québec, Canada



 
 
  Contact Us     Site Map     Search     Terms and Conditions     Privacy Policy     Participation Policy
 
National Science Foundation (NSF) UCAR Community Programs   Unidata is a member of the UCAR Community Programs, is managed by the University Corporation for Atmospheric Research, and is sponsored by the National Science Foundation.
P.O. Box 3000     Boulder, CO 80307-3000 USA     Tel: 303-497-8643     Fax: 303-497-8690