d0def9a
diff -up hdf-4.2.10/hdf/src/hconv.h.arm hdf-4.2.10/hdf/src/hconv.h
d0def9a
--- hdf-4.2.10/hdf/src/hconv.h.arm	2014-02-14 09:28:56.692514796 -0700
d0def9a
+++ hdf-4.2.10/hdf/src/hconv.h	2014-02-14 09:30:03.882212944 -0700
d0def9a
@@ -59,7 +59,7 @@
294a0cb
 /* CONSTANT DEFINITIONS                                                      */
294a0cb
 /*****************************************************************************/
294a0cb
 /* Generally Big-Endian machines */
d0def9a
-#if !defined(INTEL86) && !defined(MIPSEL) && !defined(DEC_ALPHA) && !defined(I860) && !defined(SUN386) && !(defined(__ia64) && !(defined(hpux) || defined(__hpux))) && !defined(__x86_64__)
d0def9a
+#if !defined(INTEL86) && !defined(MIPSEL) && !defined(DEC_ALPHA) && !defined(I860) && !defined(SUN386) && !(defined(__ia64) && !(defined(hpux) || defined(__hpux))) && !defined(__x86_64__) && !defined(__arm__)
294a0cb
 #       define UI8_IN     DFKnb1b   /* Unsigned Integer, 8 bits */
294a0cb
 #       define UI8_OUT    DFKnb1b
d0def9a
 #       define SI16_IN    DFKnb2b   /* S = Signed */
d0def9a
diff -up hdf-4.2.10/hdf/src/hdfi.h.arm hdf-4.2.10/hdf/src/hdfi.h
d0def9a
--- hdf-4.2.10/hdf/src/hdfi.h.arm	2014-02-14 09:28:56.685514824 -0700
d0def9a
+++ hdf-4.2.10/hdf/src/hdfi.h	2014-02-14 09:28:56.693514792 -0700
d0def9a
@@ -78,6 +78,7 @@
294a0cb
 #define     DFMT_LINUXPPC       0x1111
294a0cb
 #define     DFMT_LINUXSPARC     0x1111
294a0cb
 #define     DFMT_LINUX390       0x1111
294a0cb
+#define     DFMT_LINUXARM       0x4441
294a0cb
 
294a0cb
 /* I/O library constants */
294a0cb
 #define UNIXUNBUFIO 1
d0def9a
@@ -1187,6 +1188,57 @@ typedef int               hdf_pint_t;
294a0cb
 
294a0cb
 #endif /* Linux s390/s390x */
294a0cb
 
294a0cb
+/* Linux ARM */
294a0cb
+#if defined __arm__
294a0cb
+
294a0cb
+#ifdef GOT_MACHINE
294a0cb
+If you get an error on this line more than one machine type has been defined.
294a0cb
+Please check your Makefile.
294a0cb
+#endif
294a0cb
+#define GOT_MACHINE
294a0cb
+
294a0cb
+#include <sys/file.h>               /* for unbuffered i/o stuff */
294a0cb
+#include <sys/stat.h>
294a0cb
+#define DF_MT             DFMT_LINUXARM
294a0cb
+typedef void              VOID;
294a0cb
+typedef void              *VOIDP;
294a0cb
+typedef char              *_fcd;
294a0cb
+typedef char              char8;
294a0cb
+typedef unsigned char     uchar8;
294a0cb
+typedef char              int8;
294a0cb
+typedef unsigned char     uint8;
294a0cb
+typedef short int         int16;
294a0cb
+typedef unsigned short int uint16;
294a0cb
+typedef long int          int32;
294a0cb
+typedef unsigned long int uint32;
294a0cb
+typedef int               intn;
294a0cb
+typedef unsigned int      uintn;
294a0cb
+typedef int               intf;     /* size of INTEGERs in Fortran compiler */
294a0cb
+typedef float             float32;
294a0cb
+typedef double            float64;
294a0cb
+typedef int               hdf_pint_t;   /* an integer the same size as a pointer */
294a0cb
+#define FNAME_POST_UNDERSCORE
294a0cb
+#define _fcdtocp(desc) (desc)
294a0cb
+#ifdef  HAVE_FMPOOL
294a0cb
+#define FILELIB PAGEBUFIO  /* enable page buffering */
294a0cb
+#else
294a0cb
+#define FILELIB UNIXBUFIO
294a0cb
+#endif
294a0cb
+
294a0cb
+/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
294a0cb
+
294a0cb
+/* Determine the memory manager we are going to use. Valid values are: */
294a0cb
+/*  MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS.  See the JPEG docs for details on */
294a0cb
+/*  what each does */
294a0cb
+#define JMEMSYS         MEM_ANSI
294a0cb
+
294a0cb
+#ifdef __GNUC__
294a0cb
+#define HAVE_STDC
294a0cb
+#define INCLUDES_ARE_ANSI
294a0cb
+#endif
294a0cb
+
294a0cb
+#endif /* Linux ARM */
294a0cb
+
294a0cb
 /*-----------------------------------------------------*/
294a0cb
 /* 64-bit Free BSD */
294a0cb