summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDana Robinson <derobins@hdfgroup.org>2020-08-26 20:27:07 (GMT)
committerDana Robinson <derobins@hdfgroup.org>2020-08-26 20:27:07 (GMT)
commitf542f5aa37dea0f8dc15c3a5d91b4d12eda5fcf2 (patch)
tree474ec4e73befe3ac56debf6987f17190494be887
parentf8e486a761a2f1e830af2cb1d0c26a927aa12a8b (diff)
downloadhdf5-f542f5aa37dea0f8dc15c3a5d91b4d12eda5fcf2.zip
hdf5-f542f5aa37dea0f8dc15c3a5d91b4d12eda5fcf2.tar.gz
hdf5-f542f5aa37dea0f8dc15c3a5d91b4d12eda5fcf2.tar.bz2
Adds binary compatibility HDFS VFD stubs.
-rw-r--r--src/H5FDhdfs.c40
-rw-r--r--src/H5FDhdfs.h2
2 files changed, 39 insertions, 3 deletions
diff --git a/src/H5FDhdfs.c b/src/H5FDhdfs.c
index b4f70c9..4978d64 100644
--- a/src/H5FDhdfs.c
+++ b/src/H5FDhdfs.c
@@ -20,8 +20,14 @@
* File System (HDFS).
*/
-/* This source code file is part of the H5FD driver module */
+#ifdef H5_HAVE_LIBHDFS
+/* This source code file is part of the H5FD driver module
+ * NOTE: If we're just building the binary compatibility stubs,
+ * we're never going to really initialize the package, so we
+ * don't include this.
+ */
#include "H5FDdrvr_module.h"
+#endif /* H5_HAVE_LIBHDFS */
#include "H5private.h" /* Generic Functions */
#include "H5Eprivate.h" /* Error handling */
@@ -1735,5 +1741,37 @@ H5FD__hdfs_unlock(H5FD_t H5_ATTR_UNUSED *_file)
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5FD__hdfs_unlock() */
+
+#else /* H5_HAVE_LIBHDFS */
+
+/* No-op stubs to avoid binary compatibility problems with previous
+ * HDF5 1.10 versions. Non-functional versions of these API calls were
+ * erroneously included in the library even when the HDFS VFD was not
+ * configured.
+ */
+hid_t
+H5FD_hdfs_init(void)
+{
+ /* This should never be called since the header doesn't invoke it */
+ FUNC_ENTER_NOAPI_NOINIT_NOERR
+ FUNC_LEAVE_NOAPI(H5I_INVALID_HID)
+}
+
+herr_t
+H5Pget_fapl_hdfs(hid_t fapl_id, H5FD_hdfs_fapl_t *fa_out)
+{
+ FUNC_ENTER_API_NOINIT
+ H5TRACE2("e", "i*x", fapl_id, fa_out);
+ FUNC_LEAVE_API_NOINIT(FAIL)
+}
+
+herr_t
+H5Pset_fapl_hdfs(hid_t fapl_id, H5FD_hdfs_fapl_t *fa)
+{
+ FUNC_ENTER_API_NOINIT
+ H5TRACE2("e", "i*x", fapl_id, fa);
+ FUNC_LEAVE_API_NOINIT(FAIL)
+}
+
#endif /* H5_HAVE_LIBHDFS */
diff --git a/src/H5FDhdfs.h b/src/H5FDhdfs.h
index e195550..58d7e6e 100644
--- a/src/H5FDhdfs.h
+++ b/src/H5FDhdfs.h
@@ -28,7 +28,6 @@
#define H5FD_HDFS (-1)
#endif /* H5_HAVE_LIBHDFS */
-#ifdef H5_HAVE_LIBHDFS
/****************************************************************************
*
* Structure: H5FD_hdfs_fapl_t
@@ -119,7 +118,6 @@ H5_DLL herr_t H5Pset_fapl_hdfs(hid_t fapl_id, H5FD_hdfs_fapl_t *fa);
#ifdef __cplusplus
}
#endif
-#endif /* H5_HAVE_LIBHDFS */
#endif /* ifndef H5FDhdfs_H */