Skip to content
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

Closed
firebird-automations opened this issue Dec 28, 2006 · 12 comments
Closed

2.0.0.12748 compilation fails on Linux/PPC64 [CORE1072] #1494

firebird-automations opened this issue Dec 28, 2006 · 12 comments

Comments

@firebird-automations
Copy link
Collaborator

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\_freebsd\_amd64 = 67,

+ isc_info_db_impl_linux_ppc = 68,

isc\_info\_db\_impl\_last\_value   /\* Leave this LAST\! \*/

};
--- ./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

@firebird-automations
Copy link
Collaborator Author

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).

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

Fix Version: 2.0.1 [ 10090 ]

assignee: Alexander Peshkov [ alexpeshkoff ]

@firebird-automations
Copy link
Collaborator Author

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.

@firebird-automations
Copy link
Collaborator Author

Modified by: @AlexPeshkoff

status: Resolved [ 5 ] => Reopened [ 4 ]

resolution: Fixed [ 1 ] =>

@firebird-automations
Copy link
Collaborator Author

Commented by: @dyemanov

OK, but then the patch is incorrect too, as it uses the PPC32 constants.

@firebird-automations
Copy link
Collaborator Author

Commented by: @AlexPeshkoff

Damyan did it for PPC, not PPC64.
On PPC64 by default compiler builds 32-bit applications (I've seen that behavior for both Linux and AIX). Therefore it may happen that build, done on PPC64 system using that patch is OK, but it is not 64-bit binary.

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

Fix Version: 2.0.2 [ 10130 ]

Fix Version: 2.0.1 [ 10090 ] =>

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

Fix Version: 2.0.2 [ 10130 ] =>

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

Workflow: jira [ 11443 ] => Firebird [ 15475 ]

@firebird-automations
Copy link
Collaborator Author

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.

@firebird-automations
Copy link
Collaborator Author

Modified by: @AlexPeshkoff

status: Reopened [ 4 ] => Resolved [ 5 ]

resolution: Won't Fix [ 2 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

status: Resolved [ 5 ] => Closed [ 6 ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants