summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/bootloaders.scm21
1 files changed, 17 insertions, 4 deletions
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 71a10f54d5..d19cf55bc4 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -340,10 +340,23 @@ menu to select one of the installed operating systems.")
     (synopsis "GRand Unified Boot loader (UEFI 32bit version)")
     (arguments
      `(,@(substitute-keyword-arguments (package-arguments grub-efi)
-           ((#:configure-flags flags
-             ''()) `(cons* ,(cond ((target-x86?) "--target=i386")
-                                  ((target-arm?) "--target=arm"))
-                           ,flags)))))))
+           ((#:configure-flags flags ''())
+            `(cons*
+               ,@(cond ((target-x86?) '("--target=i386"))
+                       ((target-aarch64?)
+                        (list "--target=arm"
+                              (string-append "TARGET_CC="
+                                             (cc-for-target "arm-linux-gnueabihf"))))
+                       ((target-arm?) '("--target=arm"))
+                       (else '()))
+               ,flags)))))
+    (native-inputs
+     (if (target-aarch64?)
+       (modify-inputs (package-native-inputs grub-efi)
+         (prepend
+           (cross-gcc "arm-linux-gnueabihf")
+           (cross-binutils "arm-linux-gnueabihf")))
+       (package-native-inputs grub-efi)))))
 
 ;; Because grub searches hardcoded paths it's easiest to just build grub
 ;; again to make it find both grub-pc and grub-efi.  There is a command