Source: firebird3.0
Version: 3.0.3.32900.ds4-2
Severity: normal
Tags: patch upstream fixed-upstream
User: debian-ri...@lists.debian.org
Usertags: riscv64

Hello,

We need support in this package for the riscv64 architecture.

There is a patch from upstream:

  
https://github.com/FirebirdSQL/firebird/commit/1e8e7858db84750a77006d307bf28e9686f9414e

It needs some modifications (file attached) to be applied in the current version
of this package in unstable:

  + removed hunk fixing typo in "encyption", fixed separately (in another
    patch of the series applied to the package in Debian)
  + removed extra tab in the second line after "backEndianess" (there are
    only two tabs before the last character, a '1' in the line; in the
    patch from upstream there are 3, so lines don't match)
  + fixed whitespace in the hunk for configure.ac
  + refresh

The build didn't finish yet, we will confirm later when it works, or will send
further fixes.

It would be great if, upon confirmation that it works, you could include it as a
patch and release a new version for unstable as soon as possible, since there
are very important packages depending on this package (php7, graphviz on php7,
and many packages needing graphviz for their documentation).

If you need any assistance, please let me/us know.


Thanks and cheers.
--
Manuel A. Fernandez Montecelo <m...@debian.org>
>From 1e8e7858db84750a77006d307bf28e9686f9414e Mon Sep 17 00:00:00 2001
From: AlexPeshkoff <alexander.peshk...@gmail.com>
Date: Wed, 21 Mar 2018 15:19:20 +0300
Subject: [PATCH] Patch for CORE-5779: support for riscv64, also some code
 fixes related with prior ports

---
 configure.ac                            | 12 ++++++++++++
 src/common/classes/DbImplementation.cpp | 29 ++++++++++++++++-------------
 src/common/common.h                     |  4 ++++
 src/include/gen/msgs.h                  |  2 +-
 src/jrd/inf_pub.h                       |  2 +-
 5 files changed, 34 insertions(+), 15 deletions(-)

--- a/configure.ac
+++ b/configure.ac
@@ -251,6 +251,18 @@
     libdir=/usr/lib64
     ;;
 
+  riscv64*-*-linux*)
+    MAKEFILE_PREFIX=linux_riscv64
+    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
+    libdir=/usr/lib64
+    ;;
+
   powerpc64le-*-linux*)                           
     MAKEFILE_PREFIX=linux_powerpc64el
     INSTALL_PREFIX=linux
--- a/src/common/classes/DbImplementation.cpp
+++ b/src/common/classes/DbImplementation.cpp
@@ -49,6 +49,7 @@
 static const UCHAR CpuArm64 = 15;
 static const UCHAR CpuPowerPc64el = 16;
 static const UCHAR CpuM68k = 17;
+static const UCHAR CpuRiscV64 = 18;
 
 static const UCHAR OsWindows = 0;
 static const UCHAR OsLinux = 1;
@@ -89,7 +90,8 @@
        "Alpha",
        "ARM64",
        "PowerPC64el",
-       "M68k"
+       "M68k",
+       "RiscV64"
 };
 
 const char* operatingSystem[] = {
@@ -116,22 +118,23 @@
 // This table lists pre-fb3 implementation codes
 const UCHAR backwardTable[FB_NELEM(hardware) * FB_NELEM(operatingSystem)] =
 {
-//                             Intel   AMD             Sparc   PPC             
PPC64   MIPSEL  MIPS    ARM             IA64    s390    s390x   SH              
SHEB    HPPA    Alpha   ARM64   PowerPC64el
-/* Windows */  50,             68,             0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0,
-/* Linux */            60,             66,             65,             69,     
        86,             71,             72,             75,     76,             
79,     78,             80,             81,             82,             83,     
        84,             85,
-/* Darwin */   70,             73,             0,              63,             
77,             0,              0,              0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0,
-/* Solaris */  0,              0,              30,             0,              
0,              0,              0,              0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0,
-/* HPUX */             0,              0,              0,              0,      
        0,              0,              0,              0,              0,      
        0,              0,              0,              0,              31,     
        0,              0,              0,
-/* AIX */                      0,              0,              0,              
35,             0,              0,              0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0,              0,
-/* MVS */                      0,              0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0,              0,
-/* FreeBSD */  61,             67,             0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0,
-/* NetBSD */   62,             0,              0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0
+//                             Intel   AMD             Sparc   PPC             
PPC64   MIPSEL  MIPS    ARM             IA64    s390    s390x   SH              
SHEB    HPPA    Alpha   ARM64   PPC64el M68k    RiscV64
+/* Windows */  50,             68,             0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0,              0,              0,
+/* Linux */            60,             66,             65,             69,     
        86,             71,             72,             75,     76,             
79,     78,             80,             81,             82,             83,     
        84,             85,             87,             88,
+/* Darwin */   70,             73,             0,              63,             
77,             0,              0,              0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0,              0,              0,
+/* Solaris */  0,              0,              30,             0,              
0,              0,              0,              0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0,              0,              0,
+/* HPUX */             0,              0,              0,              0,      
        0,              0,              0,              0,              0,      
        0,              0,              0,              0,              31,     
        0,              0,              0,              0,              0,
+/* AIX */              0,              0,              0,              35,     
        0,              0,              0,              0,              0,      
        0,              0,              0,              0,              0,      
        0,              0,              0,              0,              0,
+/* MVS */              0,              0,              0,              0,      
        0,              0,              0,              0,              0,      
        0,              0,              0,              0,              0,      
        0,              0,              0,              0,              0,
+/* FreeBSD */  61,             67,             0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0,              0,              0,
+/* NetBSD */   62,             0,              0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0,              0,              0,              
0,              0,              0,              0,              0
 };
 
+
 const UCHAR backEndianess[FB_NELEM(hardware)] =
 {
-//     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
+//     Intel   AMD             Sparc   PPC             PPC64   MIPSEL  MIPS    
ARM             IA64    s390    s390x   SH              SHEB    HPPA    Alpha   
ARM64   PPC64el M68k    RiscV64
+       0,              0,              1,              1,              1,      
        0,              1,              0,              0,              1,      
        1,              0,              1,              1,              0,      
        0,              0,              1,              0,
 };
 
 } // anonymous namespace
--- a/src/common/common.h
+++ b/src/common/common.h
@@ -135,6 +135,10 @@
 #define FB_CPU CpuArm64
 #endif /* ARM64 */
 
+#ifdef RISCV64
+#define FB_CPU CpuRiscV64
+#endif /* RISCV64 */
+
 #ifdef sparc
 #define FB_CPU CpuUltraSparc
 #define RISC_ALIGNMENT
--- a/src/jrd/inf_pub.h
+++ b/src/jrd/inf_pub.h
@@ -245,7 +245,7 @@
        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_linux_riscv64 = 88,
 
        isc_info_db_impl_last_value   // Leave this LAST!
 };

Reply via email to