[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