2
0
Эх сурвалжийг харах

Added support for risc-v.

Brucey 2 жил өмнө
parent
commit
d53b34a032
3 өөрчлөгдсөн 27 нэмэгдсэн , 5 устгасан
  1. 4 0
      CHANGELOG
  2. 16 2
      bmk_config.bmx
  3. 7 3
      bmk_modutil.bmx

+ 4 - 0
CHANGELOG

@@ -1,3 +1,7 @@
+## [3.52] - 2023-04-29
+### Added
+ - Added support for risc-v on Linux.
+
 ## [3.51] - 2023-03-02
 ## [3.51] - 2023-03-02
 ### Fixed
 ### Fixed
  - .cxx files use CPP_OPTS.
  - .cxx files use CPP_OPTS.

+ 16 - 2
bmk_config.bmx

@@ -10,7 +10,7 @@ Import brl.map
 
 
 Import "stringbuffer_core.bmx"
 Import "stringbuffer_core.bmx"
 
 
-Const BMK_VERSION:String = "3.51"
+Const BMK_VERSION:String = "3.52"
 
 
 Const ALL_SRC_EXTS$="bmx;i;c;m;h;cpp;cxx;mm;hpp;hxx;s;cc;asm;S"
 Const ALL_SRC_EXTS$="bmx;i;c;m;h;cpp;cxx;mm;hpp;hxx;s;cc;asm;S"
 
 
@@ -129,6 +129,10 @@ opt_arch="arm64"
 opt_arch="x86"
 opt_arch="x86"
 ?haikux64
 ?haikux64
 opt_arch="x64"
 opt_arch="x64"
+?linuxRiscv32
+opt_arch="riscv32"
+?linuxRiscv64
+opt_arch="riscv64"
 ?
 ?
 
 
 TStringBuffer.initialCapacity = 128
 TStringBuffer.initialCapacity = 128
@@ -360,12 +364,16 @@ Function Usage:String(fullUsage:Int = False)
 		s:+ "arm64v8a"
 		s:+ "arm64v8a"
 ?js
 ?js
 		s:+ "js"
 		s:+ "js"
+?riscv32
+		s:+ "riscv32"
+?riscv64
+		s:+ "riscv64"
 ?
 ?
 		s:+ ")~n"
 		s:+ ")~n"
 		s:+ "~t~tOptions vary depending on the current OS/architecture/installed toolchain and version of bcc.~n"
 		s:+ "~t~tOptions vary depending on the current OS/architecture/installed toolchain and version of bcc.~n"
 		s:+ "~t~t~tMacOS : x86, x64, arm64~n"
 		s:+ "~t~t~tMacOS : x86, x64, arm64~n"
 		s:+ "~t~t~tWin32 : x86, x64, armv7, armv64~n"
 		s:+ "~t~t~tWin32 : x86, x64, armv7, armv64~n"
-		s:+ "~t~t~tLinux : x86, x64, arm, arm64~n"
+		s:+ "~t~t~tLinux : x86, x64, arm, arm64, riscv32, riscv64~n"
 		s:+ "~t~t~tiOS : x86, x64 (simulator), armv7, arm64~n"
 		s:+ "~t~t~tiOS : x86, x64 (simulator), armv7, arm64~n"
 		s:+ "~t~t~tAndroid : x86, x64, arm, armeabi, armeabiv7a, arm64v8a~n"
 		s:+ "~t~t~tAndroid : x86, x64, arm, armeabi, armeabiv7a, arm64v8a~n"
 		s:+ "~t~t~tRaspberryPi : arm, arm64~n"
 		s:+ "~t~t~tRaspberryPi : arm, arm64~n"
@@ -514,6 +522,10 @@ Function VersionInfo(gcc:String, cores:Int, xcode:String)
 	s:+ "arm64v8a"
 	s:+ "arm64v8a"
 ?js
 ?js
 	s:+ "js"
 	s:+ "js"
+?riscv32
+	s:+ "riscv32"
+?riscv64
+	s:+ "riscv64"
 ?
 ?
 	s:+ " / " + gcc
 	s:+ " / " + gcc
 	
 	
@@ -655,6 +667,8 @@ Function ValidateArch(arch:String)
 		Case "armv7"
 		Case "armv7"
 		Case "arm64"
 		Case "arm64"
 		Case "js"
 		Case "js"
+		Case "riscv32"
+		Case "riscv64"
 		Default
 		Default
 			CmdError "Not a valid architecture : '" + arch + "'"
 			CmdError "Not a valid architecture : '" + arch + "'"
 	End Select
 	End Select

+ 7 - 3
bmk_modutil.bmx

@@ -652,7 +652,7 @@ Function ValidatePlatformArchitecture()
 				valid = True
 				valid = True
 			End If
 			End If
 		Case "linux"
 		Case "linux"
