Package: libhdf4 Version: 4.2.15-5 Severity: wishlist Tags: patch User: [email protected] Usertags: loongarch64
Dear maintainers, I have added support for loongarch64 in libhdf4 source package. The results of test-units(make check) all passed. Please consider applying the attached patch. thanks, Dandan Zhang
diff --git a/hdf/src/hconv.h b/hdf/src/hconv.h index 7f0cf0d..d0c4cdf 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(__powerpc__) && defined(__LITTLE_ENDIAN__)) && !defined(__aarch64__) && !defined(__ARM_EABI__) && !defined(__riscv) +#if !defined(INTEL86) && !defined(MIPSEL) && !defined(DEC_ALPHA) && !defined(I860) && !defined(SUN386) && !(defined(__ia64) && !(defined(hpux) || defined(__hpux))) && !defined(__x86_64__) && !(defined(__powerpc__) && defined(__LITTLE_ENDIAN__)) && !defined(__aarch64__) && !defined(__ARM_EABI__) && !defined(__riscv) && !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 bdb94cc..f5ec978 100644 --- a/hdf/src/hdfi.h +++ b/hdf/src/hdfi.h @@ -84,6 +84,7 @@ #define DFMT_SH 0x4441 #define DFMT_SHEB 0x1111 #define DFMT_RISCV64 0x4441 +#define DFMT_LOONGARCH64 0x4441 /* I/O library constants */ #define UNIXUNBUFIO 1 @@ -1087,6 +1088,58 @@ typedef long hdf_pint_t; /* an integer the same size as a pointer #endif /* Linux/aarch64 */ +#if defined (__linux__) && 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 1 + +#include <fcntl.h> +#include <sys/types.h> /* for unbuffered file I/O */ +#include <sys/stat.h> +#include <unistd.h> +#include <ctype.h> /* for character macros */ + +#define DF_MT DFMT_LOONGARCH64 + +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/loongarch64 */ + #if defined (__linux__) && defined (__riscv) && (__riscv_xlen == 64) #ifdef GOT_MACHINE diff --git a/mfhdf/libsrc/netcdf.h.in b/mfhdf/libsrc/netcdf.h.in index d8e8b0b..6de3477 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 __sparc__ && defined __arch64__) || defined __s390x__ || defined __aarch64__ || (defined __riscv && __riscv_xlen == 64) +#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || (defined __sparc__ && defined __arch64__) || defined __s390x__ || defined __aarch64__ || (defined __riscv && __riscv_xlen == 64) || 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/ncgen/ncgen.l b/mfhdf/ncgen/ncgen.l index cdaf0af..b19c82b 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__ || (defined __riscv && __riscv_xlen == 64) +#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__ || defined __s390x__ || defined __aarch64__ || (defined __riscv && __riscv_xlen == 64) || 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 8ee3720..8ff0a82 100644 --- a/mfhdf/ncgen/ncgenyy.c +++ b/mfhdf/ncgen/ncgenyy.c @@ -991,7 +991,7 @@ YY_RULE_SETUP yyerror(errstr); } -#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__ || (defined __riscv && __riscv_xlen == 64) +#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__ || (defined __riscv && __riscv_xlen == 64) || defined __loongarch64 if (dd < INT_MIN || dd > INT_MAX) #else if (dd < LONG_MIN || dd > LONG_MAX)
_______________________________________________ Pkg-grass-devel mailing list [email protected] https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/pkg-grass-devel
