GNU bug report logs - #21987
Version 0.9 Fails to Compile on Raspbian

Previous Next

Package: guix;

Reported by: Martin Vahi <martin.vahi <at> softf1.com>

Date: Sun, 22 Nov 2015 23:22:03 UTC

Severity: normal

Done: ludo <at> gnu.org (Ludovic Courtès)

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 21987 in the body.
You can then email your comments to 21987 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#21987; Package guix. (Sun, 22 Nov 2015 23:22:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Martin Vahi <martin.vahi <at> softf1.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Sun, 22 Nov 2015 23:22:04 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Martin Vahi <martin.vahi <at> softf1.com>
To: bug-Guix <at> gnu.org
Subject: Version 0.9 Fails to Compile on Raspbian
Date: Mon, 23 Nov 2015 00:41:24 +0200
[Message part 1 (text/plain, inline)]
An excerpt of the console output:


----citation--start-----
  CXX      nix/libstore/libstore_a-build.o
nix/libstore/build.cc: In member function 'void
nix::Worker::waitForInput()':
nix/libstore/build.cc:3332:74: warning: comparison between signed and
unsigned integer expressions [-Wsign-compare]
     if (!waitingForAWhile.empty() && lastWokenUp +
settings.pollInterval <= after) {
                                                                          ^
  CXX      nix/libstore/libstore_a-pathlocks.o
  CXX      nix/libstore/libstore_a-derivations.o
  AR       libstore.a
  CXX      nix/nix-daemon/guix_daemon-nix-daemon.o
  CXX      nix/nix-daemon/guix_daemon-guix-daemon.o
  CXXLD    guix-daemon
  CXX      nix/guix-register/guix_register-guix-register.o
  CXXLD    guix-register
  GUILEC guix/base32.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /usr/bin/guild
;;; compiled /home/pi/.cache/guile/ccache/2.0-LE-4-2.0/usr/bin/guild.go
wrote `guix/base32.go'
  GUILEC guix/base64.go
wrote `guix/base64.go'
  GUILEC guix/cpio.go
wrote `guix/cpio.go'
  GUILEC guix/records.go
wrote `guix/records.go'
  GUILEC guix/gcrypt.go
wrote `guix/gcrypt.go'
  GUILEC guix/hash.go
wrote `guix/hash.go'
  GUILEC guix/pk-crypto.go
Backtrace:
In ice-9/boot-9.scm:
2401: 19 [save-module-excursion #<procedure 14675b8 at
ice-9/boot-9.scm:3066:17 ()>]
3085: 18 [#<procedure 14675b8 at ice-9/boot-9.scm:3066:17 ()>]
In unknown file:
   ?: 17 [primitive-load-path "guix/utils" ...]
In ice-9/eval.scm:
 505: 16 [#<procedure 1174400 at ice-9/eval.scm:499:4 (exp)>
(define-module # # ...)]
In ice-9/psyntax.scm:
1106: 15 [expand-top-sequence ((define-module (guix utils) #:use-module
...)) () ...]
 989: 14 [scan ((define-module (guix utils) #:use-module ...)) () ...]
 279: 13 [scan ((#(syntax-object let # ...) (#) (# #) ...)) () ...]
In ice-9/eval.scm:
 411: 12 [eval # ()]
In ice-9/boot-9.scm:
2951: 11 [define-module* (guix utils) #:filename ...]
2926: 10 [resolve-imports (((guix config)) ((srfi srfi-1)) ((srfi
srfi-9)) ...)]
2864: 9 [resolve-interface (guix build syscalls) #:select ...]
2789: 8 [#<procedure 11c92b0 at ice-9/boot-9.scm:2777:4 (name #:optional
autoload version #:key ensure)> # ...]
3065: 7 [try-module-autoload (guix build syscalls) #f]
2401: 6 [save-module-excursion #<procedure 188e798 at
ice-9/boot-9.scm:3066:17 ()>]
3085: 5 [#<procedure 188e798 at ice-9/boot-9.scm:3066:17 ()>]
In unknown file:
   ?: 4 [primitive-load-path "guix/build/syscalls" ...]
In ice-9/eval.scm:
 453: 3 [eval # ()]
 411: 2 [eval # #]
 386: 1 [eval # #]
In ice-9/boot-9.scm:
 106: 0 [#<procedure 13164c0 at ice-9/boot-9.scm:97:6 (thrown-k . args)>
match-error ...]

ice-9/boot-9.scm:106:20: In procedure #<procedure 13164c0 at
ice-9/boot-9.scm:97:6 (thrown-k . args)>:
ice-9/boot-9.scm:106:20: Throw to key `match-error' with args `("match"
"no matching pattern" "armv6l")'.
Makefile:4526: recipe for target 'guix/pk-crypto.go' failed
make[2]: *** [guix/pk-crypto.go] Error 1
make[2]: Leaving directory '/nix/mmmv_jama/GNU_Guix/guix-0.9.0'
Makefile:3688: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/nix/mmmv_jama/GNU_Guix/guix-0.9.0'
Makefile:2302: recipe for target 'all' failed
make: *** [all] Error 2
pi <at> raspberrypi /nix/mmmv_jama/GNU_Guix/guix-0.9.0 $ uname -a
Linux raspberrypi 4.1.7+ #817 PREEMPT Sat Sep 19 15:25:36 BST 2015
armv6l GNU/Linux
pi <at> raspberrypi /nix/mmmv_jama/GNU_Guix/guix-0.9.0 $ date
Sun Nov 22 15:03:12 UTC 2015
pi <at> raspberrypi /nix/mmmv_jama/GNU_Guix/guix-0.9.0 $ echo $CFLAGS
-mtune=native -ftree-vectorize
pi <at> raspberrypi /nix/mmmv_jama/GNU_Guix/guix-0.9.0 $ echo $CXXFLAGS
-mtune=native -ftree-vectorize
pi <at> raspberrypi /nix/mmmv_jama/GNU_Guix/guix-0.9.0 $
----citation--end-----


[signature.asc (application/pgp-signature, attachment)]

Information forwarded to bug-guix <at> gnu.org:
bug#21987; Package guix. (Mon, 23 Nov 2015 00:35:04 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: "Thompson, David" <dthompson2 <at> worcester.edu>
To: Martin Vahi <martin.vahi <at> softf1.com>
Cc: bug-Guix <at> gnu.org
Subject: Re: bug#21987: Version 0.9 Fails to Compile on Raspbian
Date: Sun, 22 Nov 2015 19:34:05 -0500
On Sun, Nov 22, 2015 at 5:41 PM, Martin Vahi <martin.vahi <at> softf1.com> wrote:
>
[snip]
> ice-9/boot-9.scm:106:20: In procedure #<procedure 13164c0 at
> ice-9/boot-9.scm:97:6 (thrown-k . args)>:
> ice-9/boot-9.scm:106:20: Throw to key `match-error' with args `("match"
> "no matching pattern" "armv6l")'.

The Raspberry Pi's processor uses an ARMv6 processor, but Guix only
supports ARMv7.  Sorry!

- Dave




Information forwarded to bug-guix <at> gnu.org:
bug#21987; Package guix. (Mon, 23 Nov 2015 14:43:02 GMT) Full text and rfc822 format available.

Message #11 received at 21987 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Martin Vahi <martin.vahi <at> softf1.com>
Cc: 21987 <at> debbugs.gnu.org
Subject: Re: bug#21987: Version 0.9 Fails to Compile on Raspbian
Date: Mon, 23 Nov 2015 15:41:53 +0100
Hello!

As David wrote, ARMv6 is not supported.  However, ./configure should
detect that early.

Could you send us the output of:

  grep host= config.log

?

Thanks for your report!

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#21987; Package guix. (Tue, 24 Nov 2015 09:05:02 GMT) Full text and rfc822 format available.

Message #14 received at 21987 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Martin Vahi <martin.vahi <at> softf1.com>
Cc: Mark H Weaver <mhw <at> netris.org>, 21987 <at> debbugs.gnu.org
Subject: Re: bug#21987: Version 0.9 Fails to Compile on Raspbian
Date: Tue, 24 Nov 2015 10:03:21 +0100
[Message part 1 (text/plain, inline)]
(Please keep 21987 <at> debbugs.gnu.org Cc’d.)

Martin Vahi <martin.vahi <at> softf1.com> skribis:

> checking build system type... armv6l-unknown-linux-gnueabihf
> checking host system type... armv6l-unknown-linux-gnueabihf

[...]

> checking for the Guix system type... armhf-linux

This is the problem: ‘configure’ should bail out when it encounters
“armv6l”.  I believe the patch below solves that.

The triplet we pass to ‘./configure --build’ starts with “arm-”
(computed from ‘nix-system->gnu-triplet’.)  However, when running
config.guess outside of the Guix environment on hydra-slave1, I get
“armv7l”.  So I think we have to allow both.

Mark?

Thanks,
Ludo’.

[Message part 2 (text/x-patch, inline)]
diff --git a/m4/guix.m4 b/m4/guix.m4
index 842249a..4f586b6 100644
--- a/m4/guix.m4
+++ b/m4/guix.m4
@@ -51,7 +51,12 @@ AC_DEFUN([GUIX_SYSTEM_TYPE], [
           machine_name="i686";;
        amd64)
           machine_name="x86_64";;
-       arm*)
+       arm|armv7*)
+          # Here we want to exclude CPUs such as "armv6l".  On ARMv7
+          # machines, we normally get "armv7l".  However, in Guix, we
+          # configure with --build=arm-unknown-linux-gnueabihf, leading
+          # to just "arm", so we also have to allow it.
+          #
           # TODO: If not cross-compiling, add a sanity check to make
           #       sure this build machine has the needed features to
           #       support executables compiled using our armhf gcc,

Information forwarded to bug-guix <at> gnu.org:
bug#21987; Package guix. (Wed, 25 Nov 2015 02:50:02 GMT) Full text and rfc822 format available.

Message #17 received at 21987 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: Martin Vahi <martin.vahi <at> softf1.com>, 21987 <at> debbugs.gnu.org
Subject: Re: bug#21987: Version 0.9 Fails to Compile on Raspbian
Date: Tue, 24 Nov 2015 21:49:04 -0500
ludo <at> gnu.org (Ludovic Courtès) writes:

> (Please keep 21987 <at> debbugs.gnu.org Cc’d.)
>
> Martin Vahi <martin.vahi <at> softf1.com> skribis:
>
>> checking build system type... armv6l-unknown-linux-gnueabihf
>> checking host system type... armv6l-unknown-linux-gnueabihf
>
> [...]
>
>> checking for the Guix system type... armhf-linux
>
> This is the problem: ‘configure’ should bail out when it encounters
> “armv6l”.  I believe the patch below solves that.
>
> The triplet we pass to ‘./configure --build’ starts with “arm-”
> (computed from ‘nix-system->gnu-triplet’.)  However, when running
> config.guess outside of the Guix environment on hydra-slave1, I get
> “armv7l”.  So I think we have to allow both.
>
> Mark?

We should allow arm8* as well, no?  Actually armN* for N >= 7.  Ideally,
we would test for the processor features we actually need.

      Mark
      

> diff --git a/m4/guix.m4 b/m4/guix.m4
> index 842249a..4f586b6 100644
> --- a/m4/guix.m4
> +++ b/m4/guix.m4
> @@ -51,7 +51,12 @@ AC_DEFUN([GUIX_SYSTEM_TYPE], [
>            machine_name="i686";;
>         amd64)
>            machine_name="x86_64";;
> -       arm*)
> +       arm|armv7*)
> +          # Here we want to exclude CPUs such as "armv6l".  On ARMv7
> +          # machines, we normally get "armv7l".  However, in Guix, we
> +          # configure with --build=arm-unknown-linux-gnueabihf, leading
> +          # to just "arm", so we also have to allow it.
> +          #
>            # TODO: If not cross-compiling, add a sanity check to make
>            #       sure this build machine has the needed features to
>            #       support executables compiled using our armhf gcc,




Reply sent to ludo <at> gnu.org (Ludovic Courtès):
You have taken responsibility. (Wed, 25 Nov 2015 16:04:02 GMT) Full text and rfc822 format available.

Notification sent to Martin Vahi <martin.vahi <at> softf1.com>:
bug acknowledged by developer. (Wed, 25 Nov 2015 16:04:03 GMT) Full text and rfc822 format available.

Message #22 received at 21987-done <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Mark H Weaver <mhw <at> netris.org>
Cc: Martin Vahi <martin.vahi <at> softf1.com>, 21987-done <at> debbugs.gnu.org
Subject: Re: bug#21987: Version 0.9 Fails to Compile on Raspbian
Date: Wed, 25 Nov 2015 17:02:46 +0100
Mark H Weaver <mhw <at> netris.org> skribis:

> We should allow arm8* as well, no?  Actually armN* for N >= 7.

Right.  I did that in 968ae90.  We’ll revisit it when ARMv10 is out.
;-)

> Ideally, we would test for the processor features we actually need.

Yes.  I’m not sure how to test each of them.  Maybe GMP has something in
that vein?

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#21987; Package guix. (Thu, 26 Nov 2015 20:55:01 GMT) Full text and rfc822 format available.

Message #25 received at 21987-done <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: Mark H Weaver <mhw <at> netris.org>, 21987-done <at> debbugs.gnu.org
Subject: Re: bug#21987: Version 0.9 Fails to Compile on Raspbian
Date: Thu, 26 Nov 2015 22:54:33 +0200
[Message part 1 (text/plain, inline)]
On Wed, 25 Nov 2015 17:02:46 +0100
ludo <at> gnu.org (Ludovic Courtès) wrote:

> Mark H Weaver <mhw <at> netris.org> skribis:
> 
> > We should allow arm8* as well, no?  Actually armN* for N >= 7.  
> 
> Right.  I did that in 968ae90.  We’ll revisit it when ARMv10 is out.
> ;-)
> 
> > Ideally, we would test for the processor features we actually need.  
> 
> Yes.  I’m not sure how to test each of them.  Maybe GMP has something in
> that vein?
> 
> Ludo’.

What processor flags specifically are we looking for?

From my Raspberry Pi 1:
ssh mypi cat /proc/cpuinfo | grep -m1 Features
Features	: half thumb fastmult vfp edsp java tls

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#21987; Package guix. (Fri, 27 Nov 2015 09:28:02 GMT) Full text and rfc822 format available.

Message #28 received at 21987-done <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Efraim Flashner <efraim <at> flashner.co.il>
Cc: Mark H Weaver <mhw <at> netris.org>, 21987-done <at> debbugs.gnu.org
Subject: Re: bug#21987: Version 0.9 Fails to Compile on Raspbian
Date: Fri, 27 Nov 2015 10:27:19 +0100
Efraim Flashner <efraim <at> flashner.co.il> skribis:

> What processor flags specifically are we looking for?

The details are given in guix.m4:

   # TODO: If not cross-compiling, add a sanity check to make
   #       sure this build machine has the needed features to
   #       support executables compiled using our armhf gcc,
   #       configured with:
   #         --with-arch=armv7-a
   #         --with-float=hard
   #         --with-mode=thumb
   #         --with-fpu=vfpv3-d16

> From my Raspberry Pi 1:
> ssh mypi cat /proc/cpuinfo | grep -m1 Features
> Features	: half thumb fastmult vfp edsp java tls

Sounds like this could work, though we need to check the exact flag
names for the features mentioned above.

On the Novena, we have:

  model name      : ARMv7 Processor rev 10 (v7l)
  BogoMIPS        : 166.00
  Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpd32 

Looks like checking for thumb, vfpv3, and (vpfd32|vfpd16) would do?

There doesn’t seem to be a more streamlined /sys interface to get these
flags, which is unfortunate.

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#21987; Package guix. (Mon, 30 Nov 2015 16:25:03 GMT) Full text and rfc822 format available.

Message #31 received at 21987 <at> debbugs.gnu.org (full text, mbox):

From: Andreas Enge <andreas <at> enge.fr>
To: 21987 <at> debbugs.gnu.org, ludo <at> gnu.org, martin.vahi <at> softf1.com
Subject: Re: bug#21987: Version 0.9 Fails to Compile on Raspbian
Date: Mon, 30 Nov 2015 17:24:24 +0100
On Wed, Nov 25, 2015 at 05:02:46PM +0100, Ludovic Courtès wrote:
> Mark H Weaver <mhw <at> netris.org> skribis:
> > We should allow arm8* as well, no?  Actually armN* for N >= 7.
> Right.  I did that in 968ae90.  We’ll revisit it when ARMv10 is out.

Currently (commit 36f26211bbb2c4dffe33427d4e65d5225a586a5b), configure fails
on my novena with the following message:
checking for the Guix system type... armv7l-linux
configure: error: `armv7l-linux' is not a supported platform.
See "GNU Distribution" in the manual, or try `--with-courage'.

I suppose this is due to the commit above.

Andreas





Information forwarded to bug-guix <at> gnu.org:
bug#21987; Package guix. (Mon, 30 Nov 2015 17:45:01 GMT) Full text and rfc822 format available.

Message #34 received at 21987 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Andreas Enge <andreas <at> enge.fr>
Cc: martin.vahi <at> softf1.com, 21987 <at> debbugs.gnu.org
Subject: Re: bug#21987: Version 0.9 Fails to Compile on Raspbian
Date: Mon, 30 Nov 2015 18:43:37 +0100
Andreas Enge <andreas <at> enge.fr> skribis:

> On Wed, Nov 25, 2015 at 05:02:46PM +0100, Ludovic Courtès wrote:
>> Mark H Weaver <mhw <at> netris.org> skribis:
>> > We should allow arm8* as well, no?  Actually armN* for N >= 7.
>> Right.  I did that in 968ae90.  We’ll revisit it when ARMv10 is out.
>
> Currently (commit 36f26211bbb2c4dffe33427d4e65d5225a586a5b), configure fails
> on my novena with the following message:
> checking for the Guix system type... armv7l-linux
> configure: error: `armv7l-linux' is not a supported platform.

Could you check the value of ‘host_cpu’ in config.log?  The pattern use
in guix.m4 is supposed to allow ‘armv7l’.

TIA,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#21987; Package guix. (Mon, 30 Nov 2015 18:02:02 GMT) Full text and rfc822 format available.

Message #37 received at 21987 <at> debbugs.gnu.org (full text, mbox):

From: Andreas Enge <andreas <at> enge.fr>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: martin.vahi <at> softf1.com, 21987 <at> debbugs.gnu.org
Subject: Re: bug#21987: Version 0.9 Fails to Compile on Raspbian
Date: Mon, 30 Nov 2015 19:01:43 +0100
On Mon, Nov 30, 2015 at 06:43:37PM +0100, Ludovic Courtès wrote:
> Could you check the value of ‘host_cpu’ in config.log?  The pattern use
> in guix.m4 is supposed to allow ‘armv7l’.

Yes, that is what surprises me also. An excerpt of config.log:

guix_system='armv7l-linux'
host='armv7l-unknown-linux-gnueabihf'
host_alias=''
host_cpu='armv7l'
host_os='linux-gnueabihf'
host_vendor='unknown'

Andreas





Information forwarded to bug-guix <at> gnu.org:
bug#21987; Package guix. (Tue, 01 Dec 2015 21:45:02 GMT) Full text and rfc822 format available.

Message #40 received at 21987 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Andreas Enge <andreas <at> enge.fr>
Cc: martin.vahi <at> softf1.com, 21987 <at> debbugs.gnu.org
Subject: Re: bug#21987: Version 0.9 Fails to Compile on Raspbian
Date: Tue, 01 Dec 2015 22:44:10 +0100
Andreas Enge <andreas <at> enge.fr> skribis:

> On Mon, Nov 30, 2015 at 06:43:37PM +0100, Ludovic Courtès wrote:
>> Could you check the value of ‘host_cpu’ in config.log?  The pattern use
>> in guix.m4 is supposed to allow ‘armv7l’.
>
> Yes, that is what surprises me also. An excerpt of config.log:
>
> guix_system='armv7l-linux'
> host='armv7l-unknown-linux-gnueabihf'
> host_alias=''
> host_cpu='armv7l'

Fixed in dfdb15d (an M4 quotation issue…)

Thanks,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#21987; Package guix. (Wed, 02 Dec 2015 09:20:03 GMT) Full text and rfc822 format available.

Message #43 received at 21987 <at> debbugs.gnu.org (full text, mbox):

From: Andreas Enge <andreas <at> enge.fr>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: martin.vahi <at> softf1.com, 21987 <at> debbugs.gnu.org
Subject: Re: bug#21987: Version 0.9 Fails to Compile on Raspbian
Date: Wed, 2 Dec 2015 10:19:16 +0100
On Tue, Dec 01, 2015 at 10:44:10PM +0100, Ludovic Courtès wrote:
> Fixed in dfdb15d (an M4 quotation issue…)

Subtle, thanks for fixing it! It seems to work now.

Andreas





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 30 Dec 2015 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 8 years and 91 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.