New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2.0.0.12748 compilation fails on Linux/PPC64 [CORE1072] #1494
Comments
Commented by: @dyemanov The Linux-PPC support has been added to the B2_0_Release branch after the tree has been tagged for v2.0.0 Final (build 12748). |
Modified by: @dyemanovstatus: Open [ 1 ] => Resolved [ 5 ] resolution: Fixed [ 1 ] Fix Version: 2.0.1 [ 10090 ] assignee: Alexander Peshkov [ alexpeshkoff ] |
Commented by: @AlexPeshkoff Closing this issue is not completely correct. PPC and PPC64 are two difefrent architectures. Linux PPC support is already added to 2.0.1, PPC64 - not yet. |
Commented by: @dyemanov OK, but then the patch is incorrect too, as it uses the PPC32 constants. |
Commented by: @AlexPeshkoff Damyan did it for PPC, not PPC64. |
Modified by: @dyemanovFix Version: 2.0.2 [ 10130 ] => |
Modified by: @pcisarWorkflow: jira [ 11443 ] => Firebird [ 15475 ] |
Commented by: @AlexPeshkoff Branch 2.0 is not supported long ago, current 2.5 builds fine on linux/PPC64el. Debian performs test builds on regular basis. |
Modified by: @pcisarstatus: Resolved [ 5 ] => Closed [ 6 ] |
Submitted by: Alexey Kolikov (akolikov)
Compilation fails with this error:
g++ -DBOOT_BUILD -I../src/include/gen -I../src/include -I../src/vulcan -I../extern/icu/source/common -I../extern/icu/source/i18n -DNAMESPACE=Vulcan -O3 -DNDEBUG -DLINUX -pipe -MMD -fPIC -DPROD_BUILD -c ../src/jrd/inf.cpp -o ../temp/boot/jrd/inf.o
../src/jrd/inf.cpp: In function `int INF_database_info(const SCHAR*, SSHORT, SCHAR*, SSHORT)':
../src/jrd/inf.cpp:389: error: `IMPLEMENTATION' was not declared in this scope
make[3]: *** [../temp/boot/jrd/inf.o] Error 1
rm ../src/jrd/dyn_mod.cpp ../src/jrd/grant.cpp ../src/jrd/dyn.cpp ../src/jrd/dyn_def.cpp ../src/jrd/dyn_del.cpp ../src/jrd/met.cpp ../src/jrd/scl.cpp ../src/jrd/ini.cpp ../src/jrd/dpm.cpp ../src/jrd/dyn_util.cpp ../src/jrd/dfw.cpp ../src/jrd/pcmet.cpp ../src/jrd/fun.cpp
make[3]: Leaving directory `/root/firebird-2.0.0.12748/gen'
make[2]: *** [libfbstatic] Error 2
make[2]: Leaving directory `/root/firebird-2.0.0.12748/gen'
make[1]: *** [../gen/firebird/bin/gpre_static] Error 2
make[1]: Leaving directory `/root/firebird-2.0.0.12748/gen'
make: *** [firebird] Error 2
But I already found a solution for this problem, I was downloaded patch for version Firebird 2.0.0.12745 (correct me if I'm wrong) by Damyan Ivanov from: http://www.nabble.com/Patch-for-the-Linux-PPC-port-tf2444297.html
and updated it for Firebird 2.0.0.12748 source code. Here is the patch:
--- ./configure.in 2006-04-25 21:07:23.000000000 +0400
+++ ./configure.in 2006-12-22 10:48:17.000000000 +0300
@@ -90,6 +90,16 @@
EDITLINE_FLG=Y
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
--- ./src/jrd/inf_pub.h 2006-03-15 20:32:33.000000000 +0300
+++ ./src/jrd/inf_pub.h 2006-12-22 11:02:26.000000000 +0300
@@ -191,6 +191,7 @@
isc_info_db_impl_linux_amd64 = 66,
+ isc_info_db_impl_linux_ppc = 68,
};
--- ./src/jrd/common.h 2006-03-25 10:07:59.000000000 +0300
+++ ./src/jrd/common.h 2006-12-22 10:46:40.000000000 +0300
@@ -125,6 +125,11 @@
#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 /* 68 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 */
--- ./src/jrd/pag.cpp 2006-06-01 13:19:24.000000000 +0400
+++ ./src/jrd/pag.cpp 2006-12-22 11:19:36.000000000 +0300
@@ -138,8 +138,9 @@
static const int CLASS_LINUX_AMD64 = 24; // LINUX on AMD64 systems
static const int CLASS_FREEBSD_AMD64 = 25;// FreeBSD/amd64
+static const int CLASS_LINUX_PPC=26;
static const int CLASS_MAX10 = CLASS_LINUX_AMD64; // This should not be changed, no new ports with ODS10
-static const int CLASS_MAX = CLASS_FREEBSD_AMD64;
+static const int CLASS_MAX = CLASS_LINUX_PPC;
// ARCHITECTURE COMPATIBILITY CLASSES
@@ -220,7 +221,8 @@
archLittleEndian, // CLASS_NETBSD_I386
archBigEndian, // CLASS_DARWIN_PPC
archLittleEndian, // CLASS_LINUX_AMD64
- archLittleEndian // CLASS_FREEBSD_AMD64
+ archLittleEndian, // CLASS_FREEBSD_AMD64
+ archBigEndian // CLASS_LINUX_PPC
};
#ifdef sun
@@ -265,6 +267,9 @@
#ifdef sparc
const SSHORT CLASS = CLASS_LINUX_SPARC;
#endif
+#ifdef PPC
+const SSHORT CLASS = CLASS_LINUX_PPC;
+#endif
#endif
#ifdef FREEBSD
The text was updated successfully, but these errors were encountered: