summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/H5Dpublic.h4
-rw-r--r--src/H5Dscatgath.c6
-rw-r--r--src/H5FDstdio.c4
-rw-r--r--src/H5Opline.c13
-rw-r--r--src/H5public.h4
-rw-r--r--src/H5system.c180
-rw-r--r--src/H5win32defs.h10
-rw-r--r--src/Makefile.in2
8 files changed, 143 insertions, 80 deletions
diff --git a/src/H5Dpublic.h b/src/H5Dpublic.h
index 484b176..4309d64 100644
--- a/src/H5Dpublic.h
+++ b/src/H5Dpublic.h
@@ -108,7 +108,7 @@ typedef herr_t (*H5D_operator_t)(void *elem, hid_t type_id, unsigned ndim,
const hsize_t *point, void *operator_data);
/* Define the operator function pointer for H5Dscatter() */
-typedef herr_t (*H5D_scatter_func_t)(void **src_buf/*out*/,
+typedef herr_t (*H5D_scatter_func_t)(const void **src_buf/*out*/,
size_t *src_buf_bytes_used/*out*/,
void *op_data);
@@ -142,7 +142,7 @@ H5_DLL herr_t H5Dfill(const void *fill, hid_t fill_type, void *buf,
H5_DLL herr_t H5Dset_extent(hid_t dset_id, const hsize_t size[]);
H5_DLL herr_t H5Dscatter(H5D_scatter_func_t op, void *op_data, hid_t type_id,
hid_t dst_space_id, void *dst_buf);
-H5_DLL herr_t H5Dgather(hid_t src_space_id, void *src_buf, hid_t type_id,
+H5_DLL herr_t H5Dgather(hid_t src_space_id, const void *src_buf, hid_t type_id,
size_t dst_buf_size, void *dst_buf, H5D_gather_func_t op, void *op_data);
H5_DLL herr_t H5Ddebug(hid_t dset_id);
diff --git a/src/H5Dscatgath.c b/src/H5Dscatgath.c
index 60a8800..4b0846f 100644
--- a/src/H5Dscatgath.c
+++ b/src/H5Dscatgath.c
@@ -925,7 +925,7 @@ H5Dscatter(H5D_scatter_func_t op, void *op_data, hid_t type_id,
H5S_t *dst_space; /* Dataspace */
H5S_sel_iter_t iter; /* Selection iteration info*/
hbool_t iter_init = FALSE; /* Selection iteration info has been initialized */
- void *src_buf = NULL; /* Source (contiguous) data buffer */
+ const void *src_buf = NULL; /* Source (contiguous) data buffer */
size_t src_buf_nbytes = 0; /* Size of src_buf */
size_t type_size; /* Datatype element size */
hssize_t nelmts; /* Number of remaining elements in selection */
@@ -1018,8 +1018,8 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
-H5Dgather(hid_t src_space_id, void *src_buf, hid_t type_id, size_t dst_buf_size,
- void *dst_buf, H5D_gather_func_t op, void *op_data)
+H5Dgather(hid_t src_space_id, const void *src_buf, hid_t type_id,
+ size_t dst_buf_size, void *dst_buf, H5D_gather_func_t op, void *op_data)
{
H5T_t *type; /* Datatype */
H5S_t *src_space; /* Dataspace */
diff --git a/src/H5FDstdio.c b/src/H5FDstdio.c
index 8f4f7f0..64919ed 100644
--- a/src/H5FDstdio.c
+++ b/src/H5FDstdio.c
@@ -414,7 +414,11 @@ H5FD_stdio_open( const char *name, unsigned flags, hid_t fapl_id,
}
/* Get the file descriptor (needed for truncate and some Windows information) */
+#ifdef H5_HAVE_WIN32_API
+ file->fd = _fileno(file->fp);
+#else /* H5_HAVE_WIN32_API */
file->fd = fileno(file->fp);
+#endif /* H5_HAVE_WIN32_API */
if(file->fd < 0) {
free(file);
fclose(f);
diff --git a/src/H5Opline.c b/src/H5Opline.c
index 1a2baa0..0a0f12a 100644
--- a/src/H5Opline.c
+++ b/src/H5Opline.c
@@ -183,7 +183,7 @@ H5O_pline_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
else
filter->name = filter->_name;
- HDstrcpy(filter->name, (const char *)p);
+ HDstrncpy(filter->name, (const char *)p, actual_name_length);
p += name_length;
} /* end if */
@@ -375,12 +375,9 @@ H5O_pline_copy(const void *_src, void *_dst/*out*/)
/* Allocate space for the filter name, or use the internal buffer */
if(namelen > H5Z_COMMON_NAME_LEN) {
- dst->filter[i].name = (char *)H5MM_malloc(namelen);
+ dst->filter[i].name = (char *)H5MM_strdup(src->filter[i].name);
if(NULL == dst->filter[i].name)
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for filter name")
-
- /* Copy name */
- HDstrcpy(dst->filter[i].name, src->filter[i].name);
} /* end if */
else
dst->filter[i].name = dst->filter[i]._name;
@@ -464,7 +461,7 @@ H5O_pline_size(const H5F_t UNUSED *f, const void *mesg)
} /* end else */
ret_value += 2 + /*filter identification number */
- ((pline->version == H5O_PLINE_VERSION_1 || pline->filter[i].id >= H5Z_FILTER_RESERVED) ? 2 : 0) + /*name length */
+ (size_t)((pline->version == H5O_PLINE_VERSION_1 || pline->filter[i].id >= H5Z_FILTER_RESERVED) ? 2 : 0) + /*name length */
2 + /*flags */
2 + /*number of client data values */
(pline->version == H5O_PLINE_VERSION_1 ? (size_t)H5O_ALIGN_OLD(name_len) : name_len); /*length of the filter name */
@@ -633,7 +630,7 @@ H5O_pline_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *mesg, FILE *s
for(i = 0; i < pline->nused; i++) {
char name[32];
- sprintf(name, "Filter at position %u", (unsigned)i);
+ HDsnprintf(name, sizeof(name), "Filter at position %u", (unsigned)i);
HDfprintf(stream, "%*s%-*s\n", indent, "", fwidth, name);
HDfprintf(stream, "%*s%-*s 0x%04x\n", indent + 3, "", MAX(0, fwidth - 3),
"Filter identification:",
@@ -656,7 +653,7 @@ H5O_pline_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *mesg, FILE *s
for(j = 0; j < pline->filter[i].cd_nelmts; j++) {
char field_name[32];
- sprintf(field_name, "CD value %lu", (unsigned long)j);
+ HDsnprintf(field_name, sizeof(field_name), "CD value %lu", (unsigned long)j);
HDfprintf(stream, "%*s%-*s %u\n", indent + 6, "", MAX(0, fwidth - 6),
field_name,
pline->filter[i].cd_values[j]);
diff --git a/src/H5public.h b/src/H5public.h
index ad13851..9e05cc9 100644
--- a/src/H5public.h
+++ b/src/H5public.h
@@ -75,10 +75,10 @@ extern "C" {
/* Version numbers */
#define H5_VERS_MAJOR 1 /* For major interface/format changes */
#define H5_VERS_MINOR 9 /* For minor interface/format changes */
-#define H5_VERS_RELEASE 156 /* For tweaks, bug-fixes, or development */
+#define H5_VERS_RELEASE 161 /* For tweaks, bug-fixes, or development */
#define H5_VERS_SUBRELEASE "" /* For pre-releases like snap0 */
/* Empty string for real releases. */
-#define H5_VERS_INFO "HDF5 library version: 1.9.156" /* Full version string */
+#define H5_VERS_INFO "HDF5 library version: 1.9.161" /* Full version string */
#define H5check() H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR, \
H5_VERS_RELEASE)
diff --git a/src/H5system.c b/src/H5system.c
index a93a128..4280066 100644
--- a/src/H5system.c
+++ b/src/H5system.c
@@ -114,6 +114,7 @@ HDfprintf(FILE *stream, const char *fmt, ...)
char modifier[8];
int conv;
char *rest, format_templ[128];
+ int len;
const char *s;
va_list ap;
@@ -138,7 +139,7 @@ HDfprintf(FILE *stream, const char *fmt, ...)
s = fmt + 1;
/* Flags */
- while(HDstrchr ("-+ #", *s)) {
+ while(HDstrchr("-+ #", *s)) {
switch(*s) {
case '-':
leftjust = 1;
@@ -155,6 +156,9 @@ HDfprintf(FILE *stream, const char *fmt, ...)
case '#':
prefix = 1;
break;
+
+ default:
+ HDassert(0 && "Unknown format flag");
} /* end switch */ /*lint !e744 Switch statement doesn't _need_ default */
s++;
} /* end while */
@@ -189,7 +193,7 @@ HDfprintf(FILE *stream, const char *fmt, ...)
}
/* Extra type modifiers */
- if(HDstrchr("ZHhlqLI", *s)) {
+ if(HDstrchr("zZHhlqLI", *s)) {
switch(*s) {
/*lint --e{506} Don't issue warnings about constant value booleans */
/*lint --e{774} Don't issue warnings boolean within 'if' always evaluates false/true */
@@ -203,6 +207,7 @@ HDfprintf(FILE *stream, const char *fmt, ...)
break;
case 'Z':
+ case 'z':
if(sizeof(size_t) < sizeof(long))
modifier[0] = '\0';
else if(sizeof(size_t) == sizeof(long))
@@ -242,16 +247,17 @@ HDfprintf(FILE *stream, const char *fmt, ...)
conv = *s++;
/* Create the format template */
- sprintf(format_templ, "%%%s%s%s%s%s", (leftjust ? "-" : ""),
+ len = 0;
+ len += HDsnprintf(format_templ, (sizeof(format_templ) - (size_t)(len + 1)), "%%%s%s%s%s%s", (leftjust ? "-" : ""),
(plussign ? "+" : ""), (ldspace ? " " : ""),
(prefix ? "#" : ""), (zerofill ? "0" : ""));
if(fwidth > 0)
- sprintf(format_templ+HDstrlen(format_templ), "%d", fwidth);
+ len += HDsnprintf(format_templ + len, (sizeof(format_templ) - (size_t)(len + 1)), "%d", fwidth);
if(prec > 0)
- sprintf(format_templ+HDstrlen(format_templ), ".%d", prec);
+ len += HDsnprintf(format_templ + len, (sizeof(format_templ) - (size_t)(len + 1)), ".%d", prec);
if(*modifier)
- sprintf(format_templ+HDstrlen(format_templ), "%s", modifier);
- sprintf (format_templ+HDstrlen(format_templ), "%c", conv);
+ len += HDsnprintf(format_templ + len, (sizeof(format_templ) - (size_t)(len + 1)), "%s", modifier);
+ HDsnprintf(format_templ + len, (sizeof(format_templ) - (size_t)(len + 1)), "%c", conv);
/* Conversion */
@@ -323,31 +329,42 @@ HDfprintf(FILE *stream, const char *fmt, ...)
haddr_t x = va_arg (ap, haddr_t); /*lint !e732 Loss of sign not really occuring */
if(H5F_addr_defined(x)) {
- sprintf(format_templ, "%%%s%s%s%s%s",
+ len = 0;
+ len += HDsnprintf(format_templ, (sizeof(format_templ) - (size_t)(len + 1)), "%%%s%s%s%s%s",
(leftjust ? "-" : ""), (plussign ? "+" : ""),
(ldspace ? " " : ""), (prefix ? "#" : ""),
(zerofill ? "0" : ""));
if(fwidth > 0)
- sprintf(format_templ + HDstrlen(format_templ), "%d", fwidth);
+ len += HDsnprintf(format_templ + len, (sizeof(format_templ) - (size_t)(len + 1)), "%d", fwidth);
/*lint --e{506} Don't issue warnings about constant value booleans */
/*lint --e{774} Don't issue warnings boolean within 'if' always evaluates false/true */
- if(sizeof(x) == H5_SIZEOF_INT)
- HDstrcat(format_templ, "u");
- else if(sizeof(x) == H5_SIZEOF_LONG)
- HDstrcat(format_templ, "lu");
+ if(sizeof(x) == H5_SIZEOF_INT) {
+ HDstrncat(format_templ, "u", (sizeof(format_templ) - (size_t)(len + 1)));
+ len++;
+ } /* end if */
+ else if(sizeof(x) == H5_SIZEOF_LONG) {
+ HDstrncat(format_templ, "lu", (sizeof(format_templ) - (size_t)(len + 1)));
+ len++;
+ } /* end if */
else if(sizeof(x) == H5_SIZEOF_LONG_LONG) {
- HDstrcat(format_templ, H5_PRINTF_LL_WIDTH);
- HDstrcat(format_templ, "u");
+ HDstrncat(format_templ, H5_PRINTF_LL_WIDTH, (sizeof(format_templ) - (size_t)(len + 1)));
+ len += (int)sizeof(H5_PRINTF_LL_WIDTH);
+ HDstrncat(format_templ, "u", (sizeof(format_templ) - (size_t)(len + 1)));
+ len++;
}
n = fprintf(stream, format_templ, x);
} else {
- HDstrcpy(format_templ, "%");
- if(leftjust)
- HDstrcat(format_templ, "-");
+ len = 0;
+ HDstrncpy(format_templ, "%", (sizeof(format_templ) - (size_t)(len + 1)));
+ len++;
+ if(leftjust) {
+ HDstrncat(format_templ, "-", (sizeof(format_templ) - (size_t)(len + 1)));
+ len++;
+ } /* end if */
if(fwidth)
- sprintf(format_templ+HDstrlen(format_templ), "%d", fwidth);
- HDstrcat(format_templ, "s");
+ len += HDsnprintf(format_templ + len, (sizeof(format_templ) - (size_t)(len + 1)), "%d", fwidth);
+ HDstrncat(format_templ, "s", (sizeof(format_templ) - (size_t)(len + 1)));
fprintf(stream, format_templ, "UNDEF");
}
}
@@ -456,8 +473,9 @@ HDstrtoll(const char *s, const char **rest, int base)
errno = 0;
if (!s || (base && (base<2 || base>36))) {
- if (rest) *rest = s;
- return 0;
+ if (rest)
+ *rest = s;
+ return 0;
}
/* Skip white space */
@@ -465,21 +483,21 @@ HDstrtoll(const char *s, const char **rest, int base)
/* Optional minus or plus sign */
if ('+'==*s) {
- s++;
+ s++;
} else if ('-'==*s) {
- sign = -1;
- s++;
+ sign = -1;
+ s++;
}
/* Zero base prefix */
if (0==base && '0'==*s && ('x'==s[1] || 'X'==s[1])) {
- base = 16;
- s += 2;
+ base = 16;
+ s += 2;
} else if (0==base && '0'==*s) {
- base = 8;
- s++;
+ base = 8;
+ s++;
} else if (0==base) {
- base = 10;
+ base = 10;
}
/* Digits */
@@ -487,34 +505,39 @@ HDstrtoll(const char *s, const char **rest, int base)
(base>10 && ((*s>='0' && *s<='9') ||
(*s>='a' && *s<'a'+base-10) ||
(*s>='A' && *s<'A'+base-10)))) {
- if (!overflow) {
- int64_t digit = 0;
- if (*s>='0' && *s<='9') digit = *s - '0';
- else if (*s>='a' && *s<='z') digit = (*s-'a')+10;
- else digit = (*s-'A')+10;
-
- if (acc*base+digit < acc) {
- overflow = TRUE;
- } else {
- acc = acc*base + digit;
- }
- }
- s++;
+ if (!overflow) {
+ int64_t digit = 0;
+
+ if (*s>='0' && *s<='9')
+ digit = *s - '0';
+ else if (*s>='a' && *s<='z')
+ digit = (*s-'a')+10;
+ else
+ digit = (*s-'A')+10;
+
+ if (acc*base+digit < acc) {
+ overflow = TRUE;
+ } else {
+ acc = acc*base + digit;
+ }
+ }
+ s++;
}
/* Overflow */
if (overflow) {
- if (sign>0) {
- acc = ((uint64_t)1<<(8*sizeof(int64_t)-1))-1;
- } else {
- acc = (int64_t)((uint64_t)1<<(8*sizeof(int64_t)-1));
- }
- errno = ERANGE;
+ if (sign>0) {
+ acc = ((uint64_t)1<<(8*sizeof(int64_t)-1))-1;
+ } else {
+ acc = (int64_t)((uint64_t)1<<(8*sizeof(int64_t)-1));
+ }
+ errno = ERANGE;
}
/* Return values */
acc *= sign;
- if (rest) *rest = s;
+ if (rest)
+ *rest = s;
return acc;
} /* end HDstrtoll() */
@@ -575,12 +598,13 @@ int
HDremove_all(const char *fname)
{
int ret_value = -1;
+ size_t fname_len;
char *_fname;
- _fname = (char *)H5MM_malloc(HDstrlen(fname) + 3); /* to accomodate ;* and null */
+ fname_len = HDstrlen(fname) + 3; /* to accomodate ";*" and null terminator */
+ _fname = (char *)H5MM_malloc(fname_len);
if(_fname) {
- HDstrcpy(_fname, fname);
- HDstrcat(_fname,";*");
+ HDsnprintf(_fname, fname_len, "%s;*", fname);
/* Do not use HDremove; function becomes recursive (see H5private.h file)*/
remove(_fname);
H5MM_xfree(_fname);
@@ -666,6 +690,30 @@ Wgetlogin()
return NULL;
}
+int c99_snprintf(char* str, size_t size, const char* format, ...)
+{
+ int count;
+ va_list ap;
+
+ va_start(ap, format);
+ count = c99_vsnprintf(str, size, format, ap);
+ va_end(ap);
+
+ return count;
+}
+
+int c99_vsnprintf(char* str, size_t size, const char* format, va_list ap)
+{
+ int count = -1;
+
+ if (size != 0)
+ count = _vsnprintf_s(str, size, _TRUNCATE, format, ap);
+ if (count == -1)
+ count = _vscprintf(format, ap);
+
+ return count;
+}
+
#endif
@@ -698,6 +746,10 @@ H5_build_extpath(const char *name, char **extpath/*out*/)
FUNC_ENTER_NOAPI_NOINIT
+ /* Sanity check */
+ HDassert(name);
+ HDassert(extpath);
+
/* Clear external path pointer to begin with */
*extpath = NULL;
@@ -713,11 +765,13 @@ H5_build_extpath(const char *name, char **extpath/*out*/)
} /* end if */
else { /* relative pathname */
char *retcwd;
+ size_t name_len;
int drive;
if(NULL == (cwdpath = (char *)H5MM_malloc(MAX_PATH_LEN)))
HGOTO_ERROR(H5E_INTERNAL, H5E_NOSPACE, FAIL, "memory allocation failed")
- if(NULL == (new_name = (char *)H5MM_strdup(name)))
+ name_len = HDstrlen(name) + 1;
+ if(NULL == (new_name = (char *)H5MM_malloc(name_len)))
HGOTO_ERROR(H5E_INTERNAL, H5E_NOSPACE, FAIL, "memory allocation failed")
/*
@@ -729,7 +783,7 @@ H5_build_extpath(const char *name, char **extpath/*out*/)
if(H5_CHECK_ABS_DRIVE(name)) {
drive = name[0] - 'A' + 1;
retcwd = HDgetdcwd(drive, cwdpath, MAX_PATH_LEN);
- HDstrcpy(new_name, &name[2]);
+ HDstrncpy(new_name, &name[2], name_len);
} /* end if */
/*
* Windows: name[0] is a '/' or '\'
@@ -738,20 +792,24 @@ H5_build_extpath(const char *name, char **extpath/*out*/)
* OpenVMS: does not apply
*/
else if(H5_CHECK_ABS_PATH(name) && (0 != (drive = HDgetdrive()))) {
- sprintf(cwdpath, "%c:%c", (drive+'A'-1), name[0]);
+ HDsnprintf(cwdpath, MAX_PATH_LEN, "%c:%c", (drive + 'A' - 1), name[0]);
retcwd = cwdpath;
- HDstrcpy(new_name, &name[1]);
+ HDstrncpy(new_name, &name[1], name_len);
}
/* totally relative for Unix, Windows, and OpenVMS: get current working directory */
- else
+ else {
retcwd = HDgetcwd(cwdpath, MAX_PATH_LEN);
+ HDstrncpy(new_name, name, name_len);
+ } /* end if */
if(retcwd != NULL) {
size_t cwdlen;
size_t path_len;
+ HDassert(cwdpath);
cwdlen = HDstrlen(cwdpath);
HDassert(cwdlen);
+ HDassert(new_name);
path_len = cwdlen + HDstrlen(new_name) + 2;
if(NULL == (full_path = (char *)H5MM_malloc(path_len)))
HGOTO_ERROR(H5E_INTERNAL, H5E_NOSPACE, FAIL, "memory allocation failed")
@@ -768,7 +826,7 @@ H5_build_extpath(const char *name, char **extpath/*out*/)
char *tmp = new_name;
full_path[cwdlen - 1] = '\0';
- HDstrcat(full_path, ++tmp);
+ HDstrncat(full_path, ++tmp, HDstrlen(tmp));
} /* end if */
else
HDstrncat(full_path, new_name, HDstrlen(new_name));
@@ -793,9 +851,9 @@ H5_build_extpath(const char *name, char **extpath/*out*/)
done:
/* Release resources */
if(cwdpath)
- H5MM_xfree(cwdpath);
+ H5MM_xfree(cwdpath);
if(new_name)
- H5MM_xfree(new_name);
+ H5MM_xfree(new_name);
FUNC_LEAVE_NOAPI(ret_value)
} /* H5_build_extpath() */
diff --git a/src/H5win32defs.h b/src/H5win32defs.h
index e9b87625..d452925 100644
--- a/src/H5win32defs.h
+++ b/src/H5win32defs.h
@@ -29,6 +29,7 @@ typedef struct _stati64 h5_stat_t;
typedef __int64 h5_stat_size_t;
#define HDaccess(F,M) _access(F,M)
+#define HDchdir(S) _chdir(S)
#define HDclose(F) _close(F)
#define HDdup(F) _dup(F)
#define HDfdopen(N,S) _fdopen(N,S)
@@ -47,16 +48,15 @@ typedef __int64 h5_stat_size_t;
*/
#define HDopen(S,F,M) _open(S,F|_O_BINARY,M)
#define HDread(F,M,Z) _read(F,M,Z)
+#define HDrmdir(S) _rmdir(S)
#define HDsetvbuf(F,S,M,Z) setvbuf(F,S,M,(Z>1?Z:2))
#define HDsleep(S) Sleep(S*1000)
#define HDstat(S,B) _stati64(S,B)
#define HDstrcasecmp(A,B) _stricmp(A,B)
#define HDstrtoull(S,R,N) _strtoui64(S,R,N)
#define HDstrdup(S) _strdup(S)
-#define HDsnprintf _snprintf /*varargs*/
#define HDtzset() _tzset()
#define HDunlink(S) _unlink(S)
-#define HDvsnprintf(S,N,FMT,A) _vsnprintf(S,N,FMT,A)
#define HDwrite(F,M,Z) _write(F,M,Z)
#ifdef H5_HAVE_VISUAL_STUDIO
@@ -75,11 +75,15 @@ struct timezone {
#endif /* __cplusplus */
H5_DLL int Wgettimeofday(struct timeval *tv, struct timezone *tz);
H5_DLL char* Wgetlogin();
+ H5_DLL int c99_snprintf(char* str, size_t size, const char* format, ...);
+ H5_DLL int c99_vsnprintf(char* str, size_t size, const char* format, va_list ap);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#define HDgettimeofday(V,Z) Wgettimeofday(V,Z)
-#define HDgetlogin() Wgetlogin()
+#define HDgetlogin() Wgetlogin()
+#define HDsnprintf c99_snprintf /*varargs*/
+#define HDvsnprintf c99_vsnprintf
#endif /* H5_HAVE_VISUAL_STUDIO */
diff --git a/src/Makefile.in b/src/Makefile.in
index ae0d0ff..276052e 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -522,7 +522,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog
# Add libtool shared library version numbers to the HDF5 library
# See libtool versioning documentation online.
LT_VERS_INTERFACE = 6
-LT_VERS_REVISION = 146
+LT_VERS_REVISION = 151
LT_VERS_AGE = 0
H5detect_CFLAGS = -g $(AM_CFLAGS)