Backport premake extra arch support

Grab upstream patches adding support for building premake on riscv64
[1], loongarch64 [2], and e2k [3].

[1] 82c9d90495940e2d0d574e1c7849e9698f23b090
[2] 928397f72c00979d57ec4688cb1fb26ec7f2449b
[3] 5c524b6d53307bcb4ba7b02c9dba20100df68943

Fixes: #7346
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
This commit is contained in:
Ralph Sennhauser
2024-12-21 07:27:44 +01:00
parent 409ba0bab5
commit 00813ff99a
4 changed files with 167 additions and 2 deletions
+10 -2
View File
@@ -8,7 +8,7 @@ set -e
cd "$(dirname "$0")"
PV=5.0.0-beta3
LIB_VERSION=${PV}+wfg0
LIB_VERSION=${PV}+wfg1
echo "Building Premake..."
while [ "$#" -gt 0 ]; do
@@ -37,9 +37,17 @@ fi
rm -Rf "premake-core-${PV}"
tar -xf "premake-core-${PV}.tar.gz"
#patch
# patch
# ffcb7790f013bdceacc14ba5fda1c5cd107aac08
patch -d "premake-core-${PV}" -p1 <patches/0001-Use-_SC_NPROCESSORS_ONLN-for-CPU-detection-in-BSDs.-.patch
# https://github.com/premake/premake-core/issues/2338
patch -d "premake-core-${PV}" -p1 <patches/0002-Make-clang-default-toolset-for-BSD.patch
# 82c9d90495940e2d0d574e1c7849e9698f23b090
patch -d "premake-core-${PV}" -p1 <patches/0003-Add-support-for-riscv64-2356.patch
# 928397f72c00979d57ec4688cb1fb26ec7f2449b
patch -d "premake-core-${PV}" -p1 <patches/0004-Add-support-for-loongarch64-2363.patch
# 5c524b6d53307bcb4ba7b02c9dba20100df68943
patch -d "premake-core-${PV}" -p1 <patches/0005-premake.h-added-e2k-definition-2349.patch
#build
(
@@ -0,0 +1,68 @@
From 4a4491c96feb182d219759de0d9e7655d4ab39ec Mon Sep 17 00:00:00 2001
From: Levi Zim <rsworktech@outlook.com>
Date: Thu, 5 Dec 2024 23:52:42 +0800
Subject: [PATCH] Add support for riscv64 (#2356)
* Add support for riscv64
* Make error message clear when architecture is unknown
---
src/_premake_init.lua | 1 +
src/base/_foundation.lua | 1 +
src/host/premake.h | 4 ++++
website/docs/architecture.md | 1 +
4 files changed, 7 insertions(+)
diff --git a/src/_premake_init.lua b/src/_premake_init.lua
index ca901ffc..184f0c43 100644
--- a/src/_premake_init.lua
+++ b/src/_premake_init.lua
@@ -28,6 +28,7 @@
p.X86_64,
p.ARM,
p.ARM64,
+ p.RISCV64,
},
aliases = {
i386 = p.X86,
diff --git a/src/base/_foundation.lua b/src/base/_foundation.lua
index 0c19a861..411eb536 100644
--- a/src/base/_foundation.lua
+++ b/src/base/_foundation.lua
@@ -61,6 +61,7 @@
premake.X86_64 = "x86_64"
premake.ARM = "ARM"
premake.ARM64 = "ARM64"
+ premake.RISCV64 = "RISCV64"
diff --git a/src/host/premake.h b/src/host/premake.h
index 9bf20380..788f8a38 100644
--- a/src/host/premake.h
+++ b/src/host/premake.h
@@ -60,6 +60,10 @@
#elif defined(__arm__) || defined(__thumb__) || defined(__TARGET_ARCH_ARM) || defined(__TARGET_ARCH_THUMB) || \
defined(__ARM) || defined(_M_ARM) || defined(_M_ARM_T) || defined(__ARM_ARCH)
#define PLATFORM_ARCHITECTURE "ARM"
+#elif defined(_M_RISCV64) || (defined(__riscv) && __riscv_xlen == 64)
+#define PLATFORM_ARCHITECTURE "RISCV64"
+#elif !defined(RC_INVOKED)
+#error Unknown architecture detected
#endif
/* Pull in platform-specific headers required by built-in functions */
diff --git a/website/docs/architecture.md b/website/docs/architecture.md
index fb530453..0dbe352e 100644
--- a/website/docs/architecture.md
+++ b/website/docs/architecture.md
@@ -13,6 +13,7 @@ architecture ("value")
* `x86_64`
* `ARM`
* `ARM64`
+* `RISCV64`
* `armv5`: Only supported in VSAndroid projects
* `armv7`: Only supported in VSAndroid projects
* `aarch64`: Only supported in VSAndroid projects
--
2.45.2
@@ -0,0 +1,64 @@
From 64a8e8ae350a734b2b8512c4bcbba6e56a8e814e Mon Sep 17 00:00:00 2001
From: Leo <114008189+Leoforever123@users.noreply.github.com>
Date: Sat, 7 Dec 2024 11:21:24 +0800
Subject: [PATCH] Add support for loongarch64 (#2363)
---
src/_premake_init.lua | 1 +
src/base/_foundation.lua | 1 +
src/host/premake.h | 2 ++
website/docs/architecture.md | 1 +
4 files changed, 5 insertions(+)
diff --git a/src/_premake_init.lua b/src/_premake_init.lua
index 184f0c43..d40558df 100644
--- a/src/_premake_init.lua
+++ b/src/_premake_init.lua
@@ -29,6 +29,7 @@
p.ARM,
p.ARM64,
p.RISCV64,
+ p.LOONGARCH64
},
aliases = {
i386 = p.X86,
diff --git a/src/base/_foundation.lua b/src/base/_foundation.lua
index 411eb536..4581d2c0 100644
--- a/src/base/_foundation.lua
+++ b/src/base/_foundation.lua
@@ -62,6 +62,7 @@
premake.ARM = "ARM"
premake.ARM64 = "ARM64"
premake.RISCV64 = "RISCV64"
+ premake.LOONGARCH64 = "loongarch64"
diff --git a/src/host/premake.h b/src/host/premake.h
index 788f8a38..4e15b863 100644
--- a/src/host/premake.h
+++ b/src/host/premake.h
@@ -62,6 +62,8 @@
#define PLATFORM_ARCHITECTURE "ARM"
#elif defined(_M_RISCV64) || (defined(__riscv) && __riscv_xlen == 64)
#define PLATFORM_ARCHITECTURE "RISCV64"
+#elif (defined(__loongarch__) && __loongarch_grlen == 64) || defined(__loongarch64)
+#define PLATFORM_ARCHITECTURE "loongarch64"
#elif !defined(RC_INVOKED)
#error Unknown architecture detected
#endif
diff --git a/website/docs/architecture.md b/website/docs/architecture.md
index 0dbe352e..e7f4283f 100644
--- a/website/docs/architecture.md
+++ b/website/docs/architecture.md
@@ -14,6 +14,7 @@ architecture ("value")
* `ARM`
* `ARM64`
* `RISCV64`
+* `loongarch64`
* `armv5`: Only supported in VSAndroid projects
* `armv7`: Only supported in VSAndroid projects
* `aarch64`: Only supported in VSAndroid projects
--
2.45.2
@@ -0,0 +1,25 @@
From a4fa1da72cc969bb85e575be25acd5aaef2edc49 Mon Sep 17 00:00:00 2001
From: r-a-sattarov <51679282+r-a-sattarov@users.noreply.github.com>
Date: Sun, 8 Dec 2024 22:39:47 +0300
Subject: [PATCH] premake.h - added e2k definition (#2349)
---
src/host/premake.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/host/premake.h b/src/host/premake.h
index 4e15b863..25ccf33a 100644
--- a/src/host/premake.h
+++ b/src/host/premake.h
@@ -64,6 +64,8 @@
#define PLATFORM_ARCHITECTURE "RISCV64"
#elif (defined(__loongarch__) && __loongarch_grlen == 64) || defined(__loongarch64)
#define PLATFORM_ARCHITECTURE "loongarch64"
+#elif defined(__e2k__)
+#define PLATFORM_ARCHITECTURE "e2k"
#elif !defined(RC_INVOKED)
#error Unknown architecture detected
#endif
--
2.45.2