8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-22 21:23:04 +01:00

Linux IA-64 port

This commit is contained in:
asfernandes 2008-05-22 15:02:59 +00:00
parent bd938b07fb
commit d5e481ba10
7 changed files with 67 additions and 6 deletions

View File

@ -0,0 +1,34 @@
# The contents of this file are subject to the Interbase Public
# License Version 1.0 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy
# of the License at http://www.Inprise.com/IPL.html
#
# Software distributed under the License is distributed on an
# "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
# or implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code was created by Inprise Corporation
# and its predecessors. Portions created by Inprise Corporation are
# Copyright (C) Inprise Corporation.
#
# All Rights Reserved.
# Contributor(s): ______________________________________.
# Start of file prefix.linux: $(VERSION) $(PLATFORM)
#
# 2 Oct 2002, Nickolay Samofatov - Major cleanup
COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -DIA64 -pipe -MMD -fPIC -fmessage-length=0
OPTIMIZE_FLAGS=-O3 -fno-omit-frame-pointer
WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable
CXXFLAGS:= $(CXXFLAGS) -fno-rtti
PROD_FLAGS=-DNDEBUG $(COMMON_FLAGS) $(OPTIMIZE_FLAGS)
DEV_FLAGS=$(COMMON_FLAGS) $(WARN_FLAGS)
OS_ServerFiles=inet_server.cpp
EMBED_UTIL_TARGETS=gstat gds_drop gsec nbackup fb_lock_print fbsvcmgr
CLIENT_UTIL_TARGETS=gds_drop gstat gsec fbguard fbmgr_bin nbackup fb_lock_print fbsvcmgr
Physical_IO_Module=os/posix/unix.cpp

View File

@ -131,6 +131,19 @@ dnl CPU_TYPE=x86_64
RPM64='()(64bit)' RPM64='()(64bit)'
;; ;;
ia64*-*-linux*)
MAKEFILE_PREFIX=linux_ia64
INSTALL_PREFIX=linux
PLATFORM=LINUX
AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
LOCK_MANAGER_FLG=Y
EDITLINE_FLG=Y
SHRLIB_EXT=so
libdir=/usr/lib
CPU_TYPE=amd64
RPM64='()(64bit)'
;;
arm*-*-linux*) arm*-*-linux*)
MAKEFILE_PREFIX=linux_arm MAKEFILE_PREFIX=linux_arm
INSTALL_PREFIX=linux INSTALL_PREFIX=linux

View File

@ -134,6 +134,11 @@
#define IMPLEMENTATION isc_info_db_impl_linux_mips /* 72 */ #define IMPLEMENTATION isc_info_db_impl_linux_mips /* 72 */
#endif /* mips */ #endif /* mips */
#ifdef IA64
#define IMPLEMENTATION isc_info_db_impl_linux_ia64 // 76
#define RISC_ALIGNMENT
#endif // IA64
#endif /* LINUX */ #endif /* LINUX */

View File

@ -204,6 +204,7 @@ enum info_db_implementations
isc_info_db_impl_sun_amd64 = 74, isc_info_db_impl_sun_amd64 = 74,
isc_info_db_impl_linux_arm = 75, isc_info_db_impl_linux_arm = 75,
isc_info_db_impl_linux_ia64 = 76,
isc_info_db_impl_last_value /* Leave this LAST! */ isc_info_db_impl_last_value /* Leave this LAST! */
}; };

View File

@ -157,9 +157,10 @@ static const int CLASS_LINUX_MIPS = 30; // LINUX/MIPS
static const int CLASS_DARWIN_X64 = 31; // Darwin/x64 static const int CLASS_DARWIN_X64 = 31; // Darwin/x64
static const int CLASS_SOLARIS_AMD64 = 32; // Solaris/amd64 static const int CLASS_SOLARIS_AMD64 = 32; // Solaris/amd64
static const int CLASS_LINUX_ARM = 33; // LINUX/ARM static const int CLASS_LINUX_ARM = 33; // LINUX/ARM
static const int CLASS_LINUX_IA64 = 34; // LINUX/IA64
static const int CLASS_MAX10 = CLASS_LINUX_AMD64; // This should not be changed, no new ports with ODS10 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_ARM; static const int CLASS_MAX = CLASS_LINUX_IA64;
// ARCHITECTURE COMPATIBILITY CLASSES // ARCHITECTURE COMPATIBILITY CLASSES
@ -250,7 +251,8 @@ static const ArchitectureType archMatrix[CLASS_MAX + 1] =
archBigEndian, // CLASS_LINUX_MIPS archBigEndian, // CLASS_LINUX_MIPS
archLittleEndian, // CLASS_DARWIN_X64 archLittleEndian, // CLASS_DARWIN_X64
archLittleEndian, // CLASS_SOLARIS_AMD64 archLittleEndian, // CLASS_SOLARIS_AMD64
archLittleEndian // CLASS_LINUX_ARM archLittleEndian, // CLASS_LINUX_ARM
archLittleEndian // CLASS_LINUX_IA64
}; };
#ifdef sun #ifdef sun
@ -302,6 +304,8 @@ const SSHORT CLASS = CLASS_LINUX_PPC;
const SSHORT CLASS = CLASS_LINUX_MIPSEL; const SSHORT CLASS = CLASS_LINUX_MIPSEL;
#elif defined(MIPS) #elif defined(MIPS)
const SSHORT CLASS = CLASS_LINUX_MIPS; const SSHORT CLASS = CLASS_LINUX_MIPS;
#elif defined(IA64)
const SSHORT CLASS = CLASS_LINUX_IA64;
#else #else
#error no support on other hardware for Linux #error no support on other hardware for Linux
#endif #endif

View File

@ -214,7 +214,8 @@ static const TEXT* const impl_implementation[] = {
"Firebird/linux MIPS", // 72 "Firebird/linux MIPS", // 72
"Firebird/Darwin/Intel64", // 73 "Firebird/Darwin/Intel64", // 73
"Firebird/sun/amd64", // 74 "Firebird/sun/amd64", // 74
"Firebird/linux ARM" // 75 "Firebird/linux ARM", // 75
"Firebird/linux IA64" // 76
}; };

View File

@ -35,10 +35,13 @@
// 30 Dec 2002. Nickolay Samofatov // 30 Dec 2002. Nickolay Samofatov
// This needs to be checked for all supported platforms // This needs to be checked for all supported platforms
// The simpliest way to check it is to issue // The simpliest way to check it is to issue from correct client:
// "select abs(2.0/3.0) from rdb$database" from correct client // declare external function abs2 double precision
// returns double precision by value
// entry_point 'IB_UDF_abs' module_name 'ib_udf';
// select abs2(2.0 / 3.0) from rdb$database;
// It will return big strange value in case of invalid define // It will return big strange value in case of invalid define
#if defined(i386) || defined(I386) || defined(_M_IX86) || defined(AMD64) || defined(ARM) || defined(MIPSEL) || defined(DARWIN64) #if defined(i386) || defined(I386) || defined(_M_IX86) || defined(AMD64) || defined(ARM) || defined(MIPSEL) || defined(DARWIN64) || defined(IA64)
#define SWAP_DOUBLE #define SWAP_DOUBLE
#elif defined(sparc) || defined(PowerPC) || defined(PPC) || defined(__ppc__) || defined(HPUX) || defined(MIPS) #elif defined(sparc) || defined(PowerPC) || defined(PPC) || defined(__ppc__) || defined(HPUX) || defined(MIPS)
#undef SWAP_DOUBLE #undef SWAP_DOUBLE