summaryrefslogtreecommitdiff
path: root/gnu/packages/bootloaders.scm
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2018-06-15 13:48:51 +0200
committerLudovic Courtès <ludo@gnu.org>2018-06-15 16:41:52 +0200
commita7c8716928a240ba2c36d360e4ffeb447671fa6b (patch)
tree68262f7a2ffdc66c56e1f9edcaa39f0ff768bed8 /gnu/packages/bootloaders.scm
parent4ce4fc501035a8ef461e10d5f3df6ea3a63c7572 (diff)
downloadpatches-a7c8716928a240ba2c36d360e4ffeb447671fa6b.tar
patches-a7c8716928a240ba2c36d360e4ffeb447671fa6b.tar.gz
gnu: grub: Fix build on i686.
Fixes <https://bugs.gnu.org/31380>. * gnu/packages/bootloaders.scm (grub)[native-inputs]: Add "ld-wrapper" and "binutils". Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages/bootloaders.scm')
-rw-r--r--gnu/packages/bootloaders.scm21
1 files changed, 19 insertions, 2 deletions
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index c58fe07423..eb1e433ba7 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
@@ -61,7 +61,8 @@
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (srfi srfi-1)
- #:use-module (srfi srfi-26))
+ #:use-module (srfi srfi-26)
+ #:use-module (ice-9 regex))
(define unifont
;; GNU Unifont, <http://gnu.org/s/unifont>.
@@ -144,6 +145,22 @@
("texinfo" ,texinfo)
("help2man" ,help2man)
+ ;; XXX: When building GRUB 2.02 on 32-bit x86, we need a binutils
+ ;; capable of assembling 64-bit instructions. However, our default
+ ;; binutils on 32-bit x86 is not 64-bit capable.
+ ,@(if (string-match "^i[3456]86-" (%current-system))
+ (let ((binutils (package/inherit
+ binutils
+ (name "binutils-i386")
+ (arguments
+ (substitute-keyword-arguments (package-arguments binutils)
+ ((#:configure-flags flags ''())
+ `(cons "--enable-64-bit-bfd" ,flags)))))))
+ `(("ld-wrapper" ,(make-ld-wrapper "ld-wrapper-i386"
+ #:binutils binutils))
+ ("binutils" ,binutils)))
+ '())
+
;; Dependencies for the test suite. The "real" QEMU is needed here,
;; because several targets are used.
("parted" ,parted)