summaryrefslogtreecommitdiffstats
path: root/src/H5detect.c
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1999-01-07 11:41:25 (GMT)
committerRobb Matzke <matzke@llnl.gov>1999-01-07 11:41:25 (GMT)
commit504aa95bd92511ccb80e6321dd79f7dc525310d5 (patch)
tree43b1c89316ea8ef44db0fe05a6f33cba0006d4b0 /src/H5detect.c
parent04bec43fa2e962fc4bf5deef67879b5ebf573c8f (diff)
downloadhdf5-504aa95bd92511ccb80e6321dd79f7dc525310d5.zip
hdf5-504aa95bd92511ccb80e6321dd79f7dc525310d5.tar.gz
hdf5-504aa95bd92511ccb80e6321dd79f7dc525310d5.tar.bz2
[svn-r1010] Changes since 19981217
---------------------- ./src/H5.c ./src/H5private.h Renamed `library_initialize_g' to `H5_libinit_g' to make it conform to our naming scheme. ./src/H5I.c Fixed a bug in H5I_dec_ref() that caused the return value to always be zero instead of the new reference count. ./src/H5.c ./src/H5Odtype.c ./src/H5T.c ./src/H5Tconv.c ./src/H5Tpkg.h ./src/H5Tprivate.h ./src/H5Tpublic.h Added support for enumeration data types. ./src/H5RA.c Renamed H5T_insert() to H5T_struct_insert() and added H5T_enum_insert(). ./src/H5RA.c ./src/H5Shyper.c Added casts to size_t for the third argument of memcpy() to shut up a warning message from insure++. ./src/H5T.c Changed "can't" to "unable to" in some error messages to be more consistent. ./src/H5detect.c If fork() or waitpid() are unavailable then we assume no alignment constraints. Hopefully this is the case only on NT and Intel CPU's don't have alignment constraints. ./src/H5public.h Include <limits.h> because the H5T_NATIVE_CHAR macro needs the definition for CHAR_MIN.
Diffstat (limited to 'src/H5detect.c')
-rw-r--r--src/H5detect.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/H5detect.c b/src/H5detect.c
index 9220915..92fe3ae 100644
--- a/src/H5detect.c
+++ b/src/H5detect.c
@@ -241,8 +241,9 @@ precision (detected_t *d)
precision (&(INFO)); \
}
+#if defined(HAVE_FORK) && defined(HAVE_WAITPID)
#define ALIGNMENT(TYPE,ALIGN) { \
- char *_buf=malloc(sizeof(TYPE)+align_g[NELMTS(align_g)-1]); \
+ char *_buf; \
TYPE _val=0; \
size_t _ano; \
pid_t _child; \
@@ -252,7 +253,9 @@ precision (detected_t *d)
fflush(stdout); \
fflush(stderr); \
if (0==(_child=fork())) { \
+ _buf = malloc(sizeof(TYPE)+align_g[NELMTS(align_g)-1]); \
_val = *((TYPE*)(_buf+align_g[_ano])); \
+ free(_buf); \
exit(0); \
} else if (_child<0) { \
perror("fork"); \
@@ -277,6 +280,10 @@ precision (detected_t *d)
fprintf(stderr, "unable to calculate alignment for %s\n", #TYPE); \
} \
}
+#else
+#define ALIGNMENT(TYPE,ALIGN) (ALIGN)=0
+#endif
+
/*-------------------------------------------------------------------------