-			If arch = "x86" Or arch = "x64" Or arch = "arm" Or arch="arm64" Then
+			If arch = "x86" Or arch = "x64" Or arch = "arm" Or arch="arm64" Or arch = "riscv32" Or arch = "riscv64" Then
 				valid = True
 				valid = True
 			End If
 			End If
 		Case "macos", "osx"
 		Case "macos", "osx"
@@ -707,10 +707,12 @@ Function SetCompilerValues()
 	compilerOptions.Add("arm64v8a", processor.CPU()="arm64v8a")
 	compilerOptions.Add("arm64v8a", processor.CPU()="arm64v8a")
 	compilerOptions.Add("armv7", processor.CPU()="armv7")
 	compilerOptions.Add("armv7", processor.CPU()="armv7")
 	compilerOptions.Add("arm64", processor.CPU()="arm64")
 	compilerOptions.Add("arm64", processor.CPU()="arm64")
+	compilerOptions.Add("riscv32", processor.CPU()="riscv32")
+	compilerOptions.Add("riscv64", processor.CPU()="riscv64")
 	compilerOptions.Add("js", processor.CPU()="js")
 	compilerOptions.Add("js", processor.CPU()="js")
 
 
-	compilerOptions.Add("ptr32", processor.CPU()="x86" Or processor.CPU()="ppc" Or processor.CPU()="arm" Or processor.CPU()="armeabi" Or processor.CPU()="armeabiv7a" Or processor.CPU()="armv7" Or processor.CPU()="js")
-	compilerOptions.Add("ptr64", processor.CPU()="x64" Or processor.CPU()="arm64v8a" Or processor.CPU()="arm64")
+	compilerOptions.Add("ptr32", processor.CPU()="x86" Or processor.CPU()="ppc" Or processor.CPU()="arm" Or processor.CPU()="armeabi" Or processor.CPU()="armeabiv7a" Or processor.CPU()="armv7" Or processor.CPU()="js" Or processor.CPU()="riscv32")
+	compilerOptions.Add("ptr64", processor.CPU()="x64" Or processor.CPU()="arm64v8a" Or processor.CPU()="arm64" Or processor.CPU()="riscv64")
 
 
 	compilerOptions.Add("win32", processor.Platform() = "win32")
 	compilerOptions.Add("win32", processor.Platform() = "win32")
 	compilerOptions.Add("win32x86", processor.Platform() = "win32" And processor.CPU()="x86")
 	compilerOptions.Add("win32x86", processor.Platform() = "win32" And processor.CPU()="x86")
@@ -725,6 +727,8 @@ Function SetCompilerValues()
 	compilerOptions.Add("linuxx64", (processor.Platform() = "linux" Or processor.Platform() = "android") And processor.CPU()="x64")
 	compilerOptions.Add("linuxx64", (processor.Platform() = "linux" Or processor.Platform() = "android") And processor.CPU()="x64")
 	compilerOptions.Add("linuxarm", (processor.Platform() = "linux" Or processor.Platform() = "android" Or processor.Platform() = "raspberrypi") And processor.CPU()="arm")
 	compilerOptions.Add("linuxarm", (processor.Platform() = "linux" Or processor.Platform() = "android" Or processor.Platform() = "raspberrypi") And processor.CPU()="arm")
 	compilerOptions.Add("linuxarm64", ((processor.Platform() = "linux" Or processor.Platform() = "raspberrypi") And processor.CPU()="arm64") Or (processor.Platform() = "android" And processor.CPU()="arm64v8a"))
 	compilerOptions.Add("linuxarm64", ((processor.Platform() = "linux" Or processor.Platform() = "raspberrypi") And processor.CPU()="arm64") Or (processor.Platform() = "android" And processor.CPU()="arm64v8a"))
+	compilerOptions.Add("linuxriscv32", (processor.Platform() = "linux" And processor.CPU()="riscv32"))
+	compilerOptions.Add("linuxriscv64", ((processor.Platform() = "linux" And processor.CPU()="riscv64")))
 
 
 	compilerOptions.Add("macos", processor.Platform() = "macos" Or processor.Platform() = "osx" Or processor.Platform() = "ios")
 	compilerOptions.Add("macos", processor.Platform() = "macos" Or processor.Platform() = "osx" Or processor.Platform() = "ios")
 	compilerOptions.Add("macosx86", (processor.Platform() = "macos"Or processor.Platform() = "osx" Or processor.Platform() = "ios") And processor.CPU()="x86")
 	compilerOptions.Add("macosx86", (processor.Platform() = "macos"Or processor.Platform() = "osx" Or processor.Platform() = "ios") And processor.CPU()="x86")