diff --git a/Golden_Repo/d/Doxygen/Doxygen-1.9.4-GCCcore-11.3.0.eb b/Golden_Repo/d/Doxygen/Doxygen-1.9.4-GCCcore-11.3.0.eb
new file mode 100644
index 0000000000000000000000000000000000000000..b66694660858a47c219fc4c1d5e461491cef7c83
--- /dev/null
+++ b/Golden_Repo/d/Doxygen/Doxygen-1.9.4-GCCcore-11.3.0.eb
@@ -0,0 +1,31 @@
+name = 'Doxygen'
+version = '1.9.4'
+
+homepage = 'https://www.doxygen.org'
+description = """
+ Doxygen is a documentation system for C++, C, Java, Objective-C, Python,
+ IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some
+ extent D.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['%(namelower)s-%(version)s.src.tar.gz']
+checksums = ['a15e9cd8c0d02b7888bc8356eac200222ecff1defd32f3fe05257d81227b1f37']
+
+builddependencies = [
+    ('binutils', '2.38'),
+    ('Bison', '3.8.2'),
+    ('CMake', '3.23.1'),
+    ('flex', '2.6.4'),
+    ('pkgconf', '1.8.0'),
+]
+
+dependencies = [
+    ('libiconv', '1.17'),
+]
+
+configopts = "-DICONV_DIR=$EBROOTLIBICONV -DICONV_IN_GLIBC=OFF"
+
+moduleclass = 'devel'
diff --git a/Golden_Repo/h/HDF/HDF-4.2.15-GCCcore-11.3.0.eb b/Golden_Repo/h/HDF/HDF-4.2.15-GCCcore-11.3.0.eb
new file mode 100644
index 0000000000000000000000000000000000000000..682e5e20b6cabdf232356983049af1b707ba5b37
--- /dev/null
+++ b/Golden_Repo/h/HDF/HDF-4.2.15-GCCcore-11.3.0.eb
@@ -0,0 +1,62 @@
+easyblock = 'ConfigureMake'
+
+name = 'HDF'
+version = '4.2.15'
+
+homepage = 'https://www.hdfgroup.org/products/hdf4/'
+
+description = """
+ HDF (also known as HDF4) is a library and multi-object file format for
+ storing and managing data between machines.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
+sources = [SOURCELOWER_TAR_GZ]
+patches = ['HDF-4.2.15_fix-aarch64.patch']
+checksums = [
+    'dbeeef525af7c2d01539906c28953f0fdab7dba603d1bc1ec4a5af60d002c459',  # hdf-4.2.15.tar.gz
+    '1b4341e309cccefc6ea4310c8f8b08cc3dfe1fa9609b7fa7aee80e4dac598473',  # HDF-4.2.15_fix-aarch64.patch
+]
+
+builddependencies = [
+    ('binutils', '2.38'),
+    ('Bison', '3.8.2'),
+    ('flex', '2.6.4'),
+]
+
+dependencies = [
+    ('libjpeg-turbo', '2.1.3'),
+    ('Szip', '2.1.1'),
+    ('zlib', '1.2.12'),
+    ('libtirpc', '1.3.2'),
+]
+
+preconfigopts = "LIBS='-ltirpc' "
+local_common_configopts = '--with-szlib=$EBROOTSZIP CFLAGS="$CFLAGS -I$EBROOTLIBTIRPC/include/tirpc" '
+local_common_configopts += '--includedir=%(installdir)s/include/%(namelower)s '
+configopts = [
+    # -fallow-argument-mismatch is required to compile with GCC 10.x
+    local_common_configopts + 'FFLAGS="$FFLAGS -fallow-argument-mismatch"',
+    # Cannot build shared libraries and Fortran...
+    # https://trac.osgeo.org/gdal/wiki/HDF#IncompatibilitywithNetCDFLibraries
+    # netcdf must be disabled to allow HDF to be used by GDAL
+    local_common_configopts + "--enable-shared --disable-fortran --disable-netcdf",
+]
+
+modextrapaths = {'CPATH': 'include/hdf'}
+
+sanity_check_paths = {
+    'files': ['bin/h4cc', 'bin/ncdump', 'lib/libdf.a', 'lib/libhdf4.settings', 'lib/libmfhdf.a',
+              'lib/libmfhdf.%s' % SHLIB_EXT],
+    'dirs': ['include/hdf'],
+}
+
+sanity_check_commands = [
+    "h4cc --help",
+    "ncdump -V",
+]
+
+moduleclass = 'data'
diff --git a/Golden_Repo/h/HDF/HDF-4.2.15_fix-aarch64.patch b/Golden_Repo/h/HDF/HDF-4.2.15_fix-aarch64.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ffd703095baf048d551a6847e5b5b737aaa4ee90
--- /dev/null
+++ b/Golden_Repo/h/HDF/HDF-4.2.15_fix-aarch64.patch
@@ -0,0 +1,302 @@
+fix installation of HDF on aarch64, fixes compilation problems like:
+hdfi.h:1119:1: error: unknown type name 'No'
+ 1119 | No machine type has been defined.  Your Makefile needs to have someing like
+
+cfr. https://src.fedoraproject.org/rpms/hdf/blob/rawhide/f/hdf-aarch64.patch
+diff -ru hdf-4.2.15.orig/hdf/src/hconv.h hdf-4.2.15/hdf/src/hconv.h
+--- hdf-4.2.15.orig/hdf/src/hconv.h	2020-03-03 17:40:50.000000000 +0000
++++ hdf-4.2.15/hdf/src/hconv.h	2021-06-05 14:08:07.061188314 +0000
+@@ -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__)
++#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__)
+ #       define UI8_IN     DFKnb1b   /* Unsigned Integer, 8 bits */
+ #       define UI8_OUT    DFKnb1b
+ #       define SI16_IN    DFKnb2b   /* S = Signed */
+diff -ru hdf-4.2.15.orig/hdf/src/hdfi.h hdf-4.2.15/hdf/src/hdfi.h
+--- hdf-4.2.15.orig/hdf/src/hdfi.h	2020-03-03 17:40:50.000000000 +0000
++++ hdf-4.2.15/hdf/src/hdfi.h	2021-06-05 14:07:29.321474674 +0000
+@@ -75,6 +75,8 @@
+ #define     DFMT_IA64           0x4441
+ #define     DFMT_LINUX64        0x4441
+ #define     DFMT_POWERPC64      0x1111
++#define     DFMT_LINUXARM       0x4441
++#define     DFMT_LINUXAARCH64   0x4441
+ 
+ /* I/O library constants */
+ #define UNIXUNBUFIO 1
+@@ -1115,6 +1117,44 @@
+ 
+ #endif /* IA64 */
+ 
++/* Linux AArch64 */
++#if defined __aarch64__
++
++#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 AArch64 */
++
+ #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 -ru hdf-4.2.15.orig/mfhdf/fortran/jackets.c.in hdf-4.2.15/mfhdf/fortran/jackets.c.in
+--- hdf-4.2.15.orig/mfhdf/fortran/jackets.c.in	2020-03-03 17:40:50.000000000 +0000
++++ hdf-4.2.15/mfhdf/fortran/jackets.c.in	2021-06-05 14:10:46.759976563 +0000
+@@ -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__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__
+     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__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__
+     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__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__
+ /*
+  * 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__
++#if  defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__
+ #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__
++#if  defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__
+ #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__
++#if  defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__
+     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__
++#if  defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__
+ #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__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__
+ #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__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__
+ #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__
++#if  defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__
+     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__
++#if  defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__
+ #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__
++#if  defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__
+ #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__
++#if  defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__
+ #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 -ru hdf-4.2.15.orig/mfhdf/libsrc/netcdf.h.in hdf-4.2.15/mfhdf/libsrc/netcdf.h.in
+--- hdf-4.2.15.orig/mfhdf/libsrc/netcdf.h.in	2020-03-03 17:40:50.000000000 +0000
++++ hdf-4.2.15/mfhdf/libsrc/netcdf.h.in	2021-06-05 14:11:19.389728978 +0000
+@@ -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__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__
+ /*
+  * 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 -ru hdf-4.2.15.orig/mfhdf/libsrc/putget.c hdf-4.2.15/mfhdf/libsrc/putget.c
+--- hdf-4.2.15.orig/mfhdf/libsrc/putget.c	2020-03-03 17:40:50.000000000 +0000
++++ hdf-4.2.15/mfhdf/libsrc/putget.c	2021-06-05 14:11:54.279464243 +0000
+@@ -665,7 +665,7 @@
+     case NC_SHORT :
+         return( xdr_NCvshort(xdrs, (unsigned)rem/2, (short *)values) ) ;
+     case NC_LONG :
+-#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ 
++#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__
+         return( xdr_int(xdrs, (nclong *)values) ) ;
+ #else
+         return( xdr_long(xdrs, (nclong *)values) ) ;
+diff -ru hdf-4.2.15.orig/mfhdf/libsrc/xdrposix.c hdf-4.2.15/mfhdf/libsrc/xdrposix.c
+--- hdf-4.2.15.orig/mfhdf/libsrc/xdrposix.c	2020-03-03 17:40:50.000000000 +0000
++++ hdf-4.2.15/mfhdf/libsrc/xdrposix.c	2021-06-05 14:13:41.138652587 +0000
+@@ -262,7 +262,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__
++#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__
+ static bool_t   xdrposix_getint();
+ static bool_t   xdrposix_putint();
+ #endif
+@@ -276,7 +276,7 @@
+ #if (defined __sun && defined _LP64)
+ static rpc_inline_t *    xdrposix_inline();
+ #else
+-#if ((defined __x86_64__ ) && !(defined __sun && defined _LP64)) || defined __powerpc64__
++#if ((defined __x86_64__ ) && !(defined __sun && defined _LP64)) || defined __powerpc64__|| defined __aarch64__
+ static int32_t *    xdrposix_inline();
+ #else
+ static netlong *    xdrposix_inline();
+@@ -302,9 +302,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__
++#if (defined __sun && defined _LP64) || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__
+     xdrposix_destroy,   /* destroy stream */
+-#if !(defined __x86_64__) && !(defined __powerpc64__) || (defined  __sun && defined _LP64) /* i.e. we are on SUN/Intel in 64-bit mode */
++#if !(defined __x86_64__) && !(defined __powerpc64__) && !(defined __aarch64__) || (defined  __sun && defined _LP64) /* 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. */
+@@ -442,7 +442,7 @@
+     long *lp;
+ {
+     unsigned char *up = (unsigned char *)lp ;
+-#if (defined AIX5L64 || defined __powerpc64__ || (defined __hpux && __LP64__))
++#if (defined AIX5L64 || defined __powerpc64__ || (defined __hpux && __LP64__)) || defined __aarch64__
+     *lp = 0 ;
+     up += (sizeof(long) - 4) ;
+ #endif
+@@ -560,7 +560,7 @@
+ #if (defined __sun && defined _LP64)
+ static rpc_inline_t *
+ #else
+-#if ((defined  __x86_64__) && !(defined __sun && defined _LP64)) || defined __powerpc64__
++#if ((defined  __x86_64__) && !(defined __sun && defined _LP64)) || defined __powerpc64__ || defined __aarch64__
+ static int32_t *
+ #else
+ static netlong *
+@@ -581,7 +581,7 @@
+     return (NULL);
+ }
+ 
+-#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64  || defined __x86_64__ || defined __powerpc64__
++#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64  || defined __x86_64__ || defined __powerpc64__ || defined __aarch64__
+ 
+ static bool_t
+ xdrposix_getint(xdrs, lp)
+diff -ru hdf-4.2.15.orig/mfhdf/ncgen/ncgen.l hdf-4.2.15/mfhdf/ncgen/ncgen.l
+--- hdf-4.2.15.orig/mfhdf/ncgen/ncgen.l	2020-03-03 17:40:50.000000000 +0000
++++ hdf-4.2.15/mfhdf/ncgen/ncgen.l	2021-06-05 14:14:02.448490344 +0000
+@@ -113,7 +113,7 @@
+             yyerror(errstr);
+         }
+ 
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__ || defined __aarch64__
+         if (dd < INT_MIN  ||  dd > INT_MAX)
+ #else
+         if (dd < LONG_MIN  ||  dd > LONG_MAX)
+diff -ru hdf-4.2.15.orig/mfhdf/ncgen/ncgenyy.c hdf-4.2.15/mfhdf/ncgen/ncgenyy.c
+--- hdf-4.2.15.orig/mfhdf/ncgen/ncgenyy.c	2020-03-03 17:40:50.000000000 +0000
++++ hdf-4.2.15/mfhdf/ncgen/ncgenyy.c	2021-06-05 14:14:33.818251508 +0000
+@@ -991,7 +991,7 @@
+             yyerror(errstr);
+         }
+ 
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__ || defined __aarch64__
+         if (dd < INT_MIN  ||  dd > INT_MAX)
+ #else
+         if (dd < LONG_MIN  ||  dd > LONG_MAX)