summaryrefslogtreecommitdiffstats
path: root/src/H5private.h
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1999-02-26 19:58:14 (GMT)
committerRobb Matzke <matzke@llnl.gov>1999-02-26 19:58:14 (GMT)
commit912c5a0874182f0705e3fe6756859817e2a64cdd (patch)
treea68f01992ce5a618dfee8f69778e2ffd8dda03af /src/H5private.h
parentefb18f8785f0c1f967743fba1ed13a392a0ca601 (diff)
downloadhdf5-912c5a0874182f0705e3fe6756859817e2a64cdd.zip
hdf5-912c5a0874182f0705e3fe6756859817e2a64cdd.tar.gz
hdf5-912c5a0874182f0705e3fe6756859817e2a64cdd.tar.bz2
[svn-r1108] Changes since 19990225
---------------------- ./INSTALL Added warnings and a disclaimer about GNU, DEC, Irix64, and NT compilers that generate incorrect machine code. ./configure.in ./src/H5private.h Detects and includes <sys/param.h> which is needed on FreeBSD before <sys/proc.h> even though we only really using anything from <sys/proc.h> on the DEC Alpha. ./config/irix64 Turned off warnings for duplicate definitions from the linker because -lnsl on irix has the same stuff in it as -lc. ./config/irix6.x Split up the CC and CFLAGS settings like with irix64 so that compilers besides `-n32' can be used. ./bin/snapshot The snapshots are tagged with names like hdf5-1_1_52 which is similar to the way the releases are tagged (cvs doesn't allow dots in tags). ./test/dtypes.c ./src/H5private.h ./src/H5Tconv.c Fixed some alignment violations on the DEC when using high optimization levels. The DEC incorrectly optimizes certain memcpy() and memmove() calls when the source argument is not word aligned if the call looks like it's copying an atomic data type. ./test/hyperslab Worked around code generation bugs in the Irix64 Mongoose 7.00 compiler by casting some `unsigned long' values to `unsigned' in an expression. ./src/H5Ocomp.c Fixed a place where %d was used to print a size_t.
Diffstat (limited to 'src/H5private.h')
-rw-r--r--src/H5private.h25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/H5private.h b/src/H5private.h
index fac7fa1..487f83a 100644
--- a/src/H5private.h
+++ b/src/H5private.h
@@ -90,6 +90,23 @@
#endif
/*
+ * System information. These are needed on the DEC Alpha to turn off fixing
+ * of unaligned accesses by the operating system during detection of
+ * alignment constraints in H5detect.c:main(). The <sys/param.h> must be
+ * included before <sys/proc.h> on FreeBSD even though we never use anything
+ * from either header file on that system.
+ */
+#ifdef HAVE_SYS_SYSINFO_H
+# include <sys/sysinfo.h>
+#endif
+#ifdef HAVE_SYS_PARAM_H
+# include <sys/param.h>
+#endif
+#ifdef HAVE_SYS_PROC_H
+# include <sys/proc.h>
+#endif
+
+/*
* Win32 is severely broken when it comes to ANSI-C and Posix.1 compliance.
*/
#ifdef HAVE_IO_H
@@ -540,8 +557,12 @@ __DLL__ int HDfprintf (FILE *stream, const char *fmt, ...);
#define HDmbtowc(P,S,Z) mbtowc(P,S,Z)
#define HDmemchr(S,C,Z) memchr(S,C,Z)
#define HDmemcmp(X,Y,Z) memcmp(X,Y,Z)
-#define HDmemcpy(X,Y,Z) memcpy(X,Y,Z)
-#define HDmemmove(X,Y,Z) memmove(X,Y,Z)
+/*
+ * The (char*) casts are required for the DEC when optimizations are turned
+ * on and the source and/or destination are not aligned.
+ */
+#define HDmemcpy(X,Y,Z) memcpy((char*)(X),(const char*)(Y),Z)
+#define HDmemmove(X,Y,Z) memmove((char*)(X),(const char*)(Y),Z)
#define HDmemset(X,C,Z) memset(X,C,Z)
#define HDmkdir(S,M) mkdir(S,M)
#define HDmkfifo(S,M) mkfifo(S,M)