[firebird/f19] Firebird fails to build for aarch64 (bug #969851)

Philippe Makowski makowski at fedoraproject.org
Mon Jun 3 20:03:45 UTC 2013


commit 81bfd9c7938b5f2d4a9aa1a9779df7a12b98091b
Author: Philippe Makowski <pmakowski at espelida.com>
Date:   Mon Jun 3 21:59:53 2013 +0200

    Firebird fails to build for aarch64  (bug #969851)

 firebird-aarch64.patch |  133 ++++++++++++++++++++++++++++++++++++++++++++++++
 firebird.spec          |    7 ++-
 2 files changed, 139 insertions(+), 1 deletions(-)
---
diff --git a/firebird-aarch64.patch b/firebird-aarch64.patch
new file mode 100644
index 0000000..de78f45
--- /dev/null
+++ b/firebird-aarch64.patch
@@ -0,0 +1,133 @@
+diff --git a/builds/posix/prefix.linux_aarch64 b/builds/posix/prefix.linux_aarch64
+new file mode 100644
+index 0000000..5c9aac7
+--- /dev/null
++++ b/builds/posix/prefix.linux_aarch64
+@@ -0,0 +1,31 @@
++# 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=-DLINUX -DAARCH64 -pipe -MMD -fPIC -DFB_SEND_FLAGS=MSG_NOSIGNAL -fsigned-char -fmessage-length=0
++
++PROD_FLAGS=-O3 -DNDEBUG  $(COMMON_FLAGS)
++DEV_FLAGS=-ggdb -p -Wall $(COMMON_FLAGS)
++
++OS_ServerFiles=inet_server.cpp
++
++EMBED_UTIL_TARGETS=gstat gsec nbackup fb_lock_print fbguard fbsvcmgr fbtracemgr
++CLIENT_UTIL_TARGETS=gstat gsec nbackup fb_lock_print fbguard fbmgr_bin fbsvcmgr fbtracemgr
++
++Physical_IO_Module=os/posix/unix.cpp
+diff --git a/configure.in b/configure.in
+index afa27f5..67a6f25 100644
+--- a/configure.in
++++ b/configure.in
+@@ -213,6 +213,17 @@ dnl CPU_TYPE=ppc64
+     STD_ICU=true
+     ;;
+ 
++  aarch64*-*-linux*)
++    MAKEFILE_PREFIX=linux_aarch64
++    INSTALL_PREFIX=linux
++    PLATFORM=LINUX
++    AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
++    EDITLINE_FLG=Y
++    SHRLIB_EXT=so
++    STD_EDITLINE=true
++    STD_ICU=true
++    ;;
++
+   sparc*-*-linux* | sparc*-*-gnu* | sparc*-*-k*bsd*-gnu)
+     MAKEFILE_PREFIX=linux_sparc32
+     INSTALL_PREFIX=linux
+diff --git a/src/jrd/common.h b/src/jrd/common.h
+index fb2c57f..69e9090 100644
+--- a/src/jrd/common.h
++++ b/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 */
+ 
+ 
+diff --git a/src/jrd/inf_pub.h b/src/jrd/inf_pub.h
+index 32ba5b3..4cab797 100644
+--- a/src/jrd/inf_pub.h
++++ b/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!
+ };
+diff --git a/src/jrd/pag.cpp b/src/jrd/pag.cpp
+index e3a75f7..5d9ba36 100644
+--- a/src/jrd/pag.cpp
++++ b/src/jrd/pag.cpp
+@@ -162,9 +162,10 @@ static const int CLASS_LINUX_SH = 38;		// LINUX/SH (little-endian)
+ 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[CLASS_MAX + 1] =
+ 	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
+diff --git a/src/jrd/utl.cpp b/src/jrd/utl.cpp
+index fabc027..d8b7ae8 100644
+--- a/src/jrd/utl.cpp
++++ b/src/jrd/utl.cpp
+@@ -228,6 +228,7 @@ static const TEXT* const impl_implementation[] =
+ 	"Firebird/linux SHEB",			// 81
+ 	"Firebird/linux HPPA",			// 82
+ 	"Firebird/linux ALPHA"			// 83
++	"Firebird/linux AArch64"		// 84
+ };
+ 
+ 
diff --git a/firebird.spec b/firebird.spec
index b1e709c..3052a9f 100644
--- a/firebird.spec
+++ b/firebird.spec
@@ -6,7 +6,7 @@
 Summary: SQL relational database management system
 Name:  firebird
 Version: 2.5.2.26539.0
-Release: 4%{?dist}
+Release: 5%{?dist}
 
 Group:  Applications/Databases
 License: Interbase
@@ -27,6 +27,7 @@ Patch0: firebird-2.5.2-svn-CORE-3946.patch
 Patch1: firebird-2.5.2-svn-CORE-4058.patch
 
 Patch2: firebird-btyacc-fpie.patch
+Patch3: firebird-aarch64.patch
 
 BuildRequires: autoconf
 BuildRequires: automake
@@ -164,6 +165,7 @@ Multi-process, local client libraries for Firebird SQL RDBMS
 %patch0
 %patch1
 %patch2
+%patch3 -p1
 # convert intl character to UTF-8
 iconv -f ISO-8859-1 -t utf-8 -c ./doc/README.intl     -o ./doc/README.intl
 
@@ -520,6 +522,9 @@ fi
 
 
 %changelog
+* Mon Jun 03 2013 Philippe Makowski <makowski at fedoraproject.org>  2.5.2.26539.0-5
+- Firebird fails to build for aarch64  (bug #969851)
+
 * Thu Apr 25 2013 Philippe Makowski <makowski at fedoraproject.org>  2.5.2.26539.0-4
 - set PIE compiler flags (bug #955274)
 


More information about the scm-commits mailing list