unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* mips64el: guild problem
@ 2013-02-18 18:32 Andreas Enge
  2013-02-18 22:28 ` Ludovic Courtès
  0 siblings, 1 reply; 5+ messages in thread
From: Andreas Enge @ 2013-02-18 18:32 UTC (permalink / raw)
  To: bug-guix

[-- Attachment #1: Type: text/plain, Size: 2449 bytes --]

On the fuloong mips machine, in the mips64el branch, "make" results in the 
following:

/bin/mkdir -p `dirname "guix/derivations.go"`
LC_ALL=C                                                        \
        ./pre-inst-env                                  \
        /usr/bin/guild compile -L "." -L "."    \
          -Wformat -Wunbound-variable -Warity-mismatch                  \
          --target="mips64el-unknown-linux-gnu"                                         
\
          -o "guix/derivations.go" "guix/derivations.scm"
Backtrace:
In ice-9/boot-9.scm:
2580: 19 [resolve-interface (guix store) #:select ...]
2505: 18 [#<procedure cd3850 at ice-9/boot-9.scm:2493:4 (name #:optional 
autoload version #:key ensure)> # ...]
2772: 17 [try-module-autoload (guix store) #f]
2111: 16 [save-module-excursion #<procedure 10990a8 at 
ice-9/boot-9.scm:2773:17 ()>]
2783: 15 [#<procedure 10990a8 at ice-9/boot-9.scm:2773:17 ()>]
In unknown file:
   ?: 14 [primitive-load-path "guix/store" #f]
In ice-9/eval.scm:
 480: 13 [#<procedure c7c6f0 at ice-9/eval.scm:474:4 (exp)> (define-module 
# # ...)]
In ice-9/psyntax.scm:
1101: 12 [expand-top-sequence ((define-module (guix store) #:use-module 
...)) () ...]
 986: 11 [scan ((define-module (guix store) #:use-module ...)) () ...]
 270: 10 [scan ((#(syntax-object let # ...) (#) (# #) ...)) () ...]
In ice-9/eval.scm:
 392: 9 [eval # ()]
In ice-9/boot-9.scm:
2667: 8 [define-module* (guix store) #:filename ...]
2642: 7 [resolve-imports (((guix utils)) ((guix config)) ((rnrs 
bytevectors)) ...)]
2580: 6 [resolve-interface (guix utils) #:select ...]
2505: 5 [#<procedure cd3850 at ice-9/boot-9.scm:2493:4 (name #:optional 
autoload version #:key ensure)> # ...]
2772: 4 [try-module-autoload (guix utils) #f]
2111: 3 [save-module-excursion #<procedure 10df060 at 
ice-9/boot-9.scm:2773:17 ()>]
2783: 2 [#<procedure 10df060 at ice-9/boot-9.scm:2773:17 ()>]
In unknown file:
   ?: 1 [primitive-load-path "guix/utils" #f]
In ice-9/boot-9.scm:
 106: 0 [#<procedure c86440 at ice-9/boot-9.scm:97:6 (thrown-k . args)> 
misc-error ...]

ice-9/boot-9.scm:106:20: In procedure #<procedure c86440 at 
ice-9/boot-9.scm:97:6 (thrown-k . args)>:
ice-9/boot-9.scm:106:20: In procedure make_objcode_from_file: bad header on 
object file: "GOOF----LE-8-2.0"
make[2]: *** [guix/derivations.go] Error 1
make[2]: Leaving directory `/home/enge/guix-src'

Which information would you need to understand the problem?

Andreas

