[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#840666: firebird3.0: FTBFS on powerpc, segfaults during build



On 10/13/2016 09:38 PM, John Paul Adrian Glaubitz wrote:
> On 10/13/2016 09:36 PM, Damyan Ivanov wrote:
>>> PS: If you agree, I can NMU the fixed package using the patch I just 
>>> posted right away to fix the bug :).
>>
>> I'll upload soon (hours) anyway because of a fix for kfreebsd.
> 
> Alright, thanks.

Oh, and could I ask you for an additional favor? Could please add the attached
patch to add platform support for Linux/m68k? I would highly appreciate that!

Thanks,
Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
Description: Add platform support for Linux/m68k
Author: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>

--- firebird3.0-3.0.1.32609.ds4.orig/configure.ac
+++ firebird3.0-3.0.1.32609.ds4/configure.ac
@@ -361,6 +361,17 @@ dnl CPU_TYPE=ppc64
    SHRLIB_EXT=so
    ;;
 
+  m68k*-*-linux*)
+   MAKEFILE_PREFIX=linux_generic
+   INSTALL_PREFIX=linux
+   PLATFORM=LINUX
+   AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
+   AC_DEFINE(M68K, 1, [Define this if CPU is M68k])
+   LOCK_MANAGER_FLG=Y
+   EDITLINE_FLG=Y
+   SHRLIB_EXT=so
+   ;;
+
   *-*-linux* | *-*-gnu*)
     MAKEFILE_PREFIX=linux_generic
     INSTALL_PREFIX=linux
@@ -997,10 +1008,11 @@ AC_CHECK_MEMBER([struct dirent.d_type],
 dnl EKU: try to determine the alignment of long and double
 dnl      replaces FB_ALIGNMENT and FB_DOUBLE_ALIGN in src/jrd/common.h
 AC_MSG_CHECKING(alignment of long)
-AC_RUN_IFELSE([AC_LANG_SOURCE([[main () {
+AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <semaphore.h>
+main () {
   struct s {
     char a;
-    long long b;
+    union { long long x; sem_t y; } b;
   };
   exit((int)&((struct s*)0)->b);
 }]])],[ac_cv_c_alignment=$ac_status],[ac_cv_c_alignment=$ac_status],[])
--- firebird3.0-3.0.1.32609.ds4.orig/src/common/classes/DbImplementation.cpp
+++ firebird3.0-3.0.1.32609.ds4/src/common/classes/DbImplementation.cpp
@@ -48,6 +48,7 @@ static const UCHAR CpuHppa = 13;
 static const UCHAR CpuAlpha = 14;
 static const UCHAR CpuArm64 = 15;
 static const UCHAR CpuPowerPc64el = 16;
+static const UCHAR CpuM68k = 17;
 
 static const UCHAR OsWindows = 0;
 static const UCHAR OsLinux = 1;
@@ -87,7 +88,8 @@ const char* hardware[] = {
 	"HPPA",
 	"Alpha",
 	"ARM64",
-	"PowerPC64el"
+	"PowerPC64el",
+	"M68k"
 };
 
 const char* operatingSystem[] = {
@@ -128,8 +130,8 @@ const UCHAR backwardTable[FB_NELEM(hardw
 
 const UCHAR backEndianess[FB_NELEM(hardware)] =
 {
-//	Intel	AMD		Sparc	PPC		PPC64	MIPSEL	MIPS	ARM		IA64	s390	s390x	SH		SHEB	HPPA	Alpha	ARM64	PowerPC64el
-	0,		0,		1,		1,		1,		0,		1,		0,		0,		1,		1,		0,		1,		1,		0,		0,		0
+//	Intel	AMD		Sparc	PPC		PPC64	MIPSEL	MIPS	ARM		IA64	s390	s390x	SH		SHEB	HPPA	Alpha	ARM64	PowerPC64el	M68k
+       0,		0,		1,		1,		1,		0,		1,		0,		0,		1,		1,		0,		1,		1,		0,		0,		0,		1
 };
 
 } // anonymous namespace
--- firebird3.0-3.0.1.32609.ds4.orig/src/common/common.h
+++ firebird3.0-3.0.1.32609.ds4/src/common/common.h
@@ -195,6 +195,10 @@
 #define FB_CPU CpuPowerPc64
 #endif /* PPC64 */
 
+#ifdef M68K
+#define FB_CPU CpuM68k
+#endif /* M68K */
+
 #endif /* LINUX */
 
 
--- firebird3.0-3.0.1.32609.ds4.orig/src/jrd/inf_pub.h
+++ firebird3.0-3.0.1.32609.ds4/src/jrd/inf_pub.h
@@ -241,6 +241,7 @@ enum  info_db_implementations
 	isc_info_db_impl_linux_arm64 = 84,
 	isc_info_db_impl_linux_ppc64el = 85,
 	isc_info_db_impl_linux_ppc64 = 86,
+	isc_info_db_impl_linux_m68k = 87,
 
 
 	isc_info_db_impl_last_value   // Leave this LAST!

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: