* gnu/packages/databases.scm (firebird)[source]: Add patches. [arguments]: Add custom phase when building for riscv64-linux to force the bootstrap phase to occur. [native-inputs]: When building for riscv64-linux add autoconf, automake and libtool. * gnu/packages/patches/firebird-riscv64-support-pt1.patch, gnu/packages/patches/firebird-riscv64-support-pt2.patch: New files. * gnu/local.mk (dist_patch_DATA): Register them.
		
			
				
	
	
		
			108 lines
		
	
	
	
		
			4.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
	
		
			4.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| https://salsa.debian.org/firebird-team/firebird3.0/-/raw/master/debian/patches/upstream/riscv64-support.patch
 | |
| 
 | |
| 1e8e7858db84750a77006d307bf28e9686f9414e Patch for CORE-5779: support for riscv64, also some code fixes related with prior ports
 | |
|  Minor corrections compared to the commit above due to whitespace/spelling
 | |
|  differences with 3.0 version
 | |
| Bug-Debian: https://bugs.debian.org/895257
 | |
| Bug: http://tracker.firebirdsql.org/browse/CORE-5779
 | |
| 
 | |
| --- a/configure.ac
 | |
| +++ b/configure.ac
 | |
| @@ -251,6 +251,18 @@ dnl CPU_TYPE=ppc64
 | |
|      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 CpuAlpha = 14;
 | |
|  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 @@ const char* hardware[] = {
 | |
|  	"Alpha",
 | |
|  	"ARM64",
 | |
|  	"PowerPC64el",
 | |
| -	"M68k"
 | |
| +	"M68k",
 | |
| +	"RiscV64"
 | |
|  };
 | |
|  
 | |
|  const char* operatingSystem[] = {
 | |
| @@ -116,22 +118,22 @@ const char* compiler[] = {
 | |
|  // 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
 | |
| @@ -247,7 +247,7 @@ enum  info_db_implementations
 | |
|  	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!
 | |
|  };
 |