diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2001-07-17 21:27:06 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2001-07-17 21:27:06 (GMT) |
commit | 5c8bcc19175fc8d261aef18f4152d8aeaf9de9d8 (patch) | |
tree | f8003c1205506463e44ab2b075fbfcc8653b3479 /src/H5FDlog.c | |
parent | 857e0e6e57f4f0a8ce9fec9b3200837065f3a058 (diff) | |
download | hdf5-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/H5FDlog.c')
-rw-r--r-- | src/H5FDlog.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/H5FDlog.c b/src/H5FDlog.c index 552fd55..c9f075e 100644 --- a/src/H5FDlog.c +++ b/src/H5FDlog.c @@ -622,8 +622,17 @@ H5FD_log_cmp(const H5FD_t *_f1, const H5FD_t *_f2) if (f1->fileindexlo > f2->fileindexlo) ret_value= 1; #else +#ifdef H5_DEV_T_IS_SCALAR if (f1->device < f2->device) ret_value= -1; if (f1->device > f2->device) ret_value= 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(HDmemcmp(&(f1->device),&(f2->device),sizeof(dev_t))<0) ret_value= -1; + if(HDmemcmp(&(f1->device),&(f2->device),sizeof(dev_t))>0) ret_value= 1; +#endif /* H5_DEV_T_IS_SCALAR */ if (f1->inode < f2->inode) ret_value= -1; if (f1->inode > f2->inode) ret_value= 1; |