unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* Cross bootstrap!
@ 2013-06-26 15:33 Ludovic Courtès
  2013-06-26 21:13 ` Ludovic Courtès
  0 siblings, 1 reply; 17+ messages in thread
From: Ludovic Courtès @ 2013-06-26 15:33 UTC (permalink / raw)
  To: bug-guix

Hello!

As of commit 5708485, I have successfully cross-built the 5 tarballs of
bootstrap binaries (Coreutils & co., GCC, libc, Binutils, and Guile) for
mips64el-linux-gnu (N32).

That means that we can cross-build them for any GNU/Linux architecture
supported by the tool chain.  This will make porting the distro to new
architectures much easier.

The mips64el-linux-gnu binaries (shortly available from
<http://hydra.gnu.org/jobset/gnu/core-updates>) appear to work, except
perhaps for Guile, which aborts at startup.  However, I haven’t been
able to debug it, because strace there displays the syscall names, but
not their arguments.

Anyway, our first target will be mips64el-linux-gnu/N64 so that’s what
we should focus on now.  Perhaps armel will come next?  :-)

Ludo’.

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

* Re: Cross bootstrap!
  2013-06-26 15:33 Cross bootstrap! Ludovic Courtès
@ 2013-06-26 21:13 ` Ludovic Courtès
  2013-06-28  9:08   ` Nikita Karetnikov
  2013-07-03 12:41   ` Ludovic Courtès
  0 siblings, 2 replies; 17+ messages in thread
From: Ludovic Courtès @ 2013-06-26 21:13 UTC (permalink / raw)
  To: bug-guix

ludo@gnu.org (Ludovic Courtès) skribis:

> Anyway, our first target will be mips64el-linux-gnu/N64 so that’s what
> we should focus on now.

Well, building on what Nikita and Andreas had tried [0], that turned out
to be disappointingly easy.  :-)

So commit beda99e adds the N64 cross tool chain.  I was able to build
the static binaries tarball (Coreutils, gawk, etc.), and it seems to
work as expected (tested on gcc49 of the GCC Compile Farm):

--8<---------------cut here---------------start------------->8---
ludo@gcc49:~/t2/bin$ ./uname -a
Linux gcc49 2.6.36.3+ #1 SMP PREEMPT Mon Dec 19 19:38:39 CET 2011 mips64 GNU/Linux
ludo@gcc49:~/t2/bin$ file uname
uname: ELF 64-bit LSB executable, MIPS, MIPS-III version 1 (SYSV), statically linked, for GNU/Linux 2.6.30, with unknown capability 0x756e670000000f41 = 0x104000000070100, stripped
--8<---------------cut here---------------end--------------->8---

Hydra is now building it, so you MIPS people ;-) can (within a few
hours) go ahead and run the following from an x86_64-linux machine:

  guix build bootstrap-tarballs

If everything goes well, that will download (using the substituter) the
5 tarballs, you can then be copied to a MIPS machine, unpacked, and run
(or debugged).

Then it’s just a matter of adding them in the right place in
bootstrap.scm, as Nikita did in the mips64el branch, and voilà!

Ludo’.

[0] https://lists.gnu.org/archive/html/bug-guix/2013-03/msg00010.html

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

* Re: Cross bootstrap!
  2013-06-26 21:13 ` Ludovic Courtès
@ 2013-06-28  9:08   ` Nikita Karetnikov
  2013-06-28 12:30     ` Ludovic Courtès
  2013-06-30 22:45     ` Ludovic Courtès
  2013-07-03 12:41   ` Ludovic Courtès
  1 sibling, 2 replies; 17+ messages in thread
From: Nikita Karetnikov @ 2013-06-28  9:08 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: bug-guix

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

> So commit beda99e adds the N64 cross tool chain.

That's great, thanks!

I guess I've already asked this, but will it be necessary to adjust the
packages somehow?

> Hydra is now building it, so you MIPS people ;-) can (within a few
> hours) go ahead and run the following from an x86_64-linux machine:

>   guix build bootstrap-tarballs

> If everything goes well, that will download (using the substituter) the
> 5 tarballs, you can then be copied to a MIPS machine, unpacked, and run
> (or debugged).

I've created a clean environment for that purpose (no everything-as-root
craziness anymore), and I can't do anything because "the server is
unresponsive":

$ ./pre-inst-env guix build --no-substitutes -K --target=mips64el-linux-gnuabi64 bootstrap-tarballs 

[...]

@ substituter-started /nix/store/mmv5q5wfgs2kc5cm74ygb9zhsz2hzinh-perl-5.16.1.tar.gz /home/tester/guix-savannah/nix/scripts/substitute-binary
@ substituter-started /nix/store/cblwzpj3ygh1sw5dqp20883ixs5j6hrq-m4-1.4.16.tar.bz2 /home/tester/guix-savannah/nix/scripts/substitute-binary
@ substituter-started /nix/store/zl07prik694izsscpcw2wib18rhsqi1b-tar-1.26.tar.bz2 /home/tester/guix-savannah/nix/scripts/substitute-binary
@ substituter-started /nix/store/wc3171lyvk5hlppg4ph5i07w0mswsan0-xz-5.0.4.tar.gz /home/tester/guix-savannah/nix/scripts/substitute-binary
substitute-binary: guix substitute-binary: warning: while fetching http://hydra.gnu.org/z9fndy09rcmcnzzaminnvbczl63yv4m9.narinfo: server is unresponsive
substitute-binary: guix substitute-binary: warning: try `--no-substitutes' if the problem persists

