Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge3 839 hdf5 1 12 #907

Merged
merged 14 commits into from
Aug 13, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions config/cmake/H5pubconf.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -457,9 +457,6 @@
/* Define if your system has window style path name. */
#cmakedefine H5_HAVE_WINDOW_PATH @H5_HAVE_WINDOW_PATH@

/* Define to 1 if you have the <winsock2.h> header file. */
#cmakedefine H5_HAVE_WINSOCK2_H @H5_HAVE_WINSOCK2_H@

/* Define to 1 if you have the <zlib.h> header file. */
#cmakedefine H5_HAVE_ZLIB_H @H5_HAVE_ZLIB_H@

Expand Down
6 changes: 0 additions & 6 deletions config/cmake_ext_mod/ConfigureChecks.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ if (MINGW)
set (${HDF_PREFIX}_HAVE_MINGW 1)
set (WINDOWS 1) # MinGW tries to imitate Windows
set (CMAKE_REQUIRED_FLAGS "-DWIN32_LEAN_AND_MEAN=1 -DNOGDI=1")
set (${HDF_PREFIX}_HAVE_WINSOCK2_H 1)
set (__USE_MINGW_ANSI_STDIO 1)
endif ()

Expand Down Expand Up @@ -122,11 +121,6 @@ CHECK_INCLUDE_FILE_CONCAT ("setjmp.h" ${HDF_PREFIX}_HAVE_SETJMP_H)
CHECK_INCLUDE_FILE_CONCAT ("stddef.h" ${HDF_PREFIX}_HAVE_STDDEF_H)
CHECK_INCLUDE_FILE_CONCAT ("unistd.h" ${HDF_PREFIX}_HAVE_UNISTD_H)

# Windows
if (NOT CYGWIN)
CHECK_INCLUDE_FILE_CONCAT ("winsock2.h" ${HDF_PREFIX}_HAVE_WINSOCK2_H)
endif ()

CHECK_INCLUDE_FILE_CONCAT ("globus/common.h" ${HDF_PREFIX}_HAVE_GLOBUS_COMMON_H)
CHECK_INCLUDE_FILE_CONCAT ("pdb.h" ${HDF_PREFIX}_HAVE_PDB_H)
CHECK_INCLUDE_FILE_CONCAT ("pthread.h" ${HDF_PREFIX}_HAVE_PTHREAD_H)
Expand Down
13 changes: 13 additions & 0 deletions fortran/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -582,4 +582,17 @@ if (NOT WIN32 AND NOT MINGW)
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
COMPONENT fortlibraries
)
if (HDF5_ENABLE_PARALLEL AND MPI_Fortran_FOUND)
configure_file (
${HDF_RESOURCES_DIR}/libh5cc.in
${HDF5_BINARY_DIR}/CMakeFiles/h5pfc
@ONLY
)
install (
FILES ${HDF5_BINARY_DIR}/CMakeFiles/h5pfc
DESTINATION ${HDF5_INSTALL_BIN_DIR}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
COMPONENT fortlibraries
)
endif ()
endif ()
2 changes: 2 additions & 0 deletions hl/test/test_ds.c
Original file line number Diff line number Diff line change
Expand Up @@ -5205,6 +5205,8 @@ test_attach_detach(void)

HL_TESTING2("permutations of attaching and detaching");

gid = var1_id = var2_id = var3_id = H5I_INVALID_HID;

