From 440a3143f01083649dedddc97a0d6108bb3d2920 Mon Sep 17 00:00:00 2001 From: Carlos Sánchez de La Lama Date: Wed, 4 Jan 2017 23:50:37 +0100 Subject: gnu: linux-libre: Adjust for PowerPC. * gnu/packages/linux.scm (system->defconfig): New procedure. (linux-libre-headers)[arguments]: Use it in 'build' phase to determine the target name. * gnu/packages/cross-base.scm (cross-kernel-headers)[xlinux-headers] (arguments): Likewise. --- gnu/packages/cross-base.scm | 2 +- gnu/packages/linux.scm | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index e6553dcd34..da2efc3642 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -315,7 +315,7 @@ GCC that does not target a libc; otherwise, target that libc." (setenv "ARCH" ,(system->linux-architecture target)) (format #t "`ARCH' set to `~a' (cross compiling)~%" (getenv "ARCH")) - (and (zero? (system* "make" "defconfig")) + (and (zero? (system* "make" ,(system->defconfig target))) (zero? (system* "make" "mrproper" "headers_check")))) ,phases)))) (native-inputs `(("cross-gcc" ,xgcc) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index a040aeb768..a0d86bb40e 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2016 John Darrington ;;; Copyright © 2016 Marius Bakke ;;; Copyright © 2016 Rene Saavedra +;;; Copyright © 2016 Carlos Sánchez de La Lama ;;; ;;; This file is part of GNU Guix. ;;; @@ -98,6 +99,13 @@ ((string-prefix? "aarch64" arch) "arm64") (else arch)))) +(define-public (system->defconfig system) + "Some systems (notably powerpc-linux) require a special target for kernel +defconfig. Return the appropiate make target if applicable, otherwise return +\"defconfig\"." + (cond ((string-prefix? "powerpc-" system) "pmac32_defconfig") + (else "defconfig"))) + (define (linux-libre-urls version) "Return a list of URLs for Linux-Libre VERSION." (list (string-append @@ -137,11 +145,13 @@ (lambda _ (let ((arch ,(system->linux-architecture (or (%current-target-system) - (%current-system))))) + (%current-system)))) + (defconfig ,(system->defconfig + (or (%current-target-system) + (%current-system))))) (setenv "ARCH" arch) (format #t "`ARCH' set to `~a'~%" (getenv "ARCH")) - - (and (zero? (system* "make" "defconfig")) + (and (zero? (system* "make" defconfig)) (zero? (system* "make" "mrproper" "headers_check")))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) -- cgit v1.2.3