NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.

Re: [netcdfgroup] thread-safe patch for netcdf?

Maybe this is the message and the person you were referring to...  (attached 
message)

GIF image

--- Begin Message ---
Hi,
I would like to submit a couple of patches to fix issue I found in
netcdf-4.1.1. Namely:
 * fix building with openmpi-1.4.3[1]
 * fix implicit function declaration
 * fix parallel build failure for fortran part[2]
I hope you'll accept it before final 4.1.2 release.
Best regards,
Kacper Kowalik

[1] http://bugs.gentoo.org/show_bug.cgi?id=347893
[2] http://bugs.gentoo.org/show_bug.cgi?id=296174
Fix implicit function declarations

--- libsrc/nc.c
+++ libsrc/nc.c
@@ -15,7 +15,7 @@
 #  include <mpp/shmem.h>
 #  include <intrinsics.h>
 #endif
-#ifdef HAVE_UNISTD
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 
--- fortran/fort-nc4.c
+++ fortran/fort-nc4.c
@@ -30,6 +30,14 @@
 /* These are in libsrc4/nc4vars.c... */
 int nc_inq_var_chunking_ints(int ncid, int varid, int *contiguousp, int 
*chunksizesp);
 int nc_def_var_chunking_ints(int ncid, int varid, int contiguous, int 
*chunksizes);
+int nc_set_var_chunk_cache_ints(int ncid, int varid, int size, int nelems, int 
preemption);
+int nc_get_var_chunk_cache_ints(int ncid, int varid, int *sizep, int *nelemsp, 
int *preemptionp);
+
+/* These are in libsrc4/nc4file.c... */
+int nc_set_chunk_cache_ints(int size, int nelems, int preemption);
+int nc_get_chunk_cache_ints(int *sizep, int *nelemsp, int *preemptionp);
+int nc_create_par_fortran(const char *path, int cmode, int comm, int info, int 
*ncidp);
+int nc_open_par_fortran(const char *path, int mode, int comm, int info, int 
*ncidp);
 
 FCALLSCFUN5(NF_INT, nc_create_par_fortran, NF_CREATE_PAR, nf_create_par,
            STRING, FINT2CINT, FINT2CINT, FINT2CINT, PCINT2FINT)
--- libncdap3/oc/daplex.c
+++ libncdap3/oc/daplex.c
@@ -86,6 +86,8 @@
 SCAN_PROG
 };
 
+int daperror(DAPparsestate* state, const char* msg);
+
 /**************************************************/
 
 int
--- libncdap3/oc/ocinternal.c
+++ libncdap3/oc/ocinternal.c
@@ -37,6 +37,8 @@
 #endif
 
 extern OCnode* makeunlimiteddimension(void);
+int occurlopen(CURL** curlp);
+void occurlclose(CURL* curl);
 
 #ifdef WIN32
 #include <fcntl.h>
--- libncdap3/oc/dapparse.c
+++ libncdap3/oc/dapparse.c
@@ -11,6 +11,7 @@
 static OCtype octypefor(Object etype);
 static char* scopeduplicates(OClist* list);
 static int check_int32(char* val, long* value);
+void setwordchars(DAPlexstate* lexstate, int kind);
 
 /****************************************************/
 
--- libncdap3/ncdap3.c
+++ libncdap3/ncdap3.c
@@ -4,6 +4,7 @@
  *   $Header: 
/var/cvsroot/gentoo-x86/sci-libs/netcdf/files/netcdf-4.1.1-implicits.patch,v 
1.2 2010/12/05 11:38:45 xarthisius Exp $
  *********************************************************************/
 #include "config.h"
+#include "netcdf3.h"
 #include "ncdap3.h"
 #include "dispatch3.h"
 #include "dapdispatch3.h"
--- libncdap3/oc/dapparselex.h
+++ libncdap3/oc/dapparselex.h
@@ -88,4 +88,5 @@
 extern void daplexinit(char* input, DAPlexstate** lexstatep);
 extern void daplexcleanup(DAPlexstate** lexstatep);
 
+void dassetup(DAPparsestate* state);
 #endif /*DAPPARSELEX_H*/
Ensure hdf5.h is included before netcdf.h to avoid build error with openmpi >= 
1.4.1

--- libsrc4/nc4internal.h
+++ libsrc4/nc4internal.h
@@ -8,13 +8,13 @@
 
 #include <config.h>
 #include <stdio.h>
+#include <hdf5.h>
 #include "error.h"
 #include <stdlib.h>
 #include <ctype.h>
 #include <stdarg.h>
 #include <string.h>
 #include "netcdf3.h"
-#include <hdf5.h>
 #include <netcdf.h>
 
 #ifdef USE_PARALLEL
--- libncdap4/ncdap4.h
+++ libncdap4/ncdap4.h
@@ -12,9 +12,9 @@
 #include <stdio.h>
 
 #include "config.h"
+#include "nc4internal.h"
 #include "netcdf.h"
 #include "nc.h"
-#include "nc4internal.h"
 #include "ncdap.h"
 #include "getvara.h"
 #include "constraints3.h"
Avoid building fortran modules twice, just install them instead.

https://bugs.gentoo.org/296174

--- netcdf-4.1.1/f90/Makefile.am
+++ netcdf-4.1.1/f90/Makefile.am
@@ -101,17 +101,23 @@
 # Some fortran compilers change the file names of .mod files to all
 # uppercase. Just to be special.
 if UPPER_CASE_MOD
-nodist_include_HEADERS = TYPESIZES.mod NETCDF.mod
-TYPESIZES.mod: typeSizes.o
-NETCDF.mod: $(NETCDF_O)
-BUILT_SOURCES = TYPESIZES.mod
+NETCDF_MODULES = TYPESIZES.mod NETCDF.mod
 else
-nodist_include_HEADERS = typesizes.mod netcdf.mod 
-typesizes.mod: typeSizes.o
-netcdf.mod: $(NETCDF_O)
-BUILT_SOURCES = typesizes.mod
+NETCDF_MODULES = typesizes.mod netcdf.mod 
 endif
 
+install-data-local:
+       test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
+       @list='$(NETCDF_MODULES)'; test -n "$(includedir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
+       done
+
 # This is what we are building: a convenience library of F90 functions.
 noinst_LTLIBRARIES = libnetcdff90.la
 

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
netcdfgroup mailing list
netcdfgroup@xxxxxxxxxxxxxxxx
For list information or to unsubscribe,  visit: 
http://www.unidata.ucar.edu/mailing_lists/ 

--- End Message ---
  • 2012 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdfgroup archives: