summary refs log tree commit diff
path: root/gnu/packages/linux.scm
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2018-06-06 17:19:18 +0200
committerMarius Bakke <mbakke@fastmail.com>2018-06-16 21:35:24 +0200
commitcdbcfc113bfc02e58bdf6ec42c545c479681602f (patch)
tree34abebc1683bb1d54bea3507fda63cbd4cf6ad00 /gnu/packages/linux.scm
parent38ab778fbd676fe7f7a84220d0cf7f474573dc2b (diff)
downloadguix-cdbcfc113bfc02e58bdf6ec42c545c479681602f.tar.gz
gnu: linux-libre: Fix build on AArch64.
* gnu/packages/patches/binutils-aarch64-symbol-relocation.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/base.scm (binutils/fixed): New public variable.
* gnu/packages/linux.scm (make-linux-libre)[native-inputs]: On aarch64, define
new ld-wrapper with the above binutils and use it.
Diffstat (limited to 'gnu/packages/linux.scm')
-rw-r--r--gnu/packages/linux.scm6
1 files changed, 6 insertions, 0 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 9938af99b8..4ed418d6a9 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -295,6 +295,12 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
                  (or (%current-target-system) (%current-system)))
            ((or "x86_64" "i386")
             `(("gcc" ,gcc-7)))
+           ("arm64"
+            ;; Work around a binutils 2.30 bug where some kernel symbols would
+            ;; be incorrectly marked as relocatable:
+            ;; <https://sourceware.org/bugzilla/show_bug.cgi?id=22764>.
+            `(("ld-wrapper" ,(make-ld-wrapper "ld-wrapper"
+                                              #:binutils binutils/fixed))))
            (_
             '()))
        ,@(match (and configuration-file