[...]

AFAICT, it just hangs after that.  How can I check?  And why is it
trying to download binaries?  I'm on i686, and '--no-substitutes' was
used.

'make check' returns 'FAIL: tests/store.scm'.  'tests/store.log':

[...]

@ build-started /home/tester/guix-savannah/test-tmp/store/bs8dbvh4ykgyscigm0s2mkkczivcxfdq-the-thing.drv - i686-linux /home/tester/guix-savannah/test-tmp/var/log/nix/drvs/bs//8dbvh4ykgyscigm0s2mkkczivcxfdq-the-thing.drv.bz2
@ build-succeeded /home/tester/guix-savannah/test-tmp/store/bs8dbvh4ykgyscigm0s2mkkczivcxfdq-the-thing.drv -
@ substituter-started /home/tester/guix-savannah/test-tmp/store/58qraad0gdsn9c9flxiiz56xph531nd6-substitute-me /home/tester/guix-savannah/nix/scripts/substitute-binary
downloading `/home/tester/guix-savannah/test-tmp/store/58qraad0gdsn9c9flxiiz56xph531nd6-substitute-me' from `file:/home/tester/guix-savannah/test-tmp/var/7794/substituter-data/example.nar'...
Backtrace:
In ice-9/boot-9.scm:
 157: 11 [catch #t #<catch-closure 882def0> ...]
In unknown file:
   ?: 10 [apply-smob/1 #<catch-closure 882def0>]
In ice-9/boot-9.scm:
  63: 9 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
 432: 8 [eval # #]
In ice-9/boot-9.scm:
2320: 7 [save-module-excursion #<procedure 8758e80 at ice-9/boot-9.scm:3961:3 ()>]
3966: 6 [#<procedure 8758e80 at ice-9/boot-9.scm:3961:3 ()>]
In unknown file:
   ?: 5 [load-compiled/vm "/home/tester/guix-savannah/test-tmp/var/7794/cache-7794/guile/ccache/2.0-LE-4-2.0/home/tester/guix-savannah/scripts/guix.go"]
In guix/ui.scm:
 462: 4 [run-guix-command substitute-binary "--substitute" ...]
In ice-9/boot-9.scm:
 157: 3 [catch getaddrinfo-error ...]
In guix/scripts/substitute-binary.scm:
 524: 2 [#<procedure 8bce040 at guix/scripts/substitute-binary.scm:457:2 ()>]
In guix/build/download.scm:
  68: 1 [uri-abbreviation # 42]
In unknown file:
   ?: 0 [string-append "file" "://" #f "/.../example.nar"]

ERROR: In procedure string-append:
ERROR: In procedure string-append: Wrong type (expecting string): #f
@ substituter-failed /home/tester/guix-savannah/test-tmp/store/58qraad0gdsn9c9flxiiz56xph531nd6-substitute-me 256 fetching path `/home/tester/guix-savannah/test-tmp/store/58qraad0gdsn9c9flxiiz56xph531nd6-substitute-me' failed with exit code 1
In ice-9/boot-9.scm:
 157: 16 [catch #t #<catch-closure 94bacb0> ...]
In unknown file:
   ?: 15 [apply-smob/1 #<catch-closure 94bacb0>]
In ice-9/boot-9.scm:
  63: 14 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
 432: 13 [eval # #]
In ice-9/boot-9.scm:
2320: 12 [save-module-excursion #<procedure 942dde0 at ice-9/boot-9.scm:3961:3 ()>]
3968: 11 [#<procedure 942dde0 at ice-9/boot-9.scm:3961:3 ()>]
1645: 10 [%start-stack load-stack ...]
1650: 9 [#<procedure 94bb810 ()>]
In unknown file:
   ?: 8 [primitive-load "/home/tester/guix-savannah/./tests/store.scm"]
In ice-9/eval.scm:
 432: 7 [eval # #]
 411: 6 [eval # #]
In ice-9/boot-9.scm:
 157: 5 [catch #t #<procedure 9c49870 at ice-9/eval.scm:416:20 ()> ...]
In ice-9/eval.scm:
 399: 4 [eval # #]
In guix/store.scm:
 476: 3 [build-derivations # #]
In ice-9/boot-9.scm:
 102: 2 [#<procedure 9c45900 at ice-9/boot-9.scm:97:6 (thrown-k . args)> srfi-34 #]
In ice-9/eval.scm:
 387: 1 [eval # #]
In unknown file:
   ?: 0 [make-stack #t]
@ substituter-started /home/tester/guix-savannah/test-tmp/store/997lk0rf58hzplx72dxva9jqcandxv5n-substitute-me-not /home/tester/guix-savannah/nix/scripts/substitute-binary
downloading `/home/tester/guix-savannah/test-tmp/store/997lk0rf58hzplx72dxva9jqcandxv5n-substitute-me-not' from `file:/home/tester/guix-savannah/test-tmp/var/7794/substituter-data/does-not-exist.nar'...
Backtrace:
In ice-9/boot-9.scm:
 157: 11 [catch #t #<catch-closure 8d59180> ...]
In unknown file:
   ?: %%%% Starting test store  (Writing full log to "store.log")

;;; (spi (#<<substitutable> path: "/home/tester/guix-savannah/test-tmp/store/dahirq82zh6342mw1ji2w464fmx6rws5-guile-bootstrap-2.0" deriver: "/home/tester/guix-savannah/test-tmp/store/hx48lw3rlqbgidw67w53w0app72mj3d5-guile-bootstrap-2.0.drv" refs: () dl-size: 0 nar-size: 1234>))
FAIL substitute
# of expected passes      10
# of unexpected failures  1
10 [apply-smob/1 #<catch-closure 8d59180>]
In ice-9/boot-9.scm:
  63: 9 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
 432: 8 [eval # #]
In ice-9/boot-9.scm:
2320: 7 [save-module-excursion #<procedure 8c85e80 at ice-9/boot-9.scm:3961:3 ()>]
3966: 6 [#<procedure 8c85e80 at ice-9/boot-9.scm:3961:3 ()>]
In unknown file:
   ?: 5 [load-compiled/vm "/home/tester/guix-savannah/test-tmp/var/7794/cache-7794/guile/ccache/2.0-LE-4-2.0/home/tester/guix-savannah/scripts/guix.go"]
In guix/ui.scm:
 462: 4 [run-guix-command substitute-binary "--substitute" ...]
In ice-9/boot-9.scm:
 157: 3 [catch getaddrinfo-error ...]
In guix/scripts/substitute-binary.scm:
 518: 2 [#<procedure 90f8440 at guix/scripts/substitute-binary.scm:457:2 ()>]
 159: 1 [fetch # # #f ...]
In unknown file:
   ?: 0 [open-file "/home/tester/guix-savannah/test-tmp/var/7794/substituter-data/does-not-exist.nar" ...]

ERROR: In procedure open-file:
ERROR: In procedure open-file: No such file or directory: "/home/tester/guix-savannah/test-tmp/var/7794/substituter-data/does-not-exist.nar"
@ substituter-failed /home/tester/guix-savannah/test-tmp/store/997lk0rf58hzplx72dxva9jqcandxv5n-substitute-me-not 256 fetching path `/home/tester/guix-savannah/test-tmp/store/997lk0rf58hzplx72dxva9jqcandxv5n-substitute-me-not' failed with exit code 1
@ substituter-started /home/tester/guix-savannah/test-tmp/store/997lk0rf58hzplx72dxva9jqcandxv5n-substitute-me-not /home/tester/guix-savannah/nix/scripts/substitute-binary
downloading `/home/tester/guix-savannah/test-tmp/store/997lk0rf58hzplx72dxva9jqcandxv5n-substitute-me-not' from `file:/home/tester/guix-savannah/test-tmp/var/7794/substituter-data/does-not-exist.nar'...
Backtrace:
In ice-9/boot-9.scm:
 157: 11 [catch #t #<catch-closure 9be0cb0> ...]
In unknown file:
   ?: 10 [apply-smob/1 #<catch-closure 9be0cb0>]
In ice-9/boot-9.scm:
  63: 9 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
 432: 8 [eval # #]
In ice-9/boot-9.scm:
2320: 7 [save-module-excursion #<procedure 9b09e80 at ice-9/boot-9.scm:3961:3 ()>]
3966: 6 [#<procedure 9b09e80 at ice-9/boot-9.scm:3961:3 ()>]
In unknown file:
   ?: 5 [load-compiled/vm "/home/tester/guix-savannah/test-tmp/var/7794/cache-7794/guile/ccache/2.0-LE-4-2.0/home/tester/guix-savannah/scripts/guix.go"]
In guix/ui.scm:
 462: 4 [run-guix-command substitute-binary "--substitute" ...]
In ice-9/boot-9.scm:
 157: 3 [catch getaddrinfo-error ...]
In guix/scripts/substitute-binary.scm:
 518: 2 [#<procedure 9f7e5d0 at guix/scripts/substitute-binary.scm:457:2 ()>]
 159: 1 [fetch # # #f ...]
In unknown file:
   ?: 0 [open-file "/home/tester/guix-savannah/test-tmp/var/7794/substituter-data/does-not-exist.nar" ...]

ERROR: In procedure open-file:
ERROR: In procedure open-file: No such file or directory: "/home/tester/guix-savannah/test-tmp/var/7794/substituter-data/does-not-exist.nar"
@ substituter-failed /home/tester/guix-savannah/test-tmp/store/997lk0rf58hzplx72dxva9jqcandxv5n-substitute-me-not 256 fetching path `/home/tester/guix-savannah/test-tmp/store/997lk0rf58hzplx72dxva9jqcandxv5n-substitute-me-not' failed with exit code 1
@ build-started /home/tester/guix-savannah/test-tmp/store/da3dm8bv3hn1apbc61p93zd1765il1vw-substitute-me-not.drv - i686-linux /home/tester/guix-savannah/test-tmp/var/log/nix/drvs/da//3dm8bv3hn1apbc61p93zd1765il1vw-substitute-me-not.drv.bz2
@ build-succeeded /home/tester/guix-savannah/test-tmp/store/da3dm8bv3hn1apbc61p93zd1765il1vw-substitute-me-not.drv -

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

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

* Re: Cross bootstrap!
  2013-06-28  9:08   ` Nikita Karetnikov
@ 2013-06-28 12:30     ` Ludovic Courtès
  2013-06-30 22:45     ` Ludovic Courtès
  1 sibling, 0 replies; 17+ messages in thread
From: Ludovic Courtès @ 2013-06-28 12:30 UTC (permalink / raw)
  To: Nikita Karetnikov; +Cc: bug-guix

Nikita Karetnikov <nikita@karetnikov.org> skribis:

>> So commit beda99e adds the N64 cross tool chain.
>
> That's great, thanks!
>
> I guess I've already asked this, but will it be necessary to adjust the
> packages somehow?

To adjust for cross compilation you mean, or for native compilation on
MIPS?

In any case, there’s normally no adjustment to be made, except for
working around build system defects and such.  These are more frequent
when cross-compiling.  Likewise, bugs are more likely on less popular
platforms such as MIPS.

>> Hydra is now building it, so you MIPS people ;-) can (within a few
>> hours) go ahead and run the following from an x86_64-linux machine:
>
>>   guix build bootstrap-tarballs
>
>> If everything goes well, that will download (using the substituter) the
>> 5 tarballs, you can then be copied to a MIPS machine, unpacked, and run
>> (or debugged).
>
> I've created a clean environment for that purpose (no everything-as-root
> craziness anymore), and I can't do anything because "the server is
> unresponsive":

Yeah, unfortunately, the ‘hydra-server’ process (Perl) sometimes enters
a busy loop trying to send data to a client that has disconnected.  I
suspect this is a Perl or Catalyst bug, especially since we use old
versions thereof on hydra.gnu.org, but I can’t tell.  This has become
more frequent since I added the unresponsiveness detection thing in the
client.

I’d welcome help with that, either by researching for known bugs in Perl
5.10 in that area to confirm the hypothesis, or by trying to upgrade
everything on hydra.gnu.org.

> $ ./pre-inst-env guix build --no-substitutes -K --target=mips64el-linux-gnuabi64 bootstrap-tarballs 

Anyway, perhaps you can retry that command now, since hydra-server is
currently up and running.

> AFAICT, it just hangs after that.  How can I check?  And why is it
> trying to download binaries?  I'm on i686, and '--no-substitutes' was
> used.

Hmm the substituter shouldn’t be fired then.

I just checked and --no-substitutes works for me.  For instance:

--8<---------------cut here---------------start------------->8---
$ guix build -S emacs --no-substitutes
The following derivation will be built:
   /nix/store/s1i5g0pk4jmn71bxp3rp41jskvcjq9hh-emacs-24.3.tar.xz.drv
@ build-started /nix/store/s1i5g0pk4jmn71bxp3rp41jskvcjq9hh-emacs-24.3.tar.xz.drv - x86_64-linux /nix/var/log/nix/drvs/s1//i5g0pk4jmn71bxp3rp41jskvcjq9hh-emacs-24.3.tar.xz.drv.bz2
starting download of `/nix/store/l56isarbbsm22q99yyb2ks11jkm2x9mq-emacs-24.3.tar.xz' from `http://ftpmirror.gnu.org/emacs/emacs-24.3.tar.xz'...
--8<---------------cut here---------------end--------------->8---

... to compare with:

--8<---------------cut here---------------start------------->8---
$ guix build -S emacs 
The following file will be downloaded:
   /nix/store/l56isarbbsm22q99yyb2ks11jkm2x9mq-emacs-24.3.tar.xz
@ substituter-started /nix/store/l56isarbbsm22q99yyb2ks11jkm2x9mq-emacs-24.3.tar.xz /home/ludo/src/guix/nix/scripts/substitute-binary
downloading `/nix/store/l56isarbbsm22q99yyb2ks11jkm2x9mq-emacs-24.3.tar.xz' from `http://hydra.gnu.org/nar/l56isarbbsm22q99yyb2ks11jkm2x9mq-emacs-24.3.tar.xz'...
--8<---------------cut here---------------end--------------->8---

Could you check again, perhaps adding ‘pk’s in guix/script/build.scm?

> 'make check' returns 'FAIL: tests/store.scm'.  'tests/store.log':

[...]

> In guix/build/download.scm:
>   68: 1 [uri-abbreviation # 42]
> In unknown file:
>    ?: 0 [string-append "file" "://" #f "/.../example.nar"]
>
> ERROR: In procedure string-append:
> ERROR: In procedure string-append: Wrong type (expecting string): #f

This was fixed by 91a7fde, but that commit hasn’t yet been merged in
‘core-updates’.

Thanks,
Ludo’.

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

* Re: Cross bootstrap!
  2013-06-28  9:08   ` Nikita Karetnikov
  2013-06-28 12:30     ` Ludovic Courtès
@ 2013-06-30 22:45     ` Ludovic Courtès
  2013-07-01  8:21       ` Nikita Karetnikov
  1 sibling, 1 reply; 17+ messages in thread
From: Ludovic Courtès @ 2013-06-30 22:45 UTC (permalink / raw)
  To: Nikita Karetnikov; +Cc: bug-guix

Nikita Karetnikov <nikita@karetnikov.org> skribis:

> And why is it
> trying to download binaries?  I'm on i686, and '--no-substitutes' was
> used.

Commit 1a8b783 fixes a bug whereby ‘guix build’ would solicit the
substituter even when --no-substitutes is passed, just to know what’s
substitutable (it would not try to download these, too.)

Let’s see if this solves the problem you reported (and Cyril too, on
IRC.)

Thanks,
Ludo’.

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

* Re: Cross bootstrap!
  2013-06-30 22:45     ` Ludovic Courtès
@ 2013-07-01  8:21       ` Nikita Karetnikov
  2013-07-03 23:10         ` Cyril Roelandt
  0 siblings, 1 reply; 17+ messages in thread
From: Nikita Karetnikov @ 2013-07-01  8:21 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: bug-guix

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

> Let’s see if this solves the problem you reported (and Cyril too, on
> IRC.)

I still see "substitute-binary" messages when I'm using
'--no-substitutes'.  Cyril, does it work on your machine?

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

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

* Re: Cross bootstrap!
  2013-06-26 21:13 ` Ludovic Courtès
  2013-06-28  9:08   ` Nikita Karetnikov
@ 2013-07-03 12:41   ` Ludovic Courtès
  2013-07-03 16:16     ` Nikita Karetnikov
  1 sibling, 1 reply; 17+ messages in thread
From: Ludovic Courtès @ 2013-07-03 12:41 UTC (permalink / raw)
  To: bug-guix

ludo@gnu.org (Ludovic Courtès) skribis:

> So commit beda99e adds the N64 cross tool chain.  I was able to build
> the static binaries tarball (Coreutils, gawk, etc.), and it seems to
> work as expected (tested on gcc49 of the GCC Compile Farm):

I’ve uploaded two of the tarballs, for those who can’t use the
substituter and don’t want to rebuild everything:

  http://www.fdn.fr/~lcourtes/tmp/static-binaries-0-mips64el-linux-gnuabi64.tar.xz
  http://www.fdn.fr/~lcourtes/tmp/guile-static-stripped-2.0.9-mips64el-linux-gnuabi64.tar.xz

In fact, I’m interested in getting help with the Guile binary.
Basically the binaries in the first tarball (Coreutils, gawk, etc.)
work fine, but Guile (second tarball) aborts early.

I would like to debug it, but strace(1) would only print syscall names,
not their argument (I tried with strace 4.8, which is the latest
version):

--8<---------------cut here---------------start------------->8---
$ strace ./guile
[...]

n64_mmap()                              = 1647263744
n64_read()                              = 24
n64_close()                             = 0
n64_munmap()                            = 0
n64_clock_gettime()                     = 0
n64_brk()                               = 543596544
n64_clock_gettime()                     = 0
n64_brk()                               = 544026624
n64_brk()                               = 544542720
n64_rt_sigprocmask()                    = 0
n64_tgkill()                            = 0
--- SIGIOT {si_signo=SIGIOT, si_code=SI_TKILL, si_pid=15078, si_uid=1047} ---
+++ killed by SIGIOT +++
Aborted
--8<---------------cut here---------------end--------------->8---

Any idea?

Thanks,
Ludo’.

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

* Re: Cross bootstrap!
  2013-07-03 12:41   ` Ludovic Courtès
@ 2013-07-03 16:16     ` Nikita Karetnikov
  2013-07-03 20:49       ` Ludovic Courtès
  0 siblings, 1 reply; 17+ messages in thread
From: Nikita Karetnikov @ 2013-07-03 16:16 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: bug-guix

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

> I’ve uploaded two of the tarballs, for those who can’t use the
> substituter and don’t want to rebuild everything:

So, one will also need 'glibc', 'gcc', and 'binutils' to build other
packages.  Or am I mistaken?

> http://www.fdn.fr/~lcourtes/tmp/static-binaries-0-mips64el-linux-gnuabi64.tar.xz
> http://www.fdn.fr/~lcourtes/tmp/guile-static-stripped-2.0.9-mips64el-linux-gnuabi64.tar.xz

Could you place them to 'mips64el-linux-gnuabi64/date' (like these [1])
and also sign if it's not hard?

> In fact, I’m interested in getting help with the Guile binary.
> Basically the binaries in the first tarball (Coreutils, gawk, etc.)
> work fine, but Guile (second tarball) aborts early.

What kind of help is actually needed?  Should I try to run it?

[1] http://www.fdn.fr/~lcourtes/software/guix/packages/mips64el-linux/20130105/

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

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

* Re: Cross bootstrap!
  2013-07-03 16:16     ` Nikita Karetnikov
@ 2013-07-03 20:49       ` Ludovic Courtès
  2013-07-06 19:46         ` Nikita Karetnikov
  0 siblings, 1 reply; 17+ messages in thread
From: Ludovic Courtès @ 2013-07-03 20:49 UTC (permalink / raw)
  To: Nikita Karetnikov; +Cc: bug-guix

Nikita Karetnikov <nikita@karetnikov.org> skribis:

>> I’ve uploaded two of the tarballs, for those who can’t use the
>> substituter and don’t want to rebuild everything:
>
> So, one will also need 'glibc', 'gcc', and 'binutils' to build other
> packages.  Or am I mistaken?

You’re right, there are 5 bootstrap tarballs.  I just put out these two
so you can try (and debug!) without rebuilding everything at home.

>> http://www.fdn.fr/~lcourtes/tmp/static-binaries-0-mips64el-linux-gnuabi64.tar.xz
>> http://www.fdn.fr/~lcourtes/tmp/guile-static-stripped-2.0.9-mips64el-linux-gnuabi64.tar.xz
>
> Could you place them to 'mips64el-linux-gnuabi64/date' (like these [1])
> and also sign if it's not hard?

I’ll upload everything to alpha.gnu.org when it’s final, but currently
since the bootstrap Guile seems to have troubles, I just wanted to put
it out for others to test.

>> In fact, I’m interested in getting help with the Guile binary.
>> Basically the binaries in the first tarball (Coreutils, gawk, etc.)
>> work fine, but Guile (second tarball) aborts early.
>
> What kind of help is actually needed?  Should I try to run it?

Yes.  And if you can get more verbose output than I did with strace,
then perhaps we’ll have additional clues.

I already reported a libgc bug, though I don’t think it relates to our
problem:

  http://thread.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/5643

Thanks,
Ludo’.

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

* Re: Cross bootstrap!
  2013-07-01  8:21       ` Nikita Karetnikov
@ 2013-07-03 23:10         ` Cyril Roelandt
  2013-07-09 19:11           ` Nikita Karetnikov
  0 siblings, 1 reply; 17+ messages in thread
From: Cyril Roelandt @ 2013-07-03 23:10 UTC (permalink / raw)
  To: Nikita Karetnikov; +Cc: bug-guix

On 07/01/2013 10:21 AM, Nikita Karetnikov wrote:
>> Let’s see if this solves the problem you reported (and Cyril too, on
>> IRC.)
>
> I still see "substitute-binary" messages when I'm using
> '--no-substitutes'.  Cyril, does it work on your machine?
>

It seems to be working on my machine.


Cyril Roelandt.

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

* Re: Cross bootstrap!
  2013-07-03 20:49       ` Ludovic Courtès
@ 2013-07-06 19:46         ` Nikita Karetnikov
  2013-07-06 21:12           ` Ludovic Courtès
  0 siblings, 1 reply; 17+ messages in thread
From: Nikita Karetnikov @ 2013-07-06 19:46 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: bug-guix

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

> Yes.  And if you can get more verbose output than I did with strace,
> then perhaps we’ll have additional clues.

So, I've just tried to unpack the
'guile-static-stripped-2.0.9-mips64el-linux-gnuabi64.tar.xz' tarball and
run 'strace bin/guile'.  Is it right, or should I also unpack the second
tarball and specify some variables?

Is it OK for 'n64_mmap()' to return a negative value?  And what do
'SYS_5222' and 'SYS_5223' mean?

Will it help if we try to open it with GDB?  (This page [1] says that
GDB should be configured with '--enable-64-bit-bfd'.)

[1] http://www.linux-mips.org/archives/linux-mips/2010-10/msg00336.html

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

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

* Re: Cross bootstrap!
  2013-07-06 19:46         ` Nikita Karetnikov
@ 2013-07-06 21:12           ` Ludovic Courtès
  2013-07-10 21:13             ` bug#14837: " Nikita Karetnikov
  0 siblings, 1 reply; 17+ messages in thread
From: Ludovic Courtès @ 2013-07-06 21:12 UTC (permalink / raw)
  To: Nikita Karetnikov; +Cc: bug-guix

Nikita Karetnikov <nikita@karetnikov.org> skribis:

>> Yes.  And if you can get more verbose output than I did with strace,
>> then perhaps we’ll have additional clues.
>
> So, I've just tried to unpack the
> 'guile-static-stripped-2.0.9-mips64el-linux-gnuabi64.tar.xz' tarball and
> run 'strace bin/guile'.  Is it right, or should I also unpack the second
> tarball and specify some variables?

That’s perfect, nothing else to do.

> Is it OK for 'n64_mmap()' to return a negative value?  And what do
> 'SYS_5222' and 'SYS_5223' mean?

So, did strace display the syscall arguments?  (Apparently not, since it
would display an hexadecimal address for mmap.)

> Will it help if we try to open it with GDB?  (This page [1] says that
> GDB should be configured with '--enable-64-bit-bfd'.)

It’s worth trying.  The GDB installed on gcc49.fsffrance.org doesn’t
support N64 (same symptom as reported on the web page you linked.)

Thanks,
Ludo’.

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

* Re: Cross bootstrap!
  2013-07-03 23:10         ` Cyril Roelandt
@ 2013-07-09 19:11           ` Nikita Karetnikov
  0 siblings, 0 replies; 17+ messages in thread
From: Nikita Karetnikov @ 2013-07-09 19:11 UTC (permalink / raw)
  To: Cyril Roelandt; +Cc: guix-devel, bug-guix

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

(Please don't CC bug-guix@gnu.org if you decide to reply.)

> It seems to be working on my machine.

I've killed old processes and changed store-related permissions, it
seems to work now (on master).

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

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

* bug#14837: Cross bootstrap!
  2013-07-06 21:12           ` Ludovic Courtès
@ 2013-07-10 21:13             ` Nikita Karetnikov
  2013-07-10 21:59               ` Ludovic Courtès
  2013-12-10 21:34               ` Ludovic Courtès
  0 siblings, 2 replies; 17+ messages in thread
From: Nikita Karetnikov @ 2013-07-10 21:13 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 14837

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

> So, did strace display the syscall arguments?  (Apparently not, since it
> would display an hexadecimal address for mmap.)

No.

> It’s worth trying.  The GDB installed on gcc49.fsffrance.org doesn’t
> support N64 (same symptom as reported on the web page you linked.)

It didn't work out [1].

Also, I tried to run

  $ ./pre-inst-env guix build --no-substitutes -K --target=mips64el-linux-gnuabi64 bootstrap-tarballs

and got the same error [2] as before.  'objdump' shows the same output
[3].

Did you mean the following by "the command that build [the archive]" [3]?  

cd /tmp/nix-build-glibc-cross-mips64el-linux-gnuabi64-2.17.drv-2/build && ar cruv libc_pic.a `cat csu/stamp.os iconv/stamp.os locale/stamp.os localedata/stamp.os iconvdata/stamp.os assert/stamp.os ctype/stamp.os intl/stamp.os catgets/stamp.os math/stamp.os setjmp/stamp.os signal/stamp.os stdlib/stamp.os stdio-common/stamp.os libio/stamp.os dlfcn/stamp.os malloc/stamp.os string/stamp.os wcsmbs/stamp.os timezone/stamp.os time/stamp.os dirent/stamp.gcc -c   -g -fkeep-inline-functions -DIN_GCC   -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat -fno-common  -DHAVE_CONFIG_H -I. -I. -I../../gcc-4.7.3/gcc -I../../gcc-4.7.3/gcc/. -I../../gcc-4.7.3/gcc/../include -I../../gcc-4.7.3/gcc/../libcpp/include  -I../../gcc-4.7.3/gcc/../libdecnumber -I../../gcc-4.7.3/gcc/../libdecnumber/bid -I../libdecnumber    ../../gcc-4.7.3/gcc/ipa-ref.c -o ipa-ref.o

cd /tmp/nix-build-glibc-cross-mips64el-linux-gnuabi64-2.17.drv-3/build && ar cruv libc_pic.a `cat csu/stamp.os iconv/stamp.os locale/stamp.os localedata/stamp.os iconvdata/stamp.os assert/stamp.os ctype/stamp.os intl/stamp.os catgets/stamp.os math/stamp.os setjmp/stamp.os signal/stamp.os stdlib/stamp.os stdio-common/stamp.os libio/stamp.os dlfcn/stamp.os malloc/stamp.os string/stamp.os wcsmbs/stamp.os timezone/stamp.os time/stamp.os dirent/stamp.os grp/stamp.os pwd/stamp.os posix/stamp.os io/stamp.os termios/stamp.os resource/stamp.os misc/stamp.os socket/stamp.os sysvipc/stamp.os gmon/stamp.os gnulib/stamp.os wctype/stamp.os manual/stamp.os shadow/stamp.rpc/clnt_tcp.os

[1] http://sourceware.org/ml/gdb/2013-07/msg00037.html
[2] https://lists.gnu.org/archive/html/bug-guix/2013-03/msg00155.html
[3] https://lists.gnu.org/archive/html/bug-guix/2013-03/msg00156.html

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

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

* bug#14837: Cross bootstrap!
  2013-07-10 21:13             ` bug#14837: " Nikita Karetnikov
@ 2013-07-10 21:59               ` Ludovic Courtès
  2013-07-10 22:26                 ` Nikita Karetnikov
  2013-12-10 21:34               ` Ludovic Courtès
  1 sibling, 1 reply; 17+ messages in thread
From: Ludovic Courtès @ 2013-07-10 21:59 UTC (permalink / raw)
  To: Nikita Karetnikov; +Cc: 14837

Nikita Karetnikov <nikita@karetnikov.org> skribis:

>> So, did strace display the syscall arguments?  (Apparently not, since it
>> would display an hexadecimal address for mmap.)
>
> No.
>
>> It’s worth trying.  The GDB installed on gcc49.fsffrance.org doesn’t
>> support N64 (same symptom as reported on the web page you linked.)
>
> It didn't work out [1].

Argh.

> Also, I tried to run
>
>   $ ./pre-inst-env guix build --no-substitutes -K --target=mips64el-linux-gnuabi64 bootstrap-tarballs
>
> and got the same error [2] as before.  'objdump' shows the same output
> [3].

[...]

> [1] http://sourceware.org/ml/gdb/2013-07/msg00037.html
> [2] https://lists.gnu.org/archive/html/bug-guix/2013-03/msg00155.html
> [3] https://lists.gnu.org/archive/html/bug-guix/2013-03/msg00156.html

Then I think this problem occurs specifically when cross-building from
i686 to mips64el/N64.  At least it definitely works from x86_64 [0].

Ludo’.

[0] http://hydra.gnu.org:3000/job/gnu/master/gcc-cross-mips64el-linux-gnuabi64-4.7.3

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

* bug#14837: Cross bootstrap!
  2013-07-10 21:59               ` Ludovic Courtès
@ 2013-07-10 22:26                 ` Nikita Karetnikov
  0 siblings, 0 replies; 17+ messages in thread
From: Nikita Karetnikov @ 2013-07-10 22:26 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 14837

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

> Then I think this problem occurs specifically when cross-building from
> i686 to mips64el/N64.

Cyril, could you try the following command on i686?

$ ./pre-inst-env guix build --no-substitutes -K --target=mips64el-linux-gnuabi64 bootstrap-tarballs

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

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

* bug#14837: Cross bootstrap!
  2013-07-10 21:13             ` bug#14837: " Nikita Karetnikov
  2013-07-10 21:59               ` Ludovic Courtès
@ 2013-12-10 21:34               ` Ludovic Courtès
  1 sibling, 0 replies; 17+ messages in thread
From: Ludovic Courtès @ 2013-12-10 21:34 UTC (permalink / raw)
  To: Nikita Karetnikov; +Cc: 14837, request

retitle 14837 Cross-bootstrapping from i686-linux to mips64el-linux n64
tags 14837 wontfix
close 14837
thanks

Closing this bug: we won’t attempt to support cross-builds from i686 to
mips64/n64 if the tool chain doesn’t support it itself.

Thanks,
Ludo’.

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

end of thread, other threads:[~2013-12-10 21:35 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-26 15:33 Cross bootstrap! Ludovic Courtès
2013-06-26 21:13 ` Ludovic Courtès
2013-06-28  9:08   ` Nikita Karetnikov
2013-06-28 12:30     ` Ludovic Courtès
2013-06-30 22:45     ` Ludovic Courtès
2013-07-01  8:21       ` Nikita Karetnikov
2013-07-03 23:10         ` Cyril Roelandt
2013-07-09 19:11           ` Nikita Karetnikov
2013-07-03 12:41   ` Ludovic Courtès
2013-07-03 16:16     ` Nikita Karetnikov
2013-07-03 20:49       ` Ludovic Courtès
2013-07-06 19:46         ` Nikita Karetnikov
2013-07-06 21:12           ` Ludovic Courtès
2013-07-10 21:13             ` bug#14837: " Nikita Karetnikov
2013-07-10 21:59               ` Ludovic Courtès
2013-07-10 22:26                 ` Nikita Karetnikov
2013-12-10 21:34               ` 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).