d0def9a
diff -up hdf-4.2.10/hdf/src/hdfi.h.ppc hdf-4.2.10/hdf/src/hdfi.h
d0def9a
--- hdf-4.2.10/hdf/src/hdfi.h.ppc	2014-02-09 19:28:49.000000000 -0700
d0def9a
+++ hdf-4.2.10/hdf/src/hdfi.h	2014-02-14 09:14:52.564082472 -0700
d0def9a
@@ -75,6 +75,7 @@
2cb4675
 #define     DFMT_IA64           0x4441
2cb4675
 #define     DFMT_LINUX64        0x4441
2cb4675
 #define     DFMT_POWERPC64      0x1111
2cb4675
+#define     DFMT_LINUXPPC       0x1111
2cb4675
 
2cb4675
 /* I/O library constants */
2cb4675
 #define UNIXUNBUFIO 1
d0def9a
@@ -1013,6 +1014,57 @@ typedef long              hdf_pint_t;
2cb4675
 
2cb4675
 #endif /*Linux 64 */
2cb4675
 
2cb4675
+/* Linux PPC */
2cb4675
+#if defined __powerpc__ && !defined __powerpc64__
2cb4675
+
2cb4675
+#ifdef GOT_MACHINE
2cb4675
+If you get an error on this line more than one machine type has been defined.
2cb4675
+Please check your Makefile.
2cb4675
+#endif
2cb4675
+#define GOT_MACHINE
2cb4675
+
2cb4675
+#include <sys/file.h>               /* for unbuffered i/o stuff */
2cb4675
+#include <sys/stat.h>
2cb4675
+#define DF_MT             DFMT_LINUXPPC
2cb4675
+typedef void              VOID;
2cb4675
+typedef void              *VOIDP;
2cb4675
+typedef char              *_fcd;
2cb4675
+typedef char              char8;
2cb4675
+typedef unsigned char     uchar8;
2cb4675
+typedef char              int8;
2cb4675
+typedef unsigned char     uint8;
2cb4675
+typedef short int         int16;
2cb4675
+typedef unsigned short int uint16;
2cb4675
+typedef int               int32;
2cb4675
+typedef unsigned int      uint32;
2cb4675
+typedef int               intn;
2cb4675
+typedef unsigned int      uintn;
2cb4675
+typedef int               intf;     /* size of INTEGERs in Fortran compiler */
2cb4675
+typedef float             float32;
2cb4675
+typedef double            float64;
2cb4675
+typedef long              hdf_pint_t;   /* an integer the same size as a pointer */
2cb4675
+#define FNAME_POST_UNDERSCORE
2cb4675
+#define _fcdtocp(desc) (desc)
2cb4675
+#ifdef  HAVE_FMPOOL
2cb4675
+#define FILELIB PAGEBUFIO  /* enable page buffering */
2cb4675
+#else
2cb4675
+#define FILELIB UNIXBUFIO
2cb4675
+#endif
2cb4675
+
2cb4675
+/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
2cb4675
+
2cb4675
+/* Determine the memory manager we are going to use. Valid values are: */
2cb4675
+/*  MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS.  See the JPEG docs for details on */
2cb4675
+/*  what each does */
2cb4675
+#define JMEMSYS         MEM_ANSI
2cb4675
+
2cb4675
+#ifdef __GNUC__
2cb4675
+#define HAVE_STDC
2cb4675
+#define INCLUDES_ARE_ANSI
2cb4675
+#endif
2cb4675
+
2cb4675
+#endif /*Linux PPC */
2cb4675
+
7692aeb
 /*-----------------------------------------------------*/
7692aeb
 /* 64-bit Free BSD */
7692aeb
 
d0def9a
diff -up hdf-4.2.10/mfhdf/fortran/jackets.c.in.ppc hdf-4.2.10/mfhdf/fortran/jackets.c.in
d0def9a
--- hdf-4.2.10/mfhdf/fortran/jackets.c.in.ppc	2014-02-09 19:28:44.000000000 -0700
d0def9a
+++ hdf-4.2.10/mfhdf/fortran/jackets.c.in	2014-02-14 09:18:29.860919811 -0700
d0fb78a
@@ -34,7 +34,7 @@
d0fb78a
 
