--- Begin Message ---
Package: firebird2.0
Version: 2.0.3.12981.ds1-13
Severity: serious
Tags: patch
firebird fails to build on mips (and presumably will fail on arm)
because fbsvcmgr is an invalid make target. I attached updates of
port-arm.patch and port-mips.patch. For reference I appended also
the interdiff between old and new patches.
Thiemo
diff -u 2.0/builds/posix/prefix.linux_arm 2.0/builds/posix/prefix.linux_arm
--- 2.0/builds/posix/prefix.linux_arm 2008-05-02 00:13:57.000000000 +0300
+++ 2.0/builds/posix/prefix.linux_arm 2008-05-02 00:13:57.000000000 +0300
@@ -35,8 +35,8 @@
#LIB_LINK_RPATH:=-Wl,-rpath,
#LIB_LINK_SONAME:=-Wl,-soname,
-EMBED_UTIL_TARGETS=gstat gds_drop gds_relay gsec nbackup fb_lock_print fbsvcmgr
-CLIENT_UTIL_TARGETS=gstat gds_drop gds_relay gsec nbackup fb_lock_print
fbguard fbmgr_bin fbsvcmgr
+EMBED_UTIL_TARGETS=gstat gds_drop gds_relay gsec nbackup fb_lock_print
+CLIENT_UTIL_TARGETS=gstat gds_drop gds_relay gsec nbackup fb_lock_print
fbguard fbmgr_bin
Physical_IO_Module=unix.cpp
diff -u 2.0/builds/posix/prefix.linux_mips 2.0/builds/posix/prefix.linux_mips
--- 2.0/builds/posix/prefix.linux_mips 2008-04-09 18:48:11.000000000 +0300
+++ 2.0/builds/posix/prefix.linux_mips 2008-04-09 18:48:11.000000000 +0300
@@ -9,6 +9,6 @@
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
+EMBED_UTIL_TARGETS=gstat gds_drop gsec nbackup fb_lock_print
+CLIENT_UTIL_TARGETS=gds_drop gstat gsec fbguard fbmgr_bin nbackup fb_lock_print
Physical_IO_Module=os/posix/unix.cpp
Index: 2.0/builds/posix/prefix.linux_arm
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ 2.0/builds/posix/prefix.linux_arm 2008-05-02 00:13:57.000000000 +0300
@@ -0,0 +1,42 @@
+# 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_arm,v 1.1.2.1 2008/04/15 14:11:33 alexpeshkoff Exp $
+#
+# 14 Apr 2008 Alan Barclay alan AT escribe.co.uk
+
+
[EMAIL PROTECTED]@
+
+#PROD_FLAGS=-ggdb -O3 -fno-omit-frame-pointer -DNDEBUG -DLINUX -pipe -MMD -fPIC
+#DEV_FLAGS=-ggdb -DLINUX -DDEBUG_GDS_ALLOC -pipe -MMD -p -fPIC -Wall -Wno-switch
+
+PROD_FLAGS=-O3 -DNDEBUG -DLINUX -DARM -pipe -p -MMD -fPIC -fsigned-char -fmessage-length=0
+DEV_FLAGS=-ggdb -DLINUX -DARM -pipe -p -MMD -fPIC -Wall -fsigned-char -fmessage-length=0
+
+OS_ServerFiles=inet_server.cpp
+
+#LIB_LINK_OPTIONS:=-shared
+#LIB_LINK_RPATH:=-Wl,-rpath,
+#LIB_LINK_SONAME:=-Wl,-soname,
+
+EMBED_UTIL_TARGETS=gstat gds_drop gds_relay gsec nbackup fb_lock_print
+CLIENT_UTIL_TARGETS=gstat gds_drop gds_relay gsec nbackup fb_lock_print fbguard fbmgr_bin
+
+Physical_IO_Module=unix.cpp
+
Index: 2.0/configure.in
===================================================================
--- 2.0.orig/configure.in 2008-05-02 00:13:36.000000000 +0300
+++ 2.0/configure.in 2008-05-02 00:13:57.000000000 +0300
@@ -115,6 +115,16 @@
CPU_TYPE=amd64
;;
+ arm*-*-linux*)
+ MAKEFILE_PREFIX=linux_arm
+ 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
+ ;;
+
sparc*-*-linux* | sparc*-*-gnu* | sparc*-*-k*bsd*-gnu)
MAKEFILE_PREFIX=linux_sparc32
INSTALL_PREFIX=linux
Index: 2.0/src/jrd/common.h
===================================================================
--- 2.0.orig/src/jrd/common.h 2008-05-02 00:13:36.000000000 +0300
+++ 2.0/src/jrd/common.h 2008-05-02 00:13:57.000000000 +0300
@@ -134,6 +134,10 @@
#define IMPLEMENTATION isc_info_db_impl_i386 /* 60 next higher unique number, See you later */
#endif /* i386 */
+#ifdef ARM
+#define IMPLEMENTATION isc_info_db_impl_linux_arm
+#endif /* ARM */
+
#ifdef sparc
#define IMPLEMENTATION isc_info_db_impl_linux_sparc /* 65 */
#endif /* sparc */
Index: 2.0/src/jrd/inf_pub.h
===================================================================
--- 2.0.orig/src/jrd/inf_pub.h 2008-05-02 00:13:36.000000000 +0300
+++ 2.0/src/jrd/inf_pub.h 2008-05-02 00:17:17.000000000 +0300
@@ -197,6 +197,10 @@
isc_info_db_impl_darwin_x86 = 70,
isc_info_db_impl_linux_mipsel = 71,
isc_info_db_impl_linux_mips = 72,
+ isc_info_db_impl_darwin_x64 = 73,
+ isc_info_db_impl_sun_amd64 = 74,
+
+ isc_info_db_impl_linux_arm = 75,
isc_info_db_impl_last_value /* Leave this LAST! */
};
Index: 2.0/src/jrd/pag.cpp
===================================================================
--- 2.0.orig/src/jrd/pag.cpp 2008-05-02 00:13:36.000000000 +0300
+++ 2.0/src/jrd/pag.cpp 2008-05-02 00:16:00.000000000 +0300
@@ -142,8 +142,12 @@
static const int CLASS_DARWIN_I386 = 28; //Darwin/Intel
static const int CLASS_LINUX_MIPSEL = 29; // LINUX/MIPSEL
static const int CLASS_LINUX_MIPS = 30; // LINUX/MIPS
+static const int CLASS_DARWIN_X64 = 31; // Darwin/x64
+static const int CLASS_SOLARIS_AMD64 = 32; //Solaris/amd64
+static const int CLASS_LINUX_ARM = 33; // LINUX/ARM
+
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_MIPS;
+static const int CLASS_MAX = CLASS_LINUX_ARM;
// ARCHITECTURE COMPATIBILITY CLASSES
@@ -229,7 +233,10 @@
archBigEndian, // CLASS_LINUX_PPC
archLittleEndian, // CLASS_DARWIN_I386
archLittleEndian, // CLASS_LINUX_MIPSEL
- archBigEndian // CLASS_LINUX_MIPS
+ archBigEndian, // CLASS_LINUX_MIPS
+ archLittleEndian, // CLASS_DARWIN_X64
+ archLittleEndian, // CLASS_SOLARIS_AMD64
+ archLittleEndian // CLASS_LINUX_ARM
};
#ifdef sun
@@ -274,6 +281,9 @@
#ifdef sparc
const SSHORT CLASS = CLASS_LINUX_SPARC;
#endif
+#ifdef ARM
+const SSHORT CLASS = CLASS_LINUX_ARM;
+#endif
#ifdef PPC
const SSHORT CLASS = CLASS_LINUX_PPC;
#endif
Index: 2.0/src/jrd/utl.cpp
===================================================================
--- 2.0.orig/src/jrd/utl.cpp 2008-05-02 00:13:36.000000000 +0300
+++ 2.0/src/jrd/utl.cpp 2008-05-02 00:18:29.000000000 +0300
@@ -238,7 +238,10 @@
"Firebird/linux PowerPC", /* 69 */
"Firebird/Darwin/Intel", /* 70 */
"Firebird/linux MIPSEL", /* 71 */
- "Firebird/linux MIPS" /* 72 */
+ "Firebird/linux MIPS", /* 72 */
+ "Firebird/Darwin/Intel64", /* 73 */
+ "Firebird/sun/amd64", /* 74 */
+ "Firebird/linux ARM" /* 75 */
};
Index: 2.0/src/remote/xdr.cpp
===================================================================
--- 2.0.orig/src/remote/xdr.cpp 2008-05-02 00:13:36.000000000 +0300
+++ 2.0/src/remote/xdr.cpp 2008-05-02 00:13:57.000000000 +0300
@@ -39,7 +39,7 @@
// The simpliest way to check it is to issue
// "select abs(2.0/3.0) from rdb$database" from correct client
// It will return big strange value in case of invalid define
-#if defined(i386) || defined(I386) || defined(_M_IX86) || defined(AMD64) || defined(MIPSEL)
+#if defined(i386) || defined(I386) || defined(_M_IX86) || defined(AMD64) || defined(ARM) || defined(MIPSEL)
#define SWAP_DOUBLE
#elif defined(sparc) || defined(PowerPC) || defined(PPC) || defined(__ppc__) || defined(MIPSEB)
#undef SWAP_DOUBLE
Index: 2.0/builds/posix/prefix.linux_mips
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ 2.0/builds/posix/prefix.linux_mips 2008-04-09 18:48:11.000000000 +0300
@@ -0,0 +1,14 @@
+COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -pipe -MMD -fPIC -fmessage-length=0
+OPTIMIZE_FLAGS=-O3 -fno-omit-frame-pointer -fno-builtin
+WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable
+
+PROD_FLAGS=-DNDEBUG $(COMMON_FLAGS) $(OPTIMIZE_FLAGS)
+DEV_FLAGS=-DUSE_VALGRIND -p $(COMMON_FLAGS) $(WARN_FLAGS)
+#DEV_FLAGS=-p $(COMMON_FLAGS) $(WARN_FLAGS)
+
+OS_ServerFiles=inet_server.cpp
+
+EMBED_UTIL_TARGETS=gstat gds_drop gsec nbackup fb_lock_print
+CLIENT_UTIL_TARGETS=gds_drop gstat gsec fbguard fbmgr_bin nbackup fb_lock_print
+
+Physical_IO_Module=os/posix/unix.cpp
Index: 2.0/configure.in
===================================================================
--- 2.0.orig/configure.in 2008-04-09 18:48:11.000000000 +0300
+++ 2.0/configure.in 2008-04-09 18:48:11.000000000 +0300
@@ -79,6 +79,18 @@
SHRLIB_EXT=so
;;
+ mips-*-linux*)
+ MAKEFILE_PREFIX=linux_mips
+ INSTALL_PREFIX=linux
+ PLATFORM=LINUX
+ AC_DEFINE(LINUX)
+ LOCK_MANAGER_FLG=Y
+ EDITLINE_FLG=Y
+ SHRLIB_EXT=so
+ PTHREAD_CFLAGS=-pthread
+ PTHREAD_LIBS=-lpthread
+ ;;
+
mipsel-*-linux*)
MAKEFILE_PREFIX=linux_mipsel
INSTALL_PREFIX=linux
Index: 2.0/src/jrd/common.h
===================================================================
--- 2.0.orig/src/jrd/common.h 2008-04-09 18:48:11.000000000 +0300
+++ 2.0/src/jrd/common.h 2008-04-09 18:48:11.000000000 +0300
@@ -142,6 +142,10 @@
#define IMPLEMENTATION isc_info_db_impl_linux_mipsel /* 70 */
#endif /* mipsel */
+#ifdef MIPSEB
+#define IMPLEMENTATION isc_info_db_impl_linux_mips /* 72 */
+#endif /* mips */
+
#define MEMMOVE(from, to, length) memmove ((void *)to, (void *)from, (size_t) length)
#define MOVE_FAST(from, to, length) memcpy (to, from, (int) (length))
#define MOVE_FASTER(from, to, length) memcpy (to, from, (int) (length))
Index: 2.0/src/jrd/inf_pub.h
===================================================================
--- 2.0.orig/src/jrd/inf_pub.h 2008-04-09 18:48:11.000000000 +0300
+++ 2.0/src/jrd/inf_pub.h 2008-04-09 18:48:11.000000000 +0300
@@ -196,6 +196,7 @@
isc_info_db_impl_linux_ppc = 69,
isc_info_db_impl_darwin_x86 = 70,
isc_info_db_impl_linux_mipsel = 71,
+ isc_info_db_impl_linux_mips = 72,
isc_info_db_impl_last_value /* Leave this LAST! */
};
Index: 2.0/src/jrd/pag.cpp
===================================================================
--- 2.0.orig/src/jrd/pag.cpp 2008-04-09 18:48:11.000000000 +0300
+++ 2.0/src/jrd/pag.cpp 2008-04-09 18:48:11.000000000 +0300
@@ -140,9 +140,10 @@
//static const int CLASS_WINDOWS_AMD64 = 26;// Windows/amd64 - not ported yet
static const int CLASS_LINUX_PPC = 27; // LINUX/PowerPC
static const int CLASS_DARWIN_I386 = 28; //Darwin/Intel
-static const int CLASS_LINUX_MIPSEL = 29; // LINUX/MIPS
+static const int CLASS_LINUX_MIPSEL = 29; // LINUX/MIPSEL
+static const int CLASS_LINUX_MIPS = 30; // LINUX/MIPS
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_MIPSEL;
+static const int CLASS_MAX = CLASS_LINUX_MIPS;
// ARCHITECTURE COMPATIBILITY CLASSES
@@ -227,7 +228,8 @@
archLittleEndian, // CLASS_WINDOWS_AMD64
archBigEndian, // CLASS_LINUX_PPC
archLittleEndian, // CLASS_DARWIN_I386
- archLittleEndian // CLASS_LINUX_MIPSEL
+ archLittleEndian, // CLASS_LINUX_MIPSEL
+ archBigEndian // CLASS_LINUX_MIPS
};
#ifdef sun
@@ -278,6 +280,9 @@
#ifdef MIPSEL
const SSHORT CLASS = CLASS_LINUX_MIPSEL;
#endif
+#ifdef MIPSEB
+const SSHORT CLASS = CLASS_LINUX_MIPS;
+#endif
#endif
#ifdef FREEBSD
Index: 2.0/src/jrd/utl.cpp
===================================================================
--- 2.0.orig/src/jrd/utl.cpp 2008-04-09 18:48:11.000000000 +0300
+++ 2.0/src/jrd/utl.cpp 2008-04-09 18:48:11.000000000 +0300
@@ -237,7 +237,8 @@
NULL, // "Firebird/x86-64/Windows NT", /* 68 */ //Windows/amd64 - not ported yet
"Firebird/linux PowerPC", /* 69 */
"Firebird/Darwin/Intel", /* 70 */
- "Firebird/linux MIPSEL" /* 71 */
+ "Firebird/linux MIPSEL", /* 71 */
+ "Firebird/linux MIPS" /* 72 */
};
Index: 2.0/src/remote/xdr.cpp
===================================================================
--- 2.0.orig/src/remote/xdr.cpp 2008-04-09 18:48:11.000000000 +0300
+++ 2.0/src/remote/xdr.cpp 2008-04-09 18:49:24.000000000 +0300
@@ -41,7 +41,7 @@
// It will return big strange value in case of invalid define
#if defined(i386) || defined(I386) || defined(_M_IX86) || defined(AMD64) || defined(MIPSEL)
#define SWAP_DOUBLE
-#elif defined(sparc) || defined(PowerPC) || defined(PPC) || defined(__ppc__)
+#elif defined(sparc) || defined(PowerPC) || defined(PPC) || defined(__ppc__) || defined(MIPSEB)
#undef SWAP_DOUBLE
#else
#error "Define SWAP_DOUBLE for your platform correctly !"
--- End Message ---