File aarch64-support.patch of Package firebird
Index: Firebird-2.5.2.26539-0/configure.in
===================================================================
--- Firebird-2.5.2.26539-0.orig/configure.in
+++ Firebird-2.5.2.26539-0/configure.in
@@ -304,6 +304,16 @@ dnl CPU_TYPE=ppc64
SHRLIB_EXT=so
;;
+ aarch64-*-linux*)
+ MAKEFILE_PREFIX=linux_generic
+ INSTALL_PREFIX=linux
+ PLATFORM=LINUX
+ AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
+ EDITLINE_FLG=Y
+ SHRLIB_EXT=so
+ libdir=/usr/lib64
+ ;;
+
*-*-linux* | *-*-gnu*)
MAKEFILE_PREFIX=linux_generic
INSTALL_PREFIX=linux
Index: Firebird-2.5.2.26539-0/src/jrd/common.h
===================================================================
--- Firebird-2.5.2.26539-0.orig/src/jrd/common.h
+++ Firebird-2.5.2.26539-0/src/jrd/common.h
@@ -192,6 +192,10 @@
#define RISC_ALIGNMENT
#endif /* alpha */
+#ifdef __aarch64__
+#define IMPLEMENTATION isc_info_db_impl_linux_aarch64 /* 84 */
+#endif /* alpha */
+
#endif /* LINUX */
Index: Firebird-2.5.2.26539-0/src/jrd/inf_pub.h
===================================================================
--- Firebird-2.5.2.26539-0.orig/src/jrd/inf_pub.h
+++ Firebird-2.5.2.26539-0/src/jrd/inf_pub.h
@@ -215,6 +215,7 @@ enum info_db_implementations
isc_info_db_impl_linux_sheb = 81,
isc_info_db_impl_linux_hppa = 82,
isc_info_db_impl_linux_alpha = 83,
+ isc_info_db_impl_linux_aarch64 = 84,
isc_info_db_impl_last_value // Leave this LAST!
};
Index: Firebird-2.5.2.26539-0/src/jrd/pag.cpp
===================================================================
--- Firebird-2.5.2.26539-0.orig/src/jrd/pag.cpp
+++ Firebird-2.5.2.26539-0/src/jrd/pag.cpp
@@ -162,9 +162,10 @@ static const int CLASS_LINUX_SH = 38; /
static const int CLASS_LINUX_SHEB = 39; // LINUX/SH (big-endian)
static const int CLASS_LINUX_HPPA = 40; // LINUX/HPPA
static const int CLASS_LINUX_ALPHA = 41; // LINUX/ALPHA
+static const int CLASS_LINUX_AARCH64 = 42; // LINUX/AARCH64
static const int CLASS_MAX10 = CLASS_LINUX_AMD64; // This should not be changed, no new ports with ODS10
-static const int CLASS_MAX = CLASS_LINUX_ALPHA;
+static const int CLASS_MAX = CLASS_LINUX_AARCH64;
// ARCHITECTURE COMPATIBILITY CLASSES
@@ -263,7 +264,8 @@ static const ArchitectureType archMatrix
archLittleEndian, // CLASS_LINUX_SH
archBigEndian, // CLASS_LINUX_SHEB
archBigEndian, // CLASS_LINUX_HPPA
- archLittleEndian // CLASS_LINUX_ALPHA
+ archLittleEndian, // CLASS_LINUX_ALPHA
+ archLittleEndian // CLASS_LINUX_AARCH64
};
#ifdef __sun
@@ -327,6 +329,8 @@ const SSHORT CLASS = CLASS_LINUX_SHEB;
const SSHORT CLASS = CLASS_LINUX_HPPA;
#elif defined(ALPHA)
const SSHORT CLASS = CLASS_LINUX_ALPHA;
+#elif defined(__aarch64__)
+const SSHORT CLASS = CLASS_LINUX_AARCH64;
#else
#error no support on other hardware for Linux
#endif
Index: Firebird-2.5.2.26539-0/src/jrd/utl.cpp
===================================================================
--- Firebird-2.5.2.26539-0.orig/src/jrd/utl.cpp
+++ Firebird-2.5.2.26539-0/src/jrd/utl.cpp
@@ -227,7 +227,8 @@ static const TEXT* const impl_implementa
"Firebird/linux SH", // 80
"Firebird/linux SHEB", // 81
"Firebird/linux HPPA", // 82
- "Firebird/linux ALPHA" // 83
+ "Firebird/linux ALPHA", // 83
+ "Firebird/linux AARCH64" // 84
};