!9 add loongarch64 support for hdf
From: @zhangwenlong01 Reviewed-by: @small_leek Signed-off-by: @small_leek
This commit is contained in:
commit
5ef29421df
351
0001-add-loongarch64-support-for-hdf.patch
Normal file
351
0001-add-loongarch64-support-for-hdf.patch
Normal file
@ -0,0 +1,351 @@
|
||||
From 095624501c5e3eca3e341719316983b4656912b4 Mon Sep 17 00:00:00 2001
|
||||
From: Wenlong Zhang <zhangwenlong@loongson.cn>
|
||||
Date: Thu, 8 Jun 2023 12:32:56 +0000
|
||||
Subject: [PATCH] add loongarch64 support for hdf
|
||||
|
||||
---
|
||||
hdf/src/hconv.h | 2 +-
|
||||
hdf/src/hdfi.h | 39 ++++++++++++++++++++++++++++++++++++++
|
||||
mfhdf/fortran/jackets.c.in | 26 ++++++++++++-------------
|
||||
mfhdf/libsrc/array.c | 2 +-
|
||||
mfhdf/libsrc/cdf.c | 2 +-
|
||||
mfhdf/libsrc/netcdf.h.in | 2 +-
|
||||
mfhdf/libsrc/putget.c | 4 ++--
|
||||
mfhdf/libsrc/xdrposix.c | 12 ++++++------
|
||||
mfhdf/ncgen/ncgen.l | 2 +-
|
||||
mfhdf/ncgen/ncgenyy.c | 2 +-
|
||||
10 files changed, 66 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/hdf/src/hconv.h b/hdf/src/hconv.h
|
||||
index d6a8748..afe33c4 100644
|
||||
--- a/hdf/src/hconv.h
|
||||
+++ b/hdf/src/hconv.h
|
||||
@@ -59,7 +59,7 @@
|
||||
/* CONSTANT DEFINITIONS */
|
||||
/*****************************************************************************/
|
||||
/* Generally Big-Endian machines */
|
||||
-#if !defined(INTEL86) && !defined(MIPSEL) && !defined(DEC_ALPHA) && !defined(I860) && !defined(SUN386) && !(defined(__ia64) && !(defined(hpux) || defined(__hpux))) && !defined(__x86_64__) && !defined(__arm__) && !defined(__AARCH64EL__) && !defined(__LITTLE_ENDIAN__)
|
||||
+#if !defined(INTEL86) && !defined(MIPSEL) && !defined(DEC_ALPHA) && !defined(I860) && !defined(SUN386) && !(defined(__ia64) && !(defined(hpux) || defined(__hpux))) && !defined(__x86_64__) && !defined(__arm__) && !defined(__AARCH64EL__) && !defined(__LITTLE_ENDIAN__) && !defined(__loongarch64)
|
||||
# define UI8_IN DFKnb1b /* Unsigned Integer, 8 bits */
|
||||
# define UI8_OUT DFKnb1b
|
||||
# define SI16_IN DFKnb2b /* S = Signed */
|
||||
diff --git a/hdf/src/hdfi.h b/hdf/src/hdfi.h
|
||||
index 42673a7..c96ad76 100644
|
||||
--- a/hdf/src/hdfi.h
|
||||
+++ b/hdf/src/hdfi.h
|
||||
@@ -81,6 +81,7 @@
|
||||
#define DFMT_LINUX390 0x1111
|
||||
#define DFMT_LINUXARM 0x4441
|
||||
#define DFMT_LINUXAARCH64 0x4441
|
||||
+#define DFMT_LINUXLOONGARCH64 0x4441
|
||||
|
||||
/* I/O library constants */
|
||||
#define UNIXUNBUFIO 1
|
||||
@@ -1384,6 +1385,44 @@ typedef long hdf_pint_t; /* an integer the same size as a pointer
|
||||
#endif
|
||||
#endif /* Linux AArch64 */
|
||||
|
||||
+/* Linux LoongArch64 */
|
||||
+#if defined __loongarch64
|
||||
+
|
||||
+#ifdef GOT_MACHINE
|
||||
+If you get an error on this line more than one machine type has been defined.
|
||||
+Please check your Makefile.
|
||||
+#endif
|
||||
+#define GOT_MACHINE
|
||||
+
|
||||
+#include <sys/file.h> /* for unbuffered i/o stuff */
|
||||
+#include <sys/stat.h>
|
||||
+#define DF_MT DFMT_LINUXAARCH64
|
||||
+typedef void VOID;
|
||||
+typedef void *VOIDP;
|
||||
+typedef char *_fcd;
|
||||
+typedef char char8;
|
||||
+typedef unsigned char uchar8;
|
||||
+typedef char int8;
|
||||
+typedef unsigned char uint8;
|
||||
+typedef short int int16;
|
||||
+typedef unsigned short int uint16;
|
||||
+typedef int int32;
|
||||
+typedef unsigned int uint32;
|
||||
+typedef int intn;
|
||||
+typedef unsigned int uintn;
|
||||
+typedef int intf; /* size of INTEGERs in Fortran compiler */
|
||||
+typedef float float32;
|
||||
+typedef double float64;
|
||||
+typedef long hdf_pint_t; /* an integer the same size as a pointer */
|
||||
+#define FNAME_POST_UNDERSCORE
|
||||
+#define _fcdtocp(desc) (desc)
|
||||
+#ifdef HAVE_FMPOOL
|
||||
+#define FILELIB PAGEBUFIO /* enable page buffering */
|
||||
+#else
|
||||
+#define FILELIB UNIXBUFIO
|
||||
+#endif
|
||||
+#endif /* Linux LoongArch64 */
|
||||
+
|
||||
#ifndef GOT_MACHINE
|
||||
No machine type has been defined. Your Makefile needs to have someing like
|
||||
-DSUN or -DUNICOS in order for the HDF internal structures to be defined
|
||||
diff --git a/mfhdf/fortran/jackets.c.in b/mfhdf/fortran/jackets.c.in
|
||||
index b2ade09..a5ba27d 100644
|
||||
--- a/mfhdf/fortran/jackets.c.in
|
||||
+++ b/mfhdf/fortran/jackets.c.in
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
struct ncfils { /* This will be a common block from Fortran */
|
||||
double dd;
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
int ll;
|
||||
#else
|
||||
long ll;
|
||||
@@ -65,7 +65,7 @@ struct ncfils { /* This will be a common block from Fortran */
|
||||
|
||||
struct ncfils { /* This will be a common block from Fortran */
|
||||
double dd;
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
int ll;
|
||||
#else
|
||||
long ll;
|
||||
@@ -420,7 +420,7 @@ stoig(shorts, ints, dims, basis, ndims)
|
||||
}
|
||||
#endif /* FORTRAN_HAS_NO_SHORT */
|
||||
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
/*
|
||||
* Convert multi-dimensional array of NCLONGs stored in ints to packed
|
||||
* array of longs, in malloc'ed space. Returns pointer to longs or NULL
|
||||
@@ -908,7 +908,7 @@ nncvpt1(cdfid, varid, indices, value, rcode)
|
||||
return;
|
||||
} /* else */
|
||||
#endif /* FORTRAN_HAS_NO_SHORT */
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
#ifdef HDF
|
||||
if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
|
||||
long longs = *(int *)value;
|
||||
@@ -1022,7 +1022,7 @@ nncvpt(cdfid, varid, start, count, value, rcode)
|
||||
return;
|
||||
} /* else */
|
||||
#endif /* FORTRAN_HAS_NO_SHORT */
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
#ifdef HDF
|
||||
if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
|
||||
long *longs = itol (value, ncount, ndims);
|
||||
@@ -1133,7 +1133,7 @@ nncvptg(cdfid, varid, start, count, stride, basis, value, rcode)
|
||||
tmpbasis = nctypelen(NC_LONG);
|
||||
else
|
||||
#endif
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
if (datatype == NC_LONG)
|
||||
tmpbasis = sizeof(int);
|
||||
else
|
||||
@@ -1190,7 +1190,7 @@ nncvptg(cdfid, varid, start, count, stride, basis, value, rcode)
|
||||
return;
|
||||
} /* else */
|
||||
#endif /* FORTRAN_HAS_NO_SHORT */
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
#ifdef HDF
|
||||
if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
|
||||
long *longs = itolg (value, ncount, nbasis, ndims);
|
||||
@@ -1326,7 +1326,7 @@ nncvgt1(cdfid, varid, indices, value, rcode)
|
||||
return;
|
||||
} /* else */
|
||||
#endif /* FORTRAN_HAS_NO_SHORT */
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
#ifdef HDF
|
||||
if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
|
||||
long longs;
|
||||
@@ -1468,7 +1468,7 @@ nncvgt(cdfid, varid, start, count, value, rcode)
|
||||
return;
|
||||
} /* else */
|
||||
#endif /* FORTRAN_HAS_NO_SHORT */
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
#ifdef HDF
|
||||
if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
|
||||
long iocount = dimprod (ncount, ndims); /* product of dimensions */
|
||||
@@ -1606,7 +1606,7 @@ nncvgtg(cdfid, varid, start, count, stride, basis, value, rcode)
|
||||
tmpbasis = nctypelen(NC_LONG);
|
||||
else
|
||||
#endif
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
if (datatype == NC_LONG)
|
||||
tmpbasis = sizeof(int);
|
||||
else
|
||||
@@ -1677,7 +1677,7 @@ nncvgtg(cdfid, varid, start, count, stride, basis, value, rcode)
|
||||
return;
|
||||
} /* else */
|
||||
#endif /* FORTRAN_HAS_NO_SHORT */
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
#ifdef HDF
|
||||
if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
|
||||
long iocount = dimprod (ncount, ndims); /* product of dimensions */
|
||||
@@ -1843,7 +1843,7 @@ nncapt(cdfid, varid, attname, datatype, attlen, value, rcode, attnamelen)
|
||||
return;
|
||||
} /* else */
|
||||
#endif /* FORTRAN_HAS_NO_SHORT */
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
#ifdef HDF
|
||||
if ((nc_type) *datatype == NC_LONG && handle->file_type!=HDF_FILE) {
|
||||
long *longs = itol (value, attlen, 1);
|
||||
@@ -2008,7 +2008,7 @@ nncagt(cdfid, varid, attname, value, rcode, attnamelen)
|
||||
return;
|
||||
} /* else */
|
||||
#endif /* FORTRAN_HAS_NO_SHORT */
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
#ifdef HDF
|
||||
if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
|
||||
/* EIP We need to use int buffer to read data in on the platforms where long is 8 bytes
|
||||
diff --git a/mfhdf/libsrc/array.c b/mfhdf/libsrc/array.c
|
||||
index 4e97578..8a3bd18 100644
|
||||
--- a/mfhdf/libsrc/array.c
|
||||
+++ b/mfhdf/libsrc/array.c
|
||||
@@ -625,7 +625,7 @@ xdr_NC_array(xdrs, app)
|
||||
xdr_NC_fnct = xdr_shorts ;
|
||||
goto func ;
|
||||
case NC_LONG :
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
xdr_NC_fnct = xdr_int ;
|
||||
#else
|
||||
xdr_NC_fnct = xdr_long ;
|
||||
diff --git a/mfhdf/libsrc/cdf.c b/mfhdf/libsrc/cdf.c
|
||||
index bf6f7b3..ae8166e 100644
|
||||
--- a/mfhdf/libsrc/cdf.c
|
||||
+++ b/mfhdf/libsrc/cdf.c
|
||||
@@ -3686,7 +3686,7 @@ NC_var *vp ;
|
||||
break ;
|
||||
case NC_LONG :
|
||||
alen /= 4 ;
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loontarch64
|
||||
xdr_NC_fnct = xdr_int ;
|
||||
#else
|
||||
xdr_NC_fnct = xdr_long ;
|
||||
diff --git a/mfhdf/libsrc/netcdf.h.in b/mfhdf/libsrc/netcdf.h.in
|
||||
index 2e5fb48..328c7e6 100644
|
||||
--- a/mfhdf/libsrc/netcdf.h.in
|
||||
+++ b/mfhdf/libsrc/netcdf.h.in
|
||||
@@ -293,7 +293,7 @@ typedef double ncdouble;
|
||||
/*
|
||||
* Variables/attributes of type NC_LONG should use the C type 'nclong'
|
||||
*/
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
/*
|
||||
* LP64 (also known as 4/8/8) denotes long and pointer as 64 bit types.
|
||||
* http://www.unix.org/version2/whatsnew/lp64_wp.html
|
||||
diff --git a/mfhdf/libsrc/putget.c b/mfhdf/libsrc/putget.c
|
||||
index 7e24686..c75489c 100644
|
||||
--- a/mfhdf/libsrc/putget.c
|
||||
+++ b/mfhdf/libsrc/putget.c
|
||||
@@ -664,7 +664,7 @@ Void *values ;
|
||||
case NC_SHORT :
|
||||
return( xdr_NCvshort(xdrs, (unsigned)rem/2, (short *)values) ) ;
|
||||
case NC_LONG :
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
return( xdr_int(xdrs, (nclong *)values) ) ;
|
||||
#else
|
||||
return( xdr_long(xdrs, (nclong *)values) ) ;
|
||||
@@ -1975,7 +1975,7 @@ Void *values ;
|
||||
} /* else */
|
||||
return(TRUE) ;
|
||||
case NC_LONG :
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
xdr_NC_fnct = xdr_int ;
|
||||
#else
|
||||
xdr_NC_fnct = xdr_long ;
|
||||
diff --git a/mfhdf/libsrc/xdrposix.c b/mfhdf/libsrc/xdrposix.c
|
||||
index 91802c1..e2f1cd2 100644
|
||||
--- a/mfhdf/libsrc/xdrposix.c
|
||||
+++ b/mfhdf/libsrc/xdrposix.c
|
||||
@@ -254,7 +254,7 @@ int nbytes;
|
||||
|
||||
static bool_t xdrposix_getlong();
|
||||
static bool_t xdrposix_putlong();
|
||||
-#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
static bool_t xdrposix_getint();
|
||||
static bool_t xdrposix_putint();
|
||||
#endif
|
||||
@@ -268,7 +268,7 @@ static long * xdrposix_inline();
|
||||
#if (defined __sun && defined _LP64)
|
||||
static rpc_inline_t * xdrposix_inline();
|
||||
#else
|
||||
-#if ((defined __x86_64__ ) && !(defined __sun && defined _LP64)) || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if ((defined __x86_64__ ) && !(defined __sun && defined _LP64)) || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
static int32_t * xdrposix_inline();
|
||||
#else
|
||||
#if (defined __alpha )
|
||||
@@ -298,9 +298,9 @@ static struct xdr_ops xdrposix_ops = {
|
||||
xdrposix_getpos, /* get offset in the stream */
|
||||
xdrposix_setpos, /* set offset in the stream */
|
||||
xdrposix_inline, /* prime stream for inline macros */
|
||||
-#if (defined __sun && defined _LP64) || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if (defined __sun && defined _LP64) || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
xdrposix_destroy, /* destroy stream */
|
||||
-#if !(defined __aarch64__) && !(defined __s390x__) && !(defined __x86_64__) && !(defined __powerpc64__) || (defined __sun && defined _LP64) /* i.e. we are on SUN/Intel in 64-bit mode */
|
||||
+#if !(defined __aarch64__) && !(defined __s390x__) && !(defined __x86_64__) && !(defined __powerpc64__) || (defined __sun && defined _LP64) || (!defined __loongarch64)/* i.e. we are on SUN/Intel in 64-bit mode */
|
||||
NULL, /* no xdr_control function defined */
|
||||
#endif
|
||||
/* Solaris 64-bit (arch=v9 and arch=amd64) has 64 bits long and 32 bits int. */
|
||||
@@ -556,7 +556,7 @@ static rpc_inline_t *
|
||||
#if (defined __alpha)
|
||||
static int*
|
||||
#else
|
||||
-#if ((defined __x86_64__) && !(defined __sun && defined _LP64)) || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if ((defined __x86_64__) && !(defined __sun && defined _LP64)) || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
static int32_t *
|
||||
#else
|
||||
static netlong *
|
||||
@@ -584,7 +584,7 @@ int
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
-#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
|
||||
static bool_t
|
||||
xdrposix_getint(xdrs, lp)
|
||||
diff --git a/mfhdf/ncgen/ncgen.l b/mfhdf/ncgen/ncgen.l
|
||||
index f23bdf6..ac8fe95 100644
|
||||
--- a/mfhdf/ncgen/ncgen.l
|
||||
+++ b/mfhdf/ncgen/ncgen.l
|
||||
@@ -113,7 +113,7 @@ FloatInf|Infinity|Inf { /* float missing values */
|
||||
yyerror(errstr);
|
||||
}
|
||||
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__ || defined __s390x__ || defined __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64
|
||||
if (dd < INT_MIN || dd > INT_MAX)
|
||||
#else
|
||||
if (dd < LONG_MIN || dd > LONG_MAX)
|
||||
diff --git a/mfhdf/ncgen/ncgenyy.c b/mfhdf/ncgen/ncgenyy.c
|
||||
index 22dcf2f..4dd47b4 100644
|
||||
--- a/mfhdf/ncgen/ncgenyy.c
|
||||
+++ b/mfhdf/ncgen/ncgenyy.c
|
||||
@@ -989,7 +989,7 @@ YY_RULE_SETUP
|
||||
yyerror(errstr);
|
||||
}
|
||||
|
||||
-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__ || __s390x__ || __aarch64__
|
||||
+#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__ || __s390x__ || __aarch64__ || defined __loongarch64
|
||||
if (dd < INT_MIN || dd > INT_MAX)
|
||||
#else
|
||||
if (dd < LONG_MIN || dd > LONG_MAX)
|
||||
--
|
||||
2.33.0
|
||||
|
||||
7
hdf.spec
7
hdf.spec
@ -1,6 +1,6 @@
|
||||
Name: hdf
|
||||
Version: 4.2.14
|
||||
Release: 2
|
||||
Release: 3
|
||||
Summary: A general purpose library and file format for storing scientific data
|
||||
License: IJG
|
||||
URL: https://portal.hdfgroup.org/
|
||||
@ -19,6 +19,7 @@ Patch8: hdf-4.2.10-aarch64.patch
|
||||
# ppc64le support
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1134385
|
||||
Patch9: hdf-ppc64le.patch
|
||||
Patch10: 0001-add-loongarch64-support-for-hdf.patch
|
||||
|
||||
# Fix syntax error on epel6 builds
|
||||
# Use only if java is disabled
|
||||
@ -62,6 +63,7 @@ HDF development headers and libraries.
|
||||
%patch6 -p1 -b .examplesdir
|
||||
%patch8 -p1 -b .aarch64
|
||||
%patch9 -p1 -b .ppc64le
|
||||
%patch10 -p1 -b .loongarch64
|
||||
|
||||
find . -type f -name "*.h" -exec chmod 0644 '{}' \;
|
||||
find . -type f -name "*.c" -exec chmod 0644 '{}' \;
|
||||
@ -134,6 +136,9 @@ make -j1 check
|
||||
%{_pkgdocdir}/examples/
|
||||
|
||||
%changelog
|
||||
* Thu Jun 8 2023 Wenlong Zhang<zhangwenlong@loongson.cn> - 4.2.14-3
|
||||
- add loongarch64 support for hdf
|
||||
|
||||
* Tue Aug 10 2021 wangyue <wangyue92@huawei.com> - 4.2.14-2
|
||||
- fix build error with gcc-10
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user