diff --git a/configure.in b/configure.in index ba1cb3255b..789876b15c 100644 --- a/configure.in +++ b/configure.in @@ -210,6 +210,15 @@ dnl CPU_TYPE=ppc64 SHRLIB_EXT=so ;; + s390x-*-linux*) + MAKEFILE_PREFIX=linux_s390x + INSTALL_PREFIX=linux + PLATFORM=LINUX + AC_DEFINE(LINUX, 1, [Define this if OS is Linux]) + EDITLINE_FLG=Y + SHRLIB_EXT=so + ;; + *-*-linux*) MAKEFILE_PREFIX=linux_generic INSTALL_PREFIX=linux diff --git a/src/jrd/common.h b/src/jrd/common.h index 6d84e69c24..27b9e0d5a8 100644 --- a/src/jrd/common.h +++ b/src/jrd/common.h @@ -162,6 +162,10 @@ #define USE_POSIX_THREADS #endif +#ifdef S390X +#define IMPLEMENTATION isc_info_db_impl_linux_s390x // 78 +#endif // S390X + #endif /* LINUX */ diff --git a/src/jrd/inf_pub.h b/src/jrd/inf_pub.h index fc412f50ca..fda08c7ebf 100644 --- a/src/jrd/inf_pub.h +++ b/src/jrd/inf_pub.h @@ -208,6 +208,7 @@ enum info_db_implementations isc_info_db_impl_linux_ia64 = 76, isc_info_db_impl_darwin_ppc64 = 77, + isc_info_db_impl_linux_s390x = 78, isc_info_db_impl_last_value // Leave this LAST! }; diff --git a/src/jrd/pag.cpp b/src/jrd/pag.cpp index 92d6c860b4..25c2190921 100644 --- a/src/jrd/pag.cpp +++ b/src/jrd/pag.cpp @@ -159,9 +159,10 @@ static const int CLASS_SOLARIS_AMD64 = 32; // Solaris/amd64 static const int CLASS_LINUX_ARM = 33; // LINUX/ARM static const int CLASS_LINUX_IA64 = 34; // LINUX/IA64 static const int CLASS_DARWIN_PPC64 = 35; // Darwin/PowerPC64 +static const int CLASS_LINUX_S390X = 36; // LINUX/s390x static const int CLASS_MAX10 = CLASS_LINUX_AMD64; // This should not be changed, no new ports with ODS10 -static const int CLASS_MAX = CLASS_DARWIN_PPC64; +static const int CLASS_MAX = CLASS_LINUX_S390X; // ARCHITECTURE COMPATIBILITY CLASSES @@ -254,7 +255,8 @@ static const ArchitectureType archMatrix[CLASS_MAX + 1] = archLittleEndian, // CLASS_SOLARIS_AMD64 archLittleEndian, // CLASS_LINUX_ARM archLittleEndian, // CLASS_LINUX_IA64 - archBigEndian // CLASS_DARWIN_PPC64 + archBigEndian, // CLASS_DARWIN_PPC64 + archBigEndian // CLASS_LINUX_S390X }; #ifdef __sun @@ -304,6 +306,8 @@ const SSHORT CLASS = CLASS_LINUX_MIPSEL; const SSHORT CLASS = CLASS_LINUX_MIPS; #elif defined(IA64) const SSHORT CLASS = CLASS_LINUX_IA64; +#elif defined(S390X) +const SSHORT CLASS = CLASS_LINUX_S390X; #else #error no support on other hardware for Linux #endif diff --git a/src/jrd/utl.cpp b/src/jrd/utl.cpp index 72fec542e1..891f68536c 100644 --- a/src/jrd/utl.cpp +++ b/src/jrd/utl.cpp @@ -221,7 +221,8 @@ static const TEXT* const impl_implementation[] = "Firebird/sun/amd64", // 74 "Firebird/linux ARM", // 75 "Firebird/linux IA64", // 76 - "Firebird/Darwin/PowerPC64" // 77 + "Firebird/Darwin/PowerPC64", // 77 + "Firebird/linux s390x" // 78 };