[-- Attachment #2: Type: text/html, Size: 9758 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: mips64el: guild problem
  2013-02-18 18:32 mips64el: guild problem Andreas Enge
@ 2013-02-18 22:28 ` Ludovic Courtès
  2013-02-19 12:47   ` Andreas Enge
  0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2013-02-18 22:28 UTC (permalink / raw)
  To: Andreas Enge; +Cc: bug-guix

Andreas Enge <andreas@enge.fr> skribis:

> ice-9/boot-9.scm:106:20: In procedure make_objcode_from_file: bad header on 
> object file: "GOOF----LE-8-2.0"

This “GOOF” cookie indicates the Guile Object Object(!) Format.  Here,
it says little endian with 8-byte pointers.  That corresponds to this
GNU triplet:

--8<---------------cut here---------------start------------->8---
scheme@(system base target)> (with-target "mips64el-unknown-linux-gnu" (lambda () (list (target-endianness) (target-word-size))))
$2 = (little 8)
--8<---------------cut here---------------end--------------->8---

However, my guess is that Guile was compiled with the N32 ABI, so it
expects 4-byte words.  But Guile’s system/base/target.scm makes this
wrong assumption that “mips64” means 8-byte pointers:

--8<---------------cut here---------------start------------->8---
(define (cpu-word-size cpu)
  "Return the word size for CPU."
  (if (string=? cpu (triplet-cpu %host-type))
      %native-word-size
      (cond ((string-match "^i[0-9]86$" cpu) 4)
            ((string-match "64$" cpu) 8)
            ((string-match "64[lbe][lbe]$" cpu) 8)
            ((member cpu '("sparc" "powerpc" "mips" "mipsel")) 4)
            ((string-match "^arm.*" cpu) 4)
            (else (error "unknown CPU word size" cpu)))))
--8<---------------cut here---------------end--------------->8---

For now, you can work around it by removing the --target argument from
Makefile.am.

Can you confirm?

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: mips64el: guild problem
  2013-02-18 22:28 ` Ludovic Courtès
@ 2013-02-19 12:47   ` Andreas Enge
  2013-02-19 13:01     ` Nikita Karetnikov
  2013-02-19 13:35     ` Ludovic Courtès
  0 siblings, 2 replies; 5+ messages in thread
From: Andreas Enge @ 2013-02-19 12:47 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: bug-guix

[-- Attachment #1: Type: text/plain, Size: 1011 bytes --]

Am Montag, 18. Februar 2013 schrieb Ludovic Courtès:
> This “GOOF” cookie indicates the Guile Object Object(!) Format.  Here,
> it says little endian with 8-byte pointers.  That corresponds to this
> GNU triplet:
> However, my guess is that Guile was compiled with the N32 ABI, so it
> expects 4-byte words.  But Guile’s system/base/target.scm makes this
> wrong assumption that “mips64” means 8-byte pointers:

That sounds like the good diagnostic. Should guile not explicitly test the 
size of the types, using the C sizeof or equivalent? From the triplet, one 
cannot deduce the ABI.

> For now, you can work around it by removing the --target argument from
> Makefile.am.
> 
> Can you confirm?

Compiling worked so far. Now there is the hash mismatch in 
http://alpha.gnu.org/gnu/guix/bootstrap/mips64el-
linux/20130105/guile-2.0.7.tar.xz . Nikita, could you push your 
modification with the correct hash, or should I make the suitable 
modifications on my side?

Andreas

[-- Attachment #2: Type: text/html, Size: 4111 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: mips64el: guild problem
  2013-02-19 12:47   ` Andreas Enge
@ 2013-02-19 13:01     ` Nikita Karetnikov
  2013-02-19 13:35     ` Ludovic Courtès
  1 sibling, 0 replies; 5+ messages in thread
From: Nikita Karetnikov @ 2013-02-19 13:01 UTC (permalink / raw)
  To: Andreas Enge; +Cc: bug-guix

[-- Attachment #1: Type: text/plain, Size: 538 bytes --]

> Compiling worked so far. Now there is the hash mismatch in http://alpha.gnu.org
> /gnu/guix/bootstrap/mips64el-linux/20130105/guile-2.0.7.tar.xz . Nikita, could
> you push your modification with the correct hash, or should I make the suitable
> modifications on my side?

 You should adjust 'build-aux/download.scm' [1]:

(define %url-base
  ;; "http://alpha.gnu.org/gnu/guix/bootstrap"

  ;; Alternately:
  "http://www.fdn.fr/~lcourtes/software/guix/packages"
  )

[1] https://lists.gnu.org/archive/html/bug-guix/2013-02/msg00102.html

[-- Attachment #2: Type: application/pgp-signature, Size: 835 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: mips64el: guild problem
  2013-02-19 12:47   ` Andreas Enge
  2013-02-19 13:01     ` Nikita Karetnikov
@ 2013-02-19 13:35     ` Ludovic Courtès
  1 sibling, 0 replies; 5+ messages in thread
From: Ludovic Courtès @ 2013-02-19 13:35 UTC (permalink / raw)
  To: Andreas Enge; +Cc: bug-guix

Andreas Enge <andreas@enge.fr> skribis:

> Am Montag, 18. Februar 2013 schrieb Ludovic Courtès:
>> This “GOOF” cookie indicates the Guile Object Object(!) Format.  Here,
>> it says little endian with 8-byte pointers.  That corresponds to this
>> GNU triplet:
>> However, my guess is that Guile was compiled with the N32 ABI, so it
>> expects 4-byte words.  But Guile’s system/base/target.scm makes this
>> wrong assumption that “mips64” means 8-byte pointers:
>
> That sounds like the good diagnostic. Should guile not explicitly test the 
> size of the types, using the C sizeof or equivalent? From the triplet, one 
> cannot deduce the ABI.

Right, unless using triplet extensions as done on ARM and in Debian,
<http://wiki.debian.org/Multiarch/Tuples> (I think it’s the way to go.)

> Compiling worked so far. Now there is the hash mismatch in 
> http://alpha.gnu.org/gnu/guix/bootstrap/mips64el-
> linux/20130105/guile-2.0.7.tar.xz .

It’s just that build-aux/download.scm got a 404 while trying to download
it, because it’s not on gnu.org.

Until it’s on gnu.org, the fix is to manually download it from
<http://www.fdn.fr/~lcourtes/software/guix/packages/mips64el-linux/20130105/guile-2.0.7.tar.xz>.

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-02-19 13:36 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-18 18:32 mips64el: guild problem Andreas Enge
2013-02-18 22:28 ` Ludovic Courtès
2013-02-19 12:47   ` Andreas Enge
2013-02-19 13:01     ` Nikita Karetnikov
2013-02-19 13:35     ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).