[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Porting to mips64el
From: |
Ludovic Courtès |
Subject: |
Re: Porting to mips64el |
Date: |
Thu, 14 Feb 2013 12:33:47 +0100 |
User-agent: |
Gnus/5.130005 (Ma Gnus v0.5) Emacs/24.2 (gnu/linux) |
Nikita Karetnikov <address@hidden> skribis:
> I'm attaching three patches.
> '0001-gnu-Disable-Libtool-s-testsuite.patch' and
> '0001-gnu-Set-ARCH-to-mips.patch' are for 'mips64el'. The other one is
> for 'core-updates', but it's also needed for 'mips64el'. (Should I push
> to both?)
>
> Could you test them? (Don't forget to adjust 'build-aux/download.scm'.)
I can’t test on MIPS, but here are some comments.
> I'll push them if they are fine.
To the ‘mips64el’ branch.
> From 41aeaf76e8c61d184f06e8c886e595e8a97ebd16 Mon Sep 17 00:00:00 2001
> From: Nikita Karetnikov <address@hidden>
> Date: Thu, 14 Feb 2013 06:25:38 +0000
> Subject: [PATCH] gnu: Remove a newline.
Change to “gnu: gcc: Remove extraneous newline in LIB_SPEC”. Otherwise
it sounds like it removes a non-significant newline in the code.
> * gnu/packages/base.scm (gcc-4.7): Remove the newline.
“Remove trailing newline when patching ‘LIB_SPEC’.”
You can already commit this one with these changes.
> From ad1536e4730b9d37a0519fdd29bdd8195554358d Mon Sep 17 00:00:00 2001
> From: Nikita Karetnikov <address@hidden>
> Date: Thu, 14 Feb 2013 06:36:23 +0000
> Subject: [PATCH] gnu: Disable Libtool's testsuite.
>
> * gnu/packages/autotools.scm (libtool): Add '#:tests? #f'.
> ---
> gnu/packages/autotools.scm | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm
> index bc4dddc..e004dd9 100644
> --- a/gnu/packages/autotools.scm
> +++ b/gnu/packages/autotools.scm
> @@ -195,7 +195,8 @@ Standards. Automake requires the use of Autoconf.")
> "out")) ; libltdl.so, ltdl.h, etc.
>
> (arguments
> - `(#:patches (list (assoc-ref %build-inputs "patch/skip-tests"))
> + `(#:tests? #f
Instead of disabling tests for everyone, do something like:
`(;; XXX: Work around test failure on MIPS as reported at
;; <http://.../bug-libtool/...>.
#:tests? ,(not (string=? (%current-system) "mips64el-linux"))
;; ...
)
Once done, you can commit it as well.
> From 31a7f172941c592f04f8f741b89e04a2a6677a76 Mon Sep 17 00:00:00 2001
> From: Nikita Karetnikov <address@hidden>
> Date: Thu, 14 Feb 2013 06:14:48 +0000
> Subject: [PATCH] gnu: Set 'ARCH' to 'mips'.
>
> * gnu/packages/linux.scm (linux-libre-headers): Set 'ARCH' to 'mips'.
> ---
> gnu/packages/linux.scm | 19 +++++++++++++++----
> 1 file changed, 15 insertions(+), 4 deletions(-)
>
> diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
> index 58cddc0..fe8148c 100644
> --- a/gnu/packages/linux.scm
> +++ b/gnu/packages/linux.scm
> @@ -29,20 +29,31 @@
> #:use-module (gnu packages pkg-config)
> #:use-module (guix packages)
> #:use-module (guix download)
> - #:use-module (guix build-system gnu))
> + #:use-module (guix build-system gnu)
> + #:use-module ((guix utils) #:select (%current-system)))
>
> (define-public linux-libre-headers
> (let* ((version* "3.3.8")
> (build-phase
> - '(lambda* (#:key system #:allow-other-keys)
> + (lambda ()
> + `(lambda* (#:key system #:allow-other-keys)
> (let ((arch (car (string-split system #\-))))
> (setenv "ARCH"
> (cond ((string=? arch "i686") "i386")
> +
> + ;; FIXME: The unquote below is just to
> + ;; avoid triggering a rebuild. Remove me
> + ;; on the next core-updates.
> + ,@(if (string-prefix? "mips"
> + (%current-system))
> + `(((string-prefix? "mips" arch)
> + "mips"))
> + '())
Now that we’re triggering a rebuild anyway, let’s write it the normal
way, that is:
(setenv "ARCH"
(cond ((string=? arch "i686") "i386")
((string-prefix? "mips" arch") "mips")
(else arch)))
Actually, even better would be do that in host code, as done with
‘glibc-dynamic-linker’:
(define (system->linux-architecture arch)
(let ((arch (car (string-split arch #\-))))
(cond ((string=? arch "i686") "i386")
((string-prefix? "mips" arch") "mips")
(else arch))))
And then, change ‘build-phase’ to something like:
(let ((build-phase
(lambda (arch)
`(lambda _
(setenv "ARCH" ,(system->linux-architecture arch))
...))))
(arguments `(#:phase ... ,(build-phase (%current-system)) ...)))
Could you try that?
Thanks!
Ludo’.
- Re: Porting to mips64el, (continued)
- Re: Porting to mips64el, Ludovic Courtès, 2013/02/06
- Re: Porting to mips64el, Nikita Karetnikov, 2013/02/08
- Re: Porting to mips64el, Ludovic Courtès, 2013/02/08
- Re: Porting to mips64el, Ludovic Courtès, 2013/02/11
- Re: Porting to mips64el, Andreas Enge, 2013/02/11
- Re: Porting to mips64el, Ludovic Courtès, 2013/02/11
- Re: Porting to mips64el, Nikita Karetnikov, 2013/02/11
- Re: Porting to mips64el, Nikita Karetnikov, 2013/02/11
- Re: Porting to mips64el, Nikita Karetnikov, 2013/02/12
- Re: Porting to mips64el, Nikita Karetnikov, 2013/02/14
- Re: Porting to mips64el,
Ludovic Courtès <=
- Re: Porting to mips64el, Nikita Karetnikov, 2013/02/15
- Re: Porting to mips64el, Ludovic Courtès, 2013/02/16
- Re: Porting to mips64el, Nikita Karetnikov, 2013/02/19
- Re: Porting to mips64el, Ludovic Courtès, 2013/02/19
- Re: Porting to mips64el, Ludovic Courtès, 2013/02/12
- Re: Porting to mips64el, Nikita Karetnikov, 2013/02/13
- Re: Porting to mips64el, Ludovic Courtès, 2013/02/13
- Re: Porting to mips64el, Nikita Karetnikov, 2013/02/19
- Re: Porting to mips64el, Andreas Enge, 2013/02/19
- Re: Porting to mips64el, Ludovic Courtès, 2013/02/19