summaryrefslogtreecommitdiffstats
path: root/src/H5FDstdio.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2001-07-17 21:27:06 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2001-07-17 21:27:06 (GMT)
commit5c8bcc19175fc8d261aef18f4152d8aeaf9de9d8 (patch)
treef8003c1205506463e44ab2b075fbfcc8653b3479 /src/H5FDstdio.c
parent857e0e6e57f4f0a8ce9fec9b3200837065f3a058 (diff)
downloadhdf5-5c8bcc19175fc8d261aef18f4152d8aeaf9de9d8.zip
hdf5-5c8bcc19175fc8d261aef18f4152d8aeaf9de9d8.tar.gz
hdf5-5c8bcc19175fc8d261aef18f4152d8aeaf9de9d8.tar.bz2
[svn-r4232] Purpose:
Bug fix. Description: On some systems (linux when not using gcc) 'dev_t' is not actually a scalar variable. This causes the code which compares dev_t's in the file drivers to not compile. Also the H5_inline flag was not being set correctly in the H5private.h file. Solution: Set the H5_inline flag to '' (i.e. define it, but don't assign it a value) if it is not currently defined. Use DEV_T_IS_SCALAR flag from configure to correctly compare dev_t's using memcmp instead of a scalar flag. Platforms tested: FreeBSD 4.3 (hawkwind), Linux 2.4.2 (chiba city cluster at Argonne)
Diffstat (limited to 'src/H5FDstdio.c')
-rw-r--r--src/H5FDstdio.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/H5FDstdio.c b/src/H5FDstdio.c
index 07885b4..3c1a0a6 100644
--- a/src/H5FDstdio.c
+++ b/src/H5FDstdio.c
@@ -422,8 +422,17 @@ H5FD_stdio_cmp(const H5FD_t *_f1, const H5FD_t *_f2)
if (f1->fileindexlo > f2->fileindexlo) return 1;
#else
+#ifdef H5_DEV_T_IS_SCALAR
if (f1->device < f2->device) return -1;
if (f1->device > f2->device) return 1;
+#else /* H5_DEV_T_IS_SCALAR */
+ /* If dev_t isn't a scalar value on this system, just use memcmp to
+ * determine if the values are the same or not. The actual return value
+ * shouldn't really matter...
+ */
+ if(memcmp(&(f1->device),&(f2->device),sizeof(dev_t))<0) return -1;
+ if(memcmp(&(f1->device),&(f2->device),sizeof(dev_t))>0) return 1;
+#endif /* H5_DEV_T_IS_SCALAR */
if (f1->inode < f2->inode) return -1;
if (f1->inode > f2->inode) return 1;