diff --git a/builds/posix/prefix.linux_powerpc b/builds/posix/prefix.linux_powerpc new file mode 100644 index 0000000000..1364d1edab --- /dev/null +++ b/builds/posix/prefix.linux_powerpc @@ -0,0 +1,30 @@ +# 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) +#$Id: prefix.linux_powerpc,v 1.1 2006-10-23 11:43:23 alexpeshkoff Exp $ +# 2 Oct 2002, Nickolay Samofatov - Major cleanup + +PROD_FLAGS=-ggdb -fno-omit-frame-pointer -fsigned-char -DNDEBUG -DLINUX -pipe -MMD -fPIC -fmessage-length=0 -DLINUX -DPowerPC -DPPC -O3 -mcpu=powerpc +DEV_FLAGS=-ggdb -O0 -DVIO_DEBUG -DLINUX -pipe -MMD -p -fPIC -Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable -fmessage-length=0 -fsigned-char -DLINUX -DPowerPC -DPPC +#DEV_FLAGS=-DUSE_VALGRIND -ggdb -O0 -DLINUX -pipe -MMD -p -fPIC -Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable -fmessage-length=0 -DLINUX -DPowerPC -DPPC + +OS_ServerFiles=inet_server.cpp + +EMBED_UTIL_TARGETS=gstat gds_drop gds_relay gsec nbackup fb_lock_print +CLIENT_UTIL_TARGETS=gds_drop gds_relay gstat gsec fbguard fbmgr_bin nbackup fb_lock_print + +Physical_IO_Module=os/posix/unix.cpp diff --git a/configure.in b/configure.in index de3686b2a6..61c006f940 100644 --- a/configure.in +++ b/configure.in @@ -91,6 +91,16 @@ case "$target" in SHRLIB_EXT=so ;; + powerpc*-*-linux*) + MAKEFILE_PREFIX=linux_powerpc + 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 + ;; + i*86*-*-linux*) MAKEFILE_PREFIX=linux PLATFORM=LINUX diff --git a/src/jrd/common.h b/src/jrd/common.h index bc44b9d38d..63d7b668fb 100644 --- a/src/jrd/common.h +++ b/src/jrd/common.h @@ -119,6 +119,10 @@ #define IMPLEMENTATION isc_info_db_impl_linux_amd64 /* 66 next higher unique number, See you later */ #endif +#ifdef PPC +#define IMPLEMENTATION isc_info_db_impl_linux_ppc /* 69 next higher unique number, See you later */ +#endif + #ifdef i386 #define I386 #define IMPLEMENTATION isc_info_db_impl_i386 /* 60 next higher unique number, See you later */ diff --git a/src/jrd/inf_pub.h b/src/jrd/inf_pub.h index d35f204991..bdf476e3ca 100644 --- a/src/jrd/inf_pub.h +++ b/src/jrd/inf_pub.h @@ -195,6 +195,8 @@ enum info_db_implementations isc_info_db_impl_winnt_amd64 = 68, + isc_info_db_impl_linux_ppc = 69, + isc_info_db_impl_last_value /* Leave this LAST! */ }; diff --git a/src/jrd/pag.cpp b/src/jrd/pag.cpp index c3c6ee8d06..4a711e3808 100644 --- a/src/jrd/pag.cpp +++ b/src/jrd/pag.cpp @@ -147,9 +147,10 @@ static const int CLASS_DARWIN_PPC = 23; // Darwin/PowerPC static const int CLASS_LINUX_AMD64 = 24; // LINUX on AMD64 systems static const int CLASS_FREEBSD_AMD64 = 25;// FreeBSD/amd64 static const int CLASS_WINDOWS_AMD64 = 26;// Windows/amd64 +static const int CLASS_LINUX_PPC = 27; // LINUX/PowerPC static const int CLASS_MAX10 = CLASS_LINUX_AMD64; // This should not be changed, no new ports with ODS10 -static const int CLASS_MAX = CLASS_WINDOWS_AMD64; +static const int CLASS_MAX = CLASS_LINUX_PPC; // ARCHITECTURE COMPATIBILITY CLASSES @@ -231,7 +232,8 @@ static ArchitectureType archMatrix[CLASS_MAX + 1] = { archBigEndian, // CLASS_DARWIN_PPC archLittleEndian, // CLASS_LINUX_AMD64 archLittleEndian, // CLASS_FREEBSD_AMD64 - archLittleEndian // CLASS_WINDOWS_AMD64 + archLittleEndian, // CLASS_WINDOWS_AMD64 + archBigEndian // CLASS_LINUX_PPC }; #ifdef sun @@ -240,6 +242,9 @@ const SSHORT CLASS = CLASS_SOLARIS_I386; #else const SSHORT CLASS = CLASS_SOLARIS_SPARC; #endif +#ifdef PPC +const SSHORT CLASS = CLASS_LINUX_PPC; +#endif #endif #ifdef hpux diff --git a/src/jrd/utl.cpp b/src/jrd/utl.cpp index f42a02c1b8..bc858f95aa 100644 --- a/src/jrd/utl.cpp +++ b/src/jrd/utl.cpp @@ -234,7 +234,9 @@ static const TEXT* const impl_implementation[] = { "Firebird/SINIX-Z", /* 64 */ "Firebird/linux Sparc", /* 65 */ "Firebird/linux AMD64", /* 66 */ - "Firebird/FreeBSD/amd64" /* 67 */ + "Firebird/FreeBSD/amd64", /* 67 */ + "Firebird/x86-64/Windows NT", /* 68 */ + "Firebird/linux PowerPC" /* 69 */ };