d0fb78a
 struct ncfils {			/* This will be a common block from Fortran */
d0fb78a
     double dd;
d0fb78a
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
d0fb78a
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
d0fb78a
     int ll;
d0fb78a
 #else
d0fb78a
     long ll;
2cb4675
@@ -65,7 +65,7 @@ struct ncfils {			/* This will be a comm
d0fb78a
 
d0fb78a
 struct ncfils {			/* This will be a common block from Fortran */
d0fb78a
     double dd;
d0fb78a
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
d0fb78a
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
d0fb78a
     int ll;
d0fb78a
 #else
d0fb78a
     long ll;
d0def9a
@@ -420,7 +420,7 @@ stoig(shorts, ints, dims, basis, ndims)
d0fb78a
 }
d0fb78a
 #endif /* FORTRAN_HAS_NO_SHORT */
d0fb78a
 
d0fb78a
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
d0fb78a
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
d0fb78a
 /*
d0fb78a
  * Convert multi-dimensional array of NCLONGs stored in ints to packed
d0fb78a
  * array of longs, in malloc'ed space.  Returns pointer to longs or NULL
d0def9a
@@ -908,7 +908,7 @@ nncvpt1(cdfid, varid, indices, value, rc
d0fb78a
 	return;
d0fb78a
     }				/* else */
d0fb78a
 #endif				/* FORTRAN_HAS_NO_SHORT */
d0fb78a
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
d0fb78a
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
d0fb78a
 #ifdef HDF
d0fb78a
     if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
d0fb78a
 	long          longs = *(int *)value;
d0def9a
@@ -1022,7 +1022,7 @@ nncvpt(cdfid, varid, start, count, value
d0fb78a
 	return;
d0fb78a
     }				/* else */
d0fb78a
 #endif				/* FORTRAN_HAS_NO_SHORT */
d0fb78a
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
d0fb78a
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
d0fb78a
 #ifdef HDF
d0fb78a
     if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
d0fb78a
 	long *longs = itol (value, ncount, ndims);
d0def9a
@@ -1133,7 +1133,7 @@ nncvptg(cdfid, varid, start, count, stri
d0fb78a
 	tmpbasis	= nctypelen(NC_LONG);
d0fb78a
     else
d0fb78a
 #endif
d0fb78a
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
d0fb78a
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
d0fb78a
     if (datatype == NC_LONG)
d0fb78a
 	tmpbasis	= sizeof(int);
d0fb78a
     else
d0def9a
@@ -1190,7 +1190,7 @@ nncvptg(cdfid, varid, start, count, stri
d0fb78a
 	return;
d0fb78a
     }				/* else */
d0fb78a
 #endif				/* FORTRAN_HAS_NO_SHORT */
d0fb78a
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
d0fb78a
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
d0fb78a
 #ifdef HDF
d0fb78a
     if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
d0fb78a
 	long *longs = itolg (value, ncount, nbasis, ndims);
d0def9a
@@ -1326,7 +1326,7 @@ nncvgt1(cdfid, varid, indices, value, rc
d0fb78a
 	return;
d0fb78a
     }				/* else */
d0fb78a
 #endif				/* FORTRAN_HAS_NO_SHORT */
d0fb78a
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
d0fb78a
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
d0fb78a
 #ifdef HDF
d0fb78a
     if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
d0fb78a
 	long          longs;
d0def9a
@@ -1468,7 +1468,7 @@ nncvgt(cdfid, varid, start, count, value
d0fb78a
 	return;
d0fb78a
     }				/* else */
d0fb78a
 #endif				/* FORTRAN_HAS_NO_SHORT */
d0fb78a
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
d0fb78a
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
d0fb78a
 #ifdef HDF
d0fb78a
     if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
d0fb78a
 	long iocount = dimprod (ncount, ndims);	/* product of dimensions */
d0def9a
@@ -1606,7 +1606,7 @@ nncvgtg(cdfid, varid, start, count, stri
2cb4675
 	tmpbasis	= nctypelen(NC_LONG);
2cb4675
     else
2cb4675
 #endif
2cb4675
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
2cb4675
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
2cb4675
     if (datatype == NC_LONG)
2cb4675
 	tmpbasis	= sizeof(int);
2cb4675
     else
d0def9a
@@ -1677,7 +1677,7 @@ nncvgtg(cdfid, varid, start, count, stri
7692aeb
 	return;
7692aeb
     }				/* else */
7692aeb
 #endif				/* FORTRAN_HAS_NO_SHORT */
7692aeb
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
7692aeb
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
7692aeb
 #ifdef HDF
7692aeb
     if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
7692aeb
 	long iocount = dimprod (ncount, ndims);	/* product of dimensions */
d0def9a
@@ -1843,7 +1843,7 @@ nncapt(cdfid, varid, attname, datatype,
7692aeb
 	return;
7692aeb
     }				/* else */
7692aeb
 #endif				/* FORTRAN_HAS_NO_SHORT */
7692aeb
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
7692aeb
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
7692aeb
 #ifdef HDF
7692aeb
     if ((nc_type) *datatype == NC_LONG && handle->file_type!=HDF_FILE) {
7692aeb
 	long *longs = itol (value, attlen, 1);
d0def9a
@@ -2008,7 +2008,7 @@ nncagt(cdfid, varid, attname, value, rco
7692aeb
 	return;
7692aeb
     }				/* else */
7692aeb
 #endif				/* FORTRAN_HAS_NO_SHORT */
7692aeb
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
7692aeb
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
7692aeb
 #ifdef HDF
7692aeb
     if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
d0def9a
 /* EIP  We need to use int buffer to read data in on the platforms where long is 8 bytes