summary refs log tree commit diff
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2023-03-08 16:10:08 +0200
committerEfraim Flashner <efraim@flashner.co.il>2023-03-09 15:10:16 +0200
commite22a6ed8f82eb094242a3c4c723f7ab7635a4976 (patch)
tree132e875e16ac4146ad8715ffb7233f5bb700b3f4
parent7b1dd1e9eae20d7df5f1bcde6f7bb4906fc7ef9f (diff)
downloadguix-e22a6ed8f82eb094242a3c4c723f7ab7635a4976.tar.gz
gnu: make-openbios-package: Enable building from aarch64, riscv64.
* gnu/packages/firmware.scm (make-openbios-package)[source]: Add patch
to correctly detect aarch64 and riscv64 build hosts.
(openbios-qemu-ppc)[arguments]: Remove aarch64 workaround for #:system.
* gnu/packages/patches/openbios-aarch64-riscv64-support.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/firmware.scm8
-rw-r--r--gnu/packages/patches/openbios-aarch64-riscv64-support.patch17
3 files changed, 20 insertions, 6 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 4dbe603512..53a09f79cd 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1606,6 +1606,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/onnx-use-system-googletest.patch	\
   %D%/packages/patches/onnx-shared-libraries.patch	\
   %D%/packages/patches/onnx-skip-model-downloads.patch		\
+  %D%/packages/patches/openbios-aarch64-riscv64-support.patch	\
   %D%/packages/patches/openboardview-use-system-imgui.patch	\
   %D%/packages/patches/openboardview-use-system-utf8.patch	\
   %D%/packages/patches/openbox-python3.patch			\
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index 873ad02ae1..956ece5d6d 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -410,7 +410,8 @@ utilites used to process FCODE, OpenFirmware's byte code, consisting of:
               (file-name (git-file-name "openbios" version))
               (sha256
                (base32
-                "1xp1b6xgx40i0j3a5y3id0d1p8vdvapai8szganxg3zrvj53fh0n"))))
+                "1xp1b6xgx40i0j3a5y3id0d1p8vdvapai8szganxg3zrvj53fh0n"))
+              (patches (search-patches "openbios-aarch64-riscv64-support.patch"))))
     (build-system gnu-build-system)
     (arguments
      (list #:tests? #f                  ;no tests
@@ -457,11 +458,6 @@ provide OpenFirmware functionality on top of an already running system.")
       (inherit base)
       (arguments
        (substitute-keyword-arguments (package-arguments base)
-         ((#:system system (%current-system))
-          (if (string-prefix? "aarch64-linux" (or (%current-system)
-                                                  (%current-target-system)))
-            "armhf-linux"
-            system))
          ;; No need to cross-compile, package produces reproducible firmware.
          ((#:target _ #f) #f)
          ((#:phases phases)
diff --git a/gnu/packages/patches/openbios-aarch64-riscv64-support.patch b/gnu/packages/patches/openbios-aarch64-riscv64-support.patch
new file mode 100644
index 0000000000..25cf2499b8
--- /dev/null
+++ b/gnu/packages/patches/openbios-aarch64-riscv64-support.patch
@@ -0,0 +1,17 @@
+This was submitted upstream
+https://github.com/openbios/openbios/pull/12
+
+diff --git a/config/scripts/switch-arch b/config/scripts/switch-arch
+index b5acc6c..a96ef4b 100755
+--- a/config/scripts/switch-arch
++++ b/config/scripts/switch-arch
+@@ -38,7 +38,8 @@ longbits()
+     if test "$cpu" = "sparc64" -o "$cpu" = "ia64" \
+         -o "$cpu" = "amd64" -o "$cpu" = "x86_64" \
+         -o "$cpu" = "powerpc64" -o "$cpu" = "ppc64" \
+-        -o "$cpu" = "ppc64le" -o "$cpu" = "alpha" ; then
++        -o "$cpu" = "ppc64le" -o "$cpu" = "alpha" \
++        -o "$cpu" = "aarch64" -o "$cpu" = "riscv64" ; then
+         echo 64
+     else
+         echo 32