aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Craven <david@craven.ch>2016-09-02 18:05:37 +0200
committerDavid Craven <david@craven.ch>2016-09-13 16:45:41 +0200
commit4b42703ed551cd70dcc4dba3991c25737dd74f4a (patch)
tree8d84af337b3c7572646565776a68da2aa494f5f3
parent9416459b7294e7229613f15a475ea8a65f0cc303 (diff)
downloadguix-4b42703ed551cd70dcc4dba3991c25737dd74f4a.tar
guix-4b42703ed551cd70dcc4dba3991c25737dd74f4a.tar.gz
gnu: linux-libre: Add support for cross-compilation.
* gnu/packages/linux.scm (linux-libre): Add support for cross-compilation.
-rw-r--r--gnu/packages/linux.scm15
1 files changed, 10 insertions, 5 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index cb374e49be..86681754ce 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -291,17 +291,22 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
#:phases
(modify-phases %standard-phases
(replace 'configure
- (lambda* (#:key inputs #:allow-other-keys)
+ (lambda* (#:key inputs native-inputs target #:allow-other-keys)
;; Avoid introducing timestamps
(setenv "KCONFIG_NOTIMESTAMP" "1")
(setenv "KBUILD_BUILD_TIMESTAMP" (getenv "SOURCE_DATE_EPOCH"))
+ ;; Set ARCH and CROSS_COMPILE
(let ((arch ,(system->linux-architecture
(or (%current-target-system)
(%current-system)))))
- (setenv "ARCH" arch))
+ (setenv "ARCH" arch)
+ (format #t "`ARCH' set to `~a'~%" (getenv "ARCH"))
- (format #t "`ARCH' set to `~a'~%" (getenv "ARCH"))
+ (when target
+ (setenv "CROSS_COMPILE" (string-append target "-"))
+ (format #t "`CROSS_COMPILE' set to `~a'~%"
+ (getenv "CROSS_COMPILE"))))
(let ((build (assoc-ref %standard-phases 'build))
(config (assoc-ref inputs "kconfig")))
@@ -334,10 +339,10 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
(zero? (system* "make" "oldconfig")))))
(replace 'install
- (lambda* (#:key inputs outputs #:allow-other-keys)
+ (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(moddir (string-append out "/lib/modules"))
- (mit (assoc-ref inputs "module-init-tools")))
+ (mit (assoc-ref (or native-inputs inputs) "module-init-tools")))
(mkdir-p moddir)
(for-each (lambda (file)
(copy-file file