diff --git a/hdf-riscv64.patch b/hdf-riscv64.patch new file mode 100644 index 0000000000000000000000000000000000000000..401452e460284bee3e3e92f0745a52db6dabf208 --- /dev/null +++ b/hdf-riscv64.patch @@ -0,0 +1,333 @@ +--- a/hdf/src/hconv.h 2023-06-14 12:18:55.811618428 +0800 ++++ b/hdf/src/hconv.h 2023-06-14 13:06:48.836772758 +0800 +@@ -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__) && !defined(__loongarch64) ++#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) && !defined(__riscv) + # define UI8_IN DFKnb1b /* Unsigned Integer, 8 bits */ + # define UI8_OUT DFKnb1b + # define SI16_IN DFKnb2b /* S = Signed */ +--- a/hdf/src/hdfi.h 2023-06-14 12:18:55.811618428 +0800 ++++ b/hdf/src/hdfi.h 2023-06-14 13:08:14.042840915 +0800 +@@ -82,6 +82,7 @@ + #define DFMT_LINUXARM 0x4441 + #define DFMT_LINUXAARCH64 0x4441 + #define DFMT_LINUXLOONGARCH64 0x4441 ++#define DFMT_RISCV64 0x4441 + + /* I/O library constants */ + #define UNIXUNBUFIO 1 +@@ -1483,6 +1484,58 @@ + #endif + #endif /* Linux LoongArch64 */ + ++#if defined (__linux__) && defined (__riscv) && (__riscv_xlen == 64) ++ ++#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 1 ++ ++#include ++#include /* for unbuffered file I/O */ ++#include ++#include ++#include /* for character macros */ ++ ++#define DF_MT DFMT_RISCV64 ++ ++typedef void VOID; ++typedef void * VOIDP; ++typedef char * _fcd; ++typedef char char8; ++typedef unsigned char uchar8; ++typedef signed 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 float float32; ++typedef double float64; ++typedef int intf; /* size of INTEGERs in Fortran compiler */ ++typedef long hdf_pint_t; /* an integer the same size as a pointer */ ++#define FNAME_POST_UNDERSCORE ++#define _fcdtocp(desc) (desc) ++#define FILELIB UNIXBUFIO ++ ++#ifndef BIG_LONGS ++#define BIG_LONGS ++#endif ++ ++/* JPEG #define's - Look in the JPEG docs before changing - (Q) */ ++ ++/* Determine the memory manager we are going to use. Valid values are: */ ++/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */ ++/* what each does */ ++#define JMEMSYS MEM_ANSI ++#define HAVE_STDC ++#define INCLUDES_ARE_ANSI ++ ++#endif /* Linux/riscv64 */ ++ + #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 --text --unified a/mfhdf/ncgen/ncgen.l b/mfhdf/ncgen/ncgen.l +--- a/mfhdf/ncgen/ncgen.l 2023-06-14 12:18:55.811618428 +0800 ++++ b/mfhdf/ncgen/ncgen.l 2023-06-14 13:09:07.439129345 +0800 +@@ -113,7 +113,7 @@ + yyerror(errstr); + } + +-#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 defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64 || (defined __riscv && __riscv_xlen == 64) + if (dd < INT_MIN || dd > INT_MAX) + #else + if (dd < LONG_MIN || dd > LONG_MAX) +diff --text --unified a/mfhdf/ncgen/ncgenyy.c b/mfhdf/ncgen/ncgenyy.c +--- a/mfhdf/ncgen/ncgenyy.c 2023-06-14 12:18:55.811618428 +0800 ++++ b/mfhdf/ncgen/ncgenyy.c 2023-06-14 13:10:07.015371441 +0800 +@@ -989,7 +989,7 @@ + yyerror(errstr); + } + +-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__ || __s390x__ || __aarch64__ || defined __loongarch64 ++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__ || __s390x__ || __aarch64__ || defined __loongarch64 || (defined __riscv && __riscv_xlen == 64) + if (dd < INT_MIN || dd > INT_MAX) + #else + if (dd < LONG_MIN || dd > LONG_MAX) +共同的子目录:a/mfhdf/fortran/examples 和 b/mfhdf/fortran/examples +diff --text --unified a/mfhdf/fortran/jackets.c.in b/mfhdf/fortran/jackets.c.in +--- a/mfhdf/fortran/jackets.c.in 2023-06-14 12:18:55.811618428 +0800 ++++ b/mfhdf/fortran/jackets.c.in 2023-06-14 13:12:37.440955977 +0800 +@@ -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__ || defined __loongarch64 ++#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 || (defined __riscv && __riscv_xlen == 64) + int ll; + #else + long ll; +@@ -65,7 +65,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__ || defined __loongarch64 ++#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 || (defined __riscv && __riscv_xlen == 64) + int ll; + #else + long ll; +@@ -420,7 +420,7 @@ + } + #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__ || defined __loongarch64 ++#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 || (defined __riscv && __riscv_xlen == 64) + /* + * 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 @@ + 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__ || defined __loongarch64 ++#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 || (defined __riscv && __riscv_xlen == 64) + #ifdef HDF + if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) { + long longs = *(int *)value; +@@ -1022,7 +1022,7 @@ + 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__ || defined __loongarch64 ++#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 || (defined __riscv && __riscv_xlen == 64) + #ifdef HDF + if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) { + long *longs = itol (value, ncount, ndims); +@@ -1133,7 +1133,7 @@ + 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__ || defined __loongarch64 ++#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 || (defined __riscv && __riscv_xlen == 64) + if (datatype == NC_LONG) + tmpbasis = sizeof(int); + else +@@ -1190,7 +1190,7 @@ + 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__ || defined __loongarch64 ++#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 || (defined __riscv && __riscv_xlen == 64) + #ifdef HDF + if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) { + long *longs = itolg (value, ncount, nbasis, ndims); +@@ -1326,7 +1326,7 @@ + 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__ || defined __loongarch64 ++#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 || (defined __riscv && __riscv_xlen == 64) + #ifdef HDF + if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) { + long longs; +@@ -1468,7 +1468,7 @@ + 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__ || defined __loongarch64 ++#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 || (defined __riscv && __riscv_xlen == 64) + #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 @@ + 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__ || defined __loongarch64 ++#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 || (defined __riscv && __riscv_xlen == 64) + if (datatype == NC_LONG) + tmpbasis = sizeof(int); + else +@@ -1677,7 +1677,7 @@ + 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__ || defined __loongarch64 ++#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 || (defined __riscv && __riscv_xlen == 64) + #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 @@ + 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__ || defined __loongarch64 ++#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 || (defined __riscv && __riscv_xlen == 64) + #ifdef HDF + if ((nc_type) *datatype == NC_LONG && handle->file_type!=HDF_FILE) { + long *longs = itol (value, attlen, 1); +@@ -2008,7 +2008,7 @@ + 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__ || defined __loongarch64 ++#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 || (defined __riscv && __riscv_xlen == 64) + #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 --text --unified a/mfhdf/libsrc/array.c b/mfhdf/libsrc/array.c +--- a/mfhdf/libsrc/array.c 2023-06-14 12:18:55.811618428 +0800 ++++ b/mfhdf/libsrc/array.c 2023-06-14 13:13:05.924083029 +0800 +@@ -625,7 +625,7 @@ + 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__ || defined __loongarch64 ++#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 || (defined __riscv && __riscv_xlen == 64) + xdr_NC_fnct = xdr_int ; + #else + xdr_NC_fnct = xdr_long ; +diff --text --unified a/mfhdf/libsrc/cdf.c b/mfhdf/libsrc/cdf.c +--- a/mfhdf/libsrc/cdf.c 2023-06-14 12:18:55.811618428 +0800 ++++ b/mfhdf/libsrc/cdf.c 2023-06-14 13:13:28.280587523 +0800 +@@ -3686,7 +3686,7 @@ + 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__ || defined __loontarch64 ++#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 || (defined __riscv && __riscv_xlen == 64) + xdr_NC_fnct = xdr_int ; + #else + xdr_NC_fnct = xdr_long ; +diff --text --unified a/mfhdf/libsrc/netcdf.h.in b/mfhdf/libsrc/netcdf.h.in +--- a/mfhdf/libsrc/netcdf.h.in 2023-06-14 12:18:55.811618428 +0800 ++++ b/mfhdf/libsrc/netcdf.h.in 2023-06-14 13:13:43.177145992 +0800 +@@ -293,7 +293,7 @@ + /* + * 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__ || defined __loongarch64 ++#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 || (defined __riscv && __riscv_xlen == 64) + /* + * 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 --text --unified a/mfhdf/libsrc/putget.c b/mfhdf/libsrc/putget.c +--- a/mfhdf/libsrc/putget.c 2023-06-14 12:18:55.811618428 +0800 ++++ b/mfhdf/libsrc/putget.c 2023-06-14 13:16:35.645886924 +0800 +@@ -664,7 +664,7 @@ + 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__ || defined __loongarch64 ++#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 || (defined __riscv && __riscv_xlen == 64) + return( xdr_int(xdrs, (nclong *)values) ) ; + #else + return( xdr_long(xdrs, (nclong *)values) ) ; +@@ -1975,7 +1975,7 @@ + } /* 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__ || defined __loongarch64 ++#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 || (defined __riscv && __riscv_xlen == 64) + xdr_NC_fnct = xdr_int ; + #else + xdr_NC_fnct = xdr_long ; +diff --text --unified a/mfhdf/libsrc/xdrposix.c b/mfhdf/libsrc/xdrposix.c +--- a/mfhdf/libsrc/xdrposix.c 2023-06-14 12:18:55.811618428 +0800 ++++ b/mfhdf/libsrc/xdrposix.c 2023-06-14 13:18:44.928270056 +0800 +@@ -254,7 +254,7 @@ + + 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__ || defined __loongarch64 ++#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64 || (defined __riscv && __riscv_xlen == 64) + static bool_t xdrposix_getint(); + static bool_t xdrposix_putint(); + #endif +@@ -268,7 +268,7 @@ + #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__ || defined __loongarch64 ++#if ((defined __x86_64__ ) && !(defined __sun && defined _LP64)) || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64 || (defined __riscv && __riscv_xlen == 64) + static int32_t * xdrposix_inline(); + #else + #if (defined __alpha ) +@@ -298,9 +298,9 @@ + 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__ || defined __loongarch64 ++#if (defined __sun && defined _LP64) || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64 || (defined __riscv && __riscv_xlen == 64) + xdrposix_destroy, /* destroy stream */ +-#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 */ ++#if !(defined __aarch64__) && !(defined __riscv && __riscv_xlen == 64) && !(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 @@ + #if (defined __alpha) + static int* + #else +-#if ((defined __x86_64__) && !(defined __sun && defined _LP64)) || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64 ++#if ((defined __x86_64__) && !(defined __sun && defined _LP64)) || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64 || (defined __riscv && __riscv_xlen == 64) + static int32_t * + #else + static netlong * +@@ -584,7 +584,7 @@ + return (NULL); + } + +-#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64 ++#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__ || defined __loongarch64 || (defined __riscv && __riscv_xlen == 64) + + static bool_t + xdrposix_getint(xdrs, lp) diff --git a/hdf.spec b/hdf.spec index c82ec3f0aac321c5310c228cd7a526e426142916..1142078f47af0bf03fb06498420194b71e08a3e2 100644 --- a/hdf.spec +++ b/hdf.spec @@ -1,6 +1,6 @@ Name: hdf Version: 4.2.14 -Release: 3 +Release: 4 Summary: A general purpose library and file format for storing scientific data License: IJG URL: https://portal.hdfgroup.org/ @@ -20,6 +20,8 @@ Patch8: hdf-4.2.10-aarch64.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1134385 Patch9: hdf-ppc64le.patch Patch10: 0001-add-loongarch64-support-for-hdf.patch +## riscv64 support +Patch11: hdf-riscv64.patch # Fix syntax error on epel6 builds # Use only if java is disabled @@ -64,6 +66,7 @@ HDF development headers and libraries. %patch8 -p1 -b .aarch64 %patch9 -p1 -b .ppc64le %patch10 -p1 -b .loongarch64 +%patch11 -p1 -b .riscv64 find . -type f -name "*.h" -exec chmod 0644 '{}' \; find . -type f -name "*.c" -exec chmod 0644 '{}' \; @@ -136,6 +139,9 @@ make -j1 check %{_pkgdocdir}/examples/ %changelog +* Wed Jun 14 2023 EastDong - 4.2.14-4 +- Add riscv64 support + * Thu Jun 8 2023 Wenlong Zhang - 4.2.14-3 - add loongarch64 support for hdf