guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GNU/Hurd update


From: Ludovic Courtès
Subject: GNU/Hurd update
Date: Sun, 16 Dec 2018 16:42:12 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)

Hello Manolis and all!

Manolis Ragkousis <address@hidden> skribis:

> Rene is using a personal branch based with modification based on the
> guix-hurd work.
>
> Rene are you still using the binaries I had provided?
>
> Theoretically we could do that. But unfortunately 1) the Guix to Hurd
> cross-compilation support breaks faster that I can keep up trying to fix
> 2) even when we get the binaries we will definitely have issues with the
> initial tool-chain.
>
> Can the current master build `guix build --target=i586-pc-gnu
> bootstrap-tarballs` ?

Of course it does!  :-)

I was about to commit the {mkdir,tar,xz,bash} in
gnu/packages/bootstrap/i586-gnu, and then thought maybe the guile
bootstrap tarball as well could be added to bootstrap, but that turned
out to be more complicated.

First, /proc/self lookups were not working for us because our libc was
lacking the implementation of “pid/…” magical lookups; fixed in
92391eaf8df8fecbf6844c57ce5bcd3014eb5d28.

Second, our static Guile 2.2 (from ‘bootstrap-tarballs’) is still on
GNU/Hurd (I tried it on the ‘darnassus’ machine).  What I see is this:

--8<---------------cut here---------------start------------->8---
address@hidden:~$ G/bin/guile --version
guile: warning: failed to install locale
address@hidden:~$ echo $?
0
address@hidden:~$ rpctrace G/bin/guile --version
[…]
  112<--150(pid14979)->dir_lookup 
("home/ludo/G/lib/guile/2.2/ccache/ice-9/command-line.go" 4194305 0) = 0 1 
"ludo/G/lib/guile/2.2/ccache/ice-9/command-line.go"    177<--185(pid14979)
task139(pid14979)->mach_port_mod_refs (pn{ 24} 0 1) = 0 
  177<--185(pid14979)->dir_lookup 
("ludo/G/lib/guile/2.2/ccache/ice-9/command-line.go" 4194305 0) = 0 1 ""    
174<--187(pid14979)
task139(pid14979)->mach_port_deallocate (pn{ 24}) = 0 
task139(pid14979)->mach_port_deallocate (pn{ 24}) = 0 
  174<--187(pid14979)->term_getctty () = 0xfffffed1 ((ipc/mig) bad request 
message ID) 
  174<--187(pid14979)->io_seek (0 2) = 0 77749
  174<--187(pid14979)->io_map () = 0    177<--178(pid14979)  (null)
task139(pid14979)->vm_map (0 77749 0 1    177<--178(pid14979) 0 1 1 7 1) = 0 
19619840
task139(pid14979)->mach_port_deallocate (pn{ 24}) = 0 
task139(pid14979)->mach_port_deallocate (pn{ 26}) = 0 
task139(pid14979)->vm_protect (19685376 4808 0 3) = 0 
  148<--152(pid14979)->proc_mark_exit_request (0 0) = 0 
task139(pid14979)->task_terminate () = 0 
Child 14979 exited with 0
--8<---------------cut here---------------end--------------->8---

IOW, it exits right after its ‘mprotect’ call.

For comparison, this is what it looks like on GNU/Linux:

--8<---------------cut here---------------start------------->8---
stat("/gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4/lib/guile/2.2/ccache/ice-9/command-line.go",
 {st_mode=S_IFREG|0444, st_size=81741, ...}) = 0
openat(AT_FDCWD, 
"/gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4/lib/guile/2.2/ccache/ice-9/command-line.go",
 O_RDONLY|O_CLOEXEC) = 7
lseek(7, 0, SEEK_END)                   = 81741
mmap(NULL, 81741, PROT_READ, MAP_PRIVATE, 7, 0) = 0x7fd08126d000
close(7)                                = 0
mprotect(0x7fd08127d000, 8128, PROT_READ|PROT_WRITE) = 0
openat(AT_FDCWD, 
"/gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/share/locale/en_US.utf8/LC_MESSAGES/messages.mo",
 O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, 
"/gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/share/locale/en_US/LC_MESSAGES/messages.mo",
 O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, 
"/gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/share/locale/en.utf8/LC_MESSAGES/messages.mo",
 O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, 
"/gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/share/locale/en/LC_MESSAGES/messages.mo",
 O_RDONLY) = -1 ENOENT (No such file or directory)
write(1, "guile", 5guile)                    = 5
write(1, " (", 2 ()                       = 2
write(1, "GNU Guile", 9GNU Guile)                = 9
write(1, ") ", 2) )                       = 2
write(1, "2.2.4", 52.2.4)                    = 5
[…]
--8<---------------cut here---------------end--------------->8---

We can recognize th stat/seek/mmap/mprotect sequence, but then the
GNU/Linux version keeps going instead of exiting.

Rene, Manolis: any ideas?  :-)

Thanks,
Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]