if ((fid = H5Fcreate(FILE8, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0)
goto out;

Expand Down
8 changes: 4 additions & 4 deletions hl/test/test_packet.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@ typedef struct particle_t {
* a static array of particles for writing and checking reads
*-------------------------------------------------------------------------
*/
static particle_t testPart[NRECORDS] = {{"zero", 0, 0, 0.0f, 0.0f}, {"one", 10, 10, 1.0f, 10.0f},
{"two", 20, 20, 2.0f, 20.0f}, {"three", 30, 30, 3.0f, 30.0f},
{"four", 40, 40, 4.0f, 40.0f}, {"five", 50, 50, 5.0f, 50.0f},
{"six", 60, 60, 6.0f, 60.0f}, {"seven", 70, 70, 7.0f, 70.0f}};
static particle_t testPart[NRECORDS] = {{"zero", 0, 0, 0.0f, 0.0}, {"one", 10, 10, 1.0f, 10.0},
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just noticed another "f" in the 4th value, I think it should be removed like the 5th value?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, the fourth element in the structure is a float, the fifth is a double, and the numbers with .0f for the fifth were single precision values implicitly converted to double precision. Removing the f from the fifth value eliminated that warning; removing it from the fourth would probably add the opposite warning (for clang).

{"two", 20, 20, 2.0f, 20.0}, {"three", 30, 30, 3.0f, 30.0},
{"four", 40, 40, 4.0f, 40.0}, {"five", 50, 50, 5.0f, 50.0},
{"six", 60, 60, 6.0f, 60.0}, {"seven", 70, 70, 7.0f, 70.0}};

/*-------------------------------------------------------------------------
* function that compares one particle
Expand Down
40 changes: 20 additions & 20 deletions hl/test/test_table.c
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ test_table(hid_t fid, int do_write)
hsize_t chunk_size = 10;
int compress = 0;
int * fill = NULL;
particle_t fill1[1] = {{"no data", -1, -99.0f, -99.0f, -1}};
particle_t fill1[1] = {{"no data", -1, -99.0, -99.0, -1}};
int fill1_new[1] = {-100};
hsize_t position;
char tname[20];
Expand Down Expand Up @@ -227,23 +227,23 @@ test_table(hid_t fid, int do_write)
particle2_t rbuf2[NRECORDS];
particle3_t rbuf3[NRECORDS];
particle_t rbufc[NRECORDS * 2];
particle_t abuf[2] = {{"eight", 80, 8.0f, 80.0f, 80}, {"nine", 90, 9.0f, 90.0f, 90}};
particle_t ibuf[2] = {{"zero", 0, 0.0f, 0.0f, 0}, {"zero", 0, 0.0f, 0.0f, 0}};
particle_t abuf[2] = {{"eight", 80, 8.0, 80.0, 80}, {"nine", 90, 9.0, 90.0, 90}};
particle_t ibuf[2] = {{"zero", 0, 0.0, 0.0, 0}, {"zero", 0, 0.0, 0.0, 0}};
particle_t wbufd[NRECORDS];
particle_t wbuf[NRECORDS] = {{
"zero",
0,
0.0f,
0.0f,
0.0,
0.0,
0,
},
{"one", 10, 1.0f, 10.0f, 10},
{"two", 20, 2.0f, 20.0f, 20},
{"three", 30, 3.0f, 30.0f, 30},
{"four", 40, 4.0f, 40.0f, 40},
{"five", 50, 5.0f, 50.0f, 50},
{"six", 60, 6.0f, 60.0f, 60},
{"seven", 70, 7.0f, 70.0f, 70}};
{"one", 10, 1.0, 10.0, 10},
{"two", 20, 2.0, 20.0, 20},
{"three", 30, 3.0, 30.0, 30},
{"four", 40, 4.0, 40.0, 40},
{"five", 50, 5.0, 50.0, 50},
{"six", 60, 6.0, 60.0, 60},
{"seven", 70, 7.0, 70.0, 70}};
/* buffers for the field "Pressure" and "New_field" */
float pressure_in[NRECORDS] = {0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f};
float pressure_out[NRECORDS];
Expand Down Expand Up @@ -332,14 +332,14 @@ test_table(hid_t fid, int do_write)
HOFFSET(particle4_t, aty), HOFFSET(particle4_t, rro)};

/* Define an array of Particles */
particle4_t p_data[NRECORDS] = {{12112, 1.4f, 2.5f, {1, 2, 3}, {4, 5, 6}, {99, 100}},
{12113, 1.4f, 2.5f, {1, 2, 3}, {4, 5, 6}, {99, 100}},
{12114, 1.4f, 2.5f, {1, 2, 3}, {4, 5, 6}, {99, 100}},
{12115, 1.4f, 2.5f, {1, 2, 3}, {4, 5, 6}, {99, 100}},
{12116, 1.4f, 2.5f, {1, 2, 3}, {4, 5, 6}, {99, 100}},
{12117, 1.4f, 2.5f, {1, 2, 3}, {4, 5, 6}, {99, 100}},
{12118, 1.4f, 2.5f, {1, 2, 3}, {4, 5, 6}, {99, 100}},
{12119, 1.4f, 2.5f, {1, 2, 3}, {4, 5, 6}, {99, 100}}};
particle4_t p_data[NRECORDS] = {{12112, 1.4, 2.5, {1, 2, 3}, {4, 5, 6}, {99, 100}},
{12113, 1.4, 2.5, {1, 2, 3}, {4, 5, 6}, {99, 100}},
{12114, 1.4, 2.5, {1, 2, 3}, {4, 5, 6}, {99, 100}},
{12115, 1.4, 2.5, {1, 2, 3}, {4, 5, 6}, {99, 100}},
{12116, 1.4, 2.5, {1, 2, 3}, {4, 5, 6}, {99, 100}},
{12117, 1.4, 2.5, {1, 2, 3}, {4, 5, 6}, {99, 100}},
{12118, 1.4, 2.5, {1, 2, 3}, {4, 5, 6}, {99, 100}},
{12119, 1.4, 2.5, {1, 2, 3}, {4, 5, 6}, {99, 100}}};

/*-------------------------------------------------------------------------
* initialize table parameters
Expand Down
60 changes: 30 additions & 30 deletions hl/tools/h5watch/h5watch.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,27 +58,27 @@ static void parse_command_line(int argc, const char *argv[]);
* The long-named ones can be partially spelled. When
* adding more, make sure that they don't clash with each other.
*/
static const char * s_opts = "?";
static struct long_options l_opts[] = {{"help", no_arg, 'h'}, {"hel", no_arg, 'h'},
{"dim", no_arg, 'd'}, {"di", no_arg, 'd'},
{"label", no_arg, 'l'}, {"labe", no_arg, 'l'},
{"lab", no_arg, 'l'}, {"la", no_arg, 'l'},
{"simple", no_arg, 'S'}, {"simpl", no_arg, 'S'},
{"simp", no_arg, 'S'}, {"sim", no_arg, 'S'},
{"si", no_arg, 'S'}, {"hexdump", no_arg, 'x'},
{"hexdum", no_arg, 'x'}, {"hexdu", no_arg, 'x'},
{"hexd", no_arg, 'x'}, {"hex", no_arg, 'x'},
{"width", require_arg, 'w'}, {"widt", require_arg, 'w'},
{"wid", require_arg, 'w'}, {"wi", require_arg, 'w'},
{"polling", require_arg, 'p'}, {"pollin", require_arg, 'p'},
{"polli", require_arg, 'p'}, {"poll", require_arg, 'p'},
{"pol", require_arg, 'p'}, {"po", require_arg, 'p'},
{"fields", require_arg, 'f'}, {"field", require_arg, 'f'},
{"fiel", require_arg, 'f'}, {"fie", require_arg, 'f'},
{"fi", require_arg, 'f'}, {"version", no_arg, 'V'},
{"versio", no_arg, 'V'}, {"versi", no_arg, 'V'},
{"vers", no_arg, 'V'}, {"ver", no_arg, 'V'},
{"ve", no_arg, 'V'}, {NULL, 0, '\0'}};
static const char * s_opts = "?";
static struct h5_long_options l_opts[] = {{"help", no_arg, 'h'}, {"hel", no_arg, 'h'},
{"dim", no_arg, 'd'}, {"di", no_arg, 'd'},
{"label", no_arg, 'l'}, {"labe", no_arg, 'l'},
{"lab", no_arg, 'l'}, {"la", no_arg, 'l'},
{"simple", no_arg, 'S'}, {"simpl", no_arg, 'S'},
{"simp", no_arg, 'S'}, {"sim", no_arg, 'S'},
{"si", no_arg, 'S'}, {"hexdump", no_arg, 'x'},
{"hexdum", no_arg, 'x'}, {"hexdu", no_arg, 'x'},
{"hexd", no_arg, 'x'}, {"hex", no_arg, 'x'},
{"width", require_arg, 'w'}, {"widt", require_arg, 'w'},
{"wid", require_arg, 'w'}, {"wi", require_arg, 'w'},
{"polling", require_arg, 'p'}, {"pollin", require_arg, 'p'},
{"polli", require_arg, 'p'}, {"poll", require_arg, 'p'},
{"pol", require_arg, 'p'}, {"po", require_arg, 'p'},
{"fields", require_arg, 'f'}, {"field", require_arg, 'f'},
{"fiel", require_arg, 'f'}, {"fie", require_arg, 'f'},
{"fi", require_arg, 'f'}, {"version", no_arg, 'V'},
{"versio", no_arg, 'V'}, {"versi", no_arg, 'V'},
{"vers", no_arg, 'V'}, {"ver", no_arg, 'V'},
{"ve", no_arg, 'V'}, {NULL, 0, '\0'}};

/*-------------------------------------------------------------------------
* Function: doprint()
Expand Down Expand Up @@ -677,7 +677,7 @@ parse_command_line(int argc, const char *argv[])
}

/* parse command line options */
while ((opt = get_option(argc, argv, s_opts, l_opts)) != EOF) {
while ((opt = H5_get_option(argc, argv, s_opts, l_opts)) != EOF) {
switch ((char)opt) {
case '?':
case 'h': /* --help */
Expand All @@ -691,7 +691,7 @@ parse_command_line(int argc, const char *argv[])
break;

case 'w': /* --width=N */
g_display_width = (int)HDstrtol(opt_arg, NULL, 0);
g_display_width = (int)HDstrtol(H5_optarg, NULL, 0);
if (g_display_width < 0) {
usage(h5tools_getprogname());
leave(EXIT_FAILURE);
Expand All @@ -711,8 +711,8 @@ parse_command_line(int argc, const char *argv[])
break;

case 'p': /* --polling=N */
/* g_polling_interval = HDstrtod(opt_arg, NULL); */
if ((tmp = (int)HDstrtol(opt_arg, NULL, 10)) <= 0) {
/* g_polling_interval = HDstrtod(H5_optarg, NULL); */
if ((tmp = (int)HDstrtol(H5_optarg, NULL, 10)) <= 0) {
usage(h5tools_getprogname());
leave(EXIT_FAILURE);
}
Expand All @@ -721,15 +721,15 @@ parse_command_line(int argc, const char *argv[])

case 'f': /* --fields=<list_of_fields> */
if (g_list_of_fields == NULL) {
if ((g_list_of_fields = HDstrdup(opt_arg)) == NULL) {
if ((g_list_of_fields = HDstrdup(H5_optarg)) == NULL) {
error_msg("memory allocation failed (file %s:line %d)\n", __FILE__, __LINE__);
leave(EXIT_FAILURE);
}
}
else {
char *str;

if ((str = HDstrdup(opt_arg)) == NULL) {
if ((str = HDstrdup(H5_optarg)) == NULL) {
error_msg("memory allocation failed (file %s:line %d)\n", __FILE__, __LINE__);
leave(EXIT_FAILURE);
}
Expand All @@ -751,7 +751,7 @@ parse_command_line(int argc, const char *argv[])
}

/* check for object to be processed */
if (argc <= opt_ind) {
if (argc <= H5_optind) {
error_msg("missing dataset name\n");
usage(h5tools_getprogname());
leave(EXIT_FAILURE);
Expand Down Expand Up @@ -821,7 +821,7 @@ main(int argc, const char *argv[])
/* parse command line options */
parse_command_line(argc, argv);

if (argc <= opt_ind) {
if (argc <= H5_optind) {
error_msg("missing dataset name\n");
usage(h5tools_getprogname());
leave(EXIT_FAILURE);
Expand All @@ -845,7 +845,7 @@ main(int argc, const char *argv[])
* then there must have been something wrong with the file (perhaps it
* doesn't exist).
*/
if ((fname = HDstrdup(argv[opt_ind])) == NULL) {
if ((fname = HDstrdup(argv[H5_optind])) == NULL) {
error_msg("memory allocation failed (file %s:line %d)\n", __FILE__, __LINE__);
h5tools_setstatus(EXIT_FAILURE);
goto done;
Expand Down
4 changes: 2 additions & 2 deletions hl/tools/h5watch/h5watchgentest.c
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ main(void)
one_cbuf[i].field2.b.a = 20;
one_cbuf[i].field2.b.b = 40;
one_cbuf[i].field2.b.c = 80;
one_cbuf[i].field3 = 3.0F;
one_cbuf[i].field3 = 3.0;
one_cbuf[i].field4.a = 4;
one_cbuf[i].field4.b = 8;
} /* end for */
Expand Down Expand Up @@ -313,7 +313,7 @@ main(void)
two_cbuf[i].field2.b.a = 20;
two_cbuf[i].field2.b.b = 40;
two_cbuf[i].field2.b.c = 80;
two_cbuf[i].field3 = 3.0F;
two_cbuf[i].field3 = 3.0;
two_cbuf[i].field4.a = 4;
two_cbuf[i].field4.b = 8;
} /* end for */
Expand Down
23 changes: 23 additions & 0 deletions release_docs/RELEASE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,25 @@ New Features

Library:
--------
- Change how the release part of version, in major.minor.release is checked
for compatibility

The HDF5 library uses a function, H5check_version, to check that
the version defined in the header files, which is used to compile an
application is compatible with the version codified in the library, which
the application loads at runtime. This previously required an exact match
or the library would print a warning, dump the build settings and then
abort or continue. An environment variable controlled the logic.

Now the function first checks that the library release version, in
major.minor.release, is not older than the version in the headers.
Secondly, if the release version is different, it checks if either
the library version or the header version is in the exception list, in
which case the release part of version, in major.minor.release, must
be exact. An environment variable still controls the logic.

(ADB - 2021/07/27)

- H5Gcreate1() now rejects size_hint parameters larger than UINT32_MAX

The size_hint value is ultimately stored in a uint32_t struct field,
Expand Down Expand Up @@ -399,6 +418,10 @@ The following platforms are not supported but have been tested for this release.
Known Problems
==============

Setting a variable-length dataset fill value will leak the memory allocated
for the p field of the hvl_t struct. A fix is in progress for this.
HDFFV-10840

testflushrefresh.sh will fail when run with "make check-passthrough-vol"
on centos7, with 3 Errors/Segmentation faults. These will not occur when
run with "make check". See https://github.com/HDFGroup/hdf5/issues/673
Expand Down
Loading