From 14f1b9c2bc9fb01fba0b2dfa27c797fd4a48be4b Mon Sep 17 00:00:00 2001 From: q66 Date: Mon, 1 Nov 2021 21:36:10 +0100 Subject: [PATCH] godot: fix ppc64* build --- srcpkgs/godot/patches/ppc.patch | 87 +++++++++++++++++++++++++++++++++ srcpkgs/godot/template | 4 +- 2 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/godot/patches/ppc.patch diff --git a/srcpkgs/godot/patches/ppc.patch b/srcpkgs/godot/patches/ppc.patch new file mode 100644 index 00000000000..a6e4d3638fd --- /dev/null +++ b/srcpkgs/godot/patches/ppc.patch @@ -0,0 +1,87 @@ +From 9ae32c08a4cab0a77eed682c9fb188ce7fc6f85a Mon Sep 17 00:00:00 2001 +From: q66 +Date: Mon, 1 Nov 2021 21:05:31 +0100 +Subject: [PATCH] add ppc detection + +--- + core/os/os.cpp | 14 ++++++++++++++ + modules/lightmapper_cpu/config.py | 3 +++ + modules/raycast/config.py | 3 +++ + platform/x11/detect.py | 8 ++++++++ + 4 files changed, 28 insertions(+) + +diff --git a/core/os/os.cpp b/core/os/os.cpp +index 35896d8..948c79a 100644 +--- a/core/os/os.cpp ++++ b/core/os/os.cpp +@@ -699,6 +699,20 @@ bool OS::has_feature(const String &p_feature) { + if (p_feature == "arm") { + return true; + } ++#elif defined(__powerpc__) ++#if defined(__powerpc64__) ++#if defined(__LITTLE_ENDIAN__) ++ if (p_feature == "ppc64le") { ++ return true; ++ } ++#endif ++ if (p_feature == "ppc64") { ++ return true; ++ } ++#endif ++ if (p_feature == "ppc") { ++ return true; ++ } + #endif + + if (_check_internal_feature_support(p_feature)) +diff --git a/modules/lightmapper_cpu/config.py b/modules/lightmapper_cpu/config.py +index a3a33b3..842f9ae 100644 +--- a/modules/lightmapper_cpu/config.py ++++ b/modules/lightmapper_cpu/config.py +@@ -15,6 +15,9 @@ def can_build(env, platform): + if env["bits"] == "32": + return False + ++ if env["arch"].startswith("ppc"): ++ return False ++ + return True + + +diff --git a/modules/raycast/config.py b/modules/raycast/config.py +index 6ea8e0a..bc2d40c 100644 +--- a/modules/raycast/config.py ++++ b/modules/raycast/config.py +@@ -14,6 +14,9 @@ def can_build(env, platform): + if env["bits"] == "32": + return False + ++ if env["arch"].startswith("ppc"): ++ return False ++ + return True + + +diff --git a/platform/x11/detect.py b/platform/x11/detect.py +index b6472e2..c1858a7 100644 +--- a/platform/x11/detect.py ++++ b/platform/x11/detect.py +@@ -119,6 +119,14 @@ def configure(env): + if env["bits"] == "default": + env["bits"] = "64" if is64 else "32" + ++ if env["arch"] == "": ++ if platform.machine() == "ppc64le": ++ env["arch"] = "ppc64le" ++ elif platform.machine() == "ppc64": ++ env["arch"] = "ppc64" ++ elif platform.machine() == "ppc": ++ env["arch"] = "ppc" ++ + ## Compiler configuration + + if "CXX" in env and "clang" in os.path.basename(env["CXX"]): +-- +2.33.0 + diff --git a/srcpkgs/godot/template b/srcpkgs/godot/template index 5b2ddee3a01..2637d01eefd 100644 --- a/srcpkgs/godot/template +++ b/srcpkgs/godot/template @@ -48,7 +48,9 @@ do_install() { vinstall ${wrksrc}/icon.png 644 /usr/share/pixmaps/ godot.png case "$XBPS_TARGET_MACHINE" in - x86_64*|aarch64*|ppc64*) vbin bin/godot.x11.opt.tools.64 godot;; + x86_64*|aarch64*) vbin bin/godot.x11.opt.tools.64 godot;; + ppc64le*) vbin bin/godot.x11.opt.tools.ppc64le godot;; + ppc64*) vbin bin/godot.x11.opt.tools.ppc64 godot;; *) vbin bin/godot.x11.opt.tools.32 godot;; esac }