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

Re: 971124: netcdf-3.3.1



>From: Rob Folkert <address@hidden>
>Subject: netcdf-3.3.1
>Organization: NCAR/CGD
>Keywords: 199711242310.QAA25664 decoders netCDF
>

> - -1-my system is uname -a
> IRIX64 winterpark 6.2 03131016 IP25
>
> - -2- VERSION
> 3.3.1

> Making `test' in directory /fs/cgd/home0/folkert/netcdf-3.3.1/src/libsrc
>
>       c89 -c -O -I.  -DNDEBUG t_nc.c
>       ar cru   libnetcdf.a attr.o  dim.o  error.o  libvers.o  nc.o  ncio.o
 ncx.o  putget.o  string.o  v1hpg.o  v2i.o  var.o
>       : libnetcdf.a
>       c89 -o t_nc -O  t_nc.o -L. -lnetcdf
>       ./t_nc
> *** Error code 13 (bu21)
> *** Error code 1 (bu21)
> *** Error code 1 (bu21)

Rob,

This is a known bug, first reported by Ethan Alpert.
It appears on IRIX 6 when the build directory in NFS
mounted. It is in our 'support email archive', but has not
yet appeared on the 'known bugs' web page. (Sorry.)

Attached find a patch to src/libsrc/posixio.c.

Alternatively, you can grab the lastest code from
ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-3.4atd.tar.
This is not fully released because we are still testing it
on 'exotic' platforms like NEC SX4. It works fine on my
6.2 SGI and has the patch already applied, along with other
improvements.

-glenn

Index: posixio.c
===================================================================
RCS file: /upc/share/CVS/netcdf-3/libsrc/posixio.c,v
retrieving revision 1.59
retrieving revision 1.58
diff -c -r1.59 -r1.58
*** posixio.c   1997/09/23 18:55:19     1.59
--- posixio.c   1997/07/19 22:14:21     1.58
***************
*** 2,8 ****
   *    Copyright 1996, University Corporation for Atmospheric Research
   *    See netcdf/COPYRIGHT file for copying and redistribution conditions.
   */
! /* $Id: posixio.c,v 1.59 1997/09/23 18:55:19 davis Exp $ */
  
  #include "ncconfig.h"
  #include <assert.h>
--- 2,8 ----
   *    Copyright 1996, University Corporation for Atmospheric Research
   *    See netcdf/COPYRIGHT file for copying and redistribution conditions.
   */
! /* $Id: posixio.c,v 1.58 1997/07/19 22:14:21 davis Exp $ */
  
  #include "ncconfig.h"
  #include <assert.h>
***************
*** 738,751 ****
  #define NCIO_MINBLOCKSIZE 256
  #define NCIO_MAXBLOCKSIZE 268435456 /* sanity check, about X_SIZE_T_MAX/8 */
  
- #ifdef S_IRUSR
- #define NC_DEFAULT_CREAT_MODE \
-         (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) /* 0666 */
- 
- #else
- #define NC_DEFAULT_CREAT_MODE 0666
- #endif
- 
  int
  ncio_create(const char *path, int ioflags,
        size_t initialsz,
--- 738,743 ----
***************
*** 753,759 ****
        ncio **nciopp, void **const igetvpp)
  {
        ncio *nciop;
!       int oflags = (O_RDWR|O_CREAT);
        int fd;
        int status;
  
--- 745,751 ----
        ncio **nciopp, void **const igetvpp)
  {
        ncio *nciop;
!       int oflags = (O_RDWR|O_CREAT|O_TRUNC);
        int fd;
        int status;
  
***************
*** 771,786 ****
  
        if(fIsSet(ioflags, NC_NOCLOBBER))
                fSet(oflags, O_EXCL);
-       else
-               fSet(oflags, O_TRUNC);
  #ifdef O_BINARY
        fSet(oflags, O_BINARY);
  #endif
  #ifdef vms
!       fd = open(path, oflags, NC_DEFAULT_CREAT_MODE, "ctx=stm");
  #else
        /* Should we mess with the mode based on NC_SHARE ?? */
!       fd = open(path, oflags, NC_DEFAULT_CREAT_MODE);
  #endif
  #if 0
        (void) fprintf(stderr, "ncio_create(): path=\"%s\"\n", path);
--- 763,776 ----
  
        if(fIsSet(ioflags, NC_NOCLOBBER))
                fSet(oflags, O_EXCL);
  #ifdef O_BINARY
        fSet(oflags, O_BINARY);
  #endif
  #ifdef vms
!       fd = open(path, oflags, 0666, "ctx=stm");
  #else
        /* Should we mess with the mode based on NC_SHARE ?? */
!       fd = open(path, oflags, 0666);
  #endif
  #if 0
        (void) fprintf(stderr, "ncio_create(): path=\"%s\"\n", path);