FirebirdSQL / firebird

Firebird server, client and tools
https://firebirdsql.org
1.26k stars 217 forks source link

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

Closed firebird-automations closed 9 years ago

firebird-automations commented 17 years ago

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 commented 17 years ago

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 commented 17 years ago
Modified by: @dyemanov status: Open \[ 1 \] =\> Resolved \[ 5 \] resolution: Fixed \[ 1 \] Fix Version: 2\.0\.1 \[ 10090 \] assignee: Alexander Peshkov \[ alexpeshkoff \]
firebird-automations commented 17 years ago

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 commented 17 years ago
Modified by: @AlexPeshkoff status: Resolved \[ 5 \] =\> Reopened \[ 4 \] resolution: Fixed \[ 1 \] =\>
firebird-automations commented 17 years ago

Commented by: @dyemanov

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

firebird-automations commented 17 years ago

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 commented 17 years ago
Modified by: @dyemanov Fix Version: 2\.0\.2 \[ 10130 \] Fix Version: 2\.0\.1 \[ 10090 \] =\>
firebird-automations commented 17 years ago
Modified by: @dyemanov Fix Version: 2\.0\.2 \[ 10130 \] =\>
firebird-automations commented 16 years ago
Modified by: @pcisar Workflow: jira \[ 11443 \] =\> Firebird \[ 15475 \]
firebird-automations commented 9 years ago

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 commented 9 years ago
Modified by: @AlexPeshkoff status: Reopened \[ 4 \] =\> Resolved \[ 5 \] resolution: Won't Fix \[ 2 \]
firebird-automations commented 9 years ago
Modified by: @pcisar status: Resolved \[ 5 \] =\> Closed \[ 6 \]