Re: Cannot clone glibc
Hello, Joshua Branson, on jeu. 16 nov. 2017 14:48:58 -0800, wrote: > Hello, I attempted to clone Hurd's glibc, but I am getting a weird > error: > [...] > > I'm not sure what the issue is. Can someone help me fix this? A > google search seems to think that git repository is corrupt? > > https://stackoverflow.com/questions/23725925/git-repository-corrupt-incorrect-header-check-loose-object-is-corrupt I don't have any issue cloning the repository. So I'd suspect either flacky network connection, or somehow incompatibility between your git client and the git server. I use version 2.15.0. Samuel
Re: SIGILL problems with Hurd port of GO in gcc-8, and rpctrace bugs.
On Thu, Nov 16, 2017 at 5:55 PM, Svante Signellwrote: > > > Perhaps you could try those patches and see if they fix your problem? > If not, > > then it's something else that should be investigated further. > > Thanks, I will try to apply them: Do I need all 0001 to 0011 and 0101 to > 0102 > patches? > I'm not sure exactly which ones you absolutely need. The 0100 series is documentation, so you definitely don't need them. agape brent
Cannot clone glibc
Hello, I attempted to clone Hurd's glibc, but I am getting a weird error: joshua@debian:~/programming$ git clone git://git.savannah.gnu.org/hurd/glibc.git Cloning into 'glibc'... remote: Counting objects: 465122, done. remote: Compressing objects: 100% (68689/68689), done. remote: Total 465122 (delta 387486), reused 465088 (delta 387470) Receiving objects: 100% (465122/465122), 139.77 MiB | 2.30 MiB/s, done. error: inflate: data stream error (incorrect header check) fatal: serious inflate inconsistency fatal: index-pack failed I'm not sure what the issue is. Can someone help me fix this? A google search seems to think that git repository is corrupt? https://stackoverflow.com/questions/23725925/git-repository-corrupt-incorrect-header-check-loose-object-is-corrupt Thanks, Joshua
Re: SIGILL problems with Hurd port of GO in gcc-8, and rpctrace bugs.
On Thu, 2017-11-16 at 12:25 -0500, Brent W. Baccala wrote: > On Wed, Nov 15, 2017 at 11:53 AM, Svante Signell> wrote: > > Has rpctrace been thoroughly tested on multi-thread applications? > > Please, give feedback on this if you have possibility, specifically the > > rpctrace bug(s). > > rpctrace has a known problem interacting with system RPCs that block the > sender. > > See the discussion thread starting here: > > http://lists.gnu.org/archive/html/bug-hurd/2016-09/msg2.html > > My guess is that you're seeing the same problem with gsync_wait() that I saw > with vm_map(). I've got patches to rpctrace to fix this problem, here: > > https://github.com/BrentBaccala/hurd > > This isn't in the main Hurd repository because I wouldn't sign the FSF > copyright assignment. Can you please consider signing the copyright assignment? From what I remember the assignment specifies which software you sign for. You don't sign for anything else. And, as Samuel wrote, the clause is intended for your committed changes to that specific software, nothing else. > Perhaps you could try those patches and see if they fix your problem? If not, > then it's something else that should be investigated further. Thanks, I will try to apply them: Do I need all 0001 to 0011 and 0101 to 0102 patches?
Re: Hurd port for gcc-7 go PATCH 1-3(15)
On Thu, 2017-11-16 at 14:12 +0100, Svante Signell wrote: > On Wed, 2017-11-15 at 21:54 +0100, Svante Signell wrote: > > > > Attached is an updated patch for gcc-7. An updated patch for gcc-8 will follow > shortly when I have build tested gcc-8 go on both Linux and Hurd. > > The patch for src/libgo/mksysinfo.sh worked fine in gcc-5 and gcc-6. The > problem is that in gcc-7 and gcc-8 generation of build/ triplet>/libgo/sysinfo.go is made differently. Well, in gcc-5 and gcc-6 the gccgo patches in debian/rules.patch are conditional, and were not in gcc-7-7.2.0-15. In gcc-7-7.2.0-16 they are conditional again. > The Hurd-specific entry about SYS_IOCTL had to be moved after: > > # The syscall numbers. We force the names to upper case. > grep '^const _SYS_' gen-sysinfo.go | \ > sed -e 's/const _\(SYS_[^= ]*\).*$/\1/' | \ > while read sys; do > sup=`echo $sys | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ` > echo "const $sup = _$sys" >> ${OUT} > done For completeness updated patches for gcc-6 and gcc-8 are attached. gcc-6-6.4.0-10: src_libgo_mksysinfo.sh.diff gcc-8-8-20171108-1: srs_libgo_build.diff And thank you for finding the bug in the patches by making them (temporarily) unconditional. Thanks!Index: gcc-6-6.4.0/src/libgo/mksysinfo.sh === --- gcc-6-6.4.0.orig/src/libgo/mksysinfo.sh +++ gcc-6-6.4.0/src/libgo/mksysinfo.sh @@ -304,6 +304,13 @@ echo '#include ' | ${CC} -x c - egrep '#define E[A-Z0-9_]+ ' | \ sed -e 's/^#define \(E[A-Z0-9_]*\) .*$/const \1 = Errno(_\1)/' >> ${OUT} +# Special treatment of EWOULDBLOCK for GNU/Hurd +# /usr/include/bits/errno.h: #define EWOULDBLOCK EAGAIN +if egrep 'define EWOULDBLOCK EAGAIN' gen-sysinfo.go > /dev/null 2>&1; then + egrep '^const EWOULDBLOCK = Errno(_EWOULDBLOCK)' ${OUT} | \ +sed -i -e 's/_EWOULDBLOCK/_EAGAIN/' ${OUT} +fi + # The O_xxx flags. egrep '^const _(O|F|FD)_' gen-sysinfo.go | \ sed -e 's/^\(const \)_\([^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT} @@ -362,6 +369,11 @@ grep '^const _SYS_' gen-sysinfo.go | \ echo "const $sup = _$sys" >> ${OUT} done +# Special treatment of SYS_IOCTL for GNU/Hurd +if ! grep '^const SYS_IOCTL' ${OUT} > /dev/null 2>&1; then + echo "const SYS_IOCTL = 0" >> ${OUT} +fi + # The GNU/Linux support wants to use SYS_GETDENTS64 if available. if ! grep '^const SYS_GETDENTS ' ${OUT} >/dev/null 2>&1; then echo "const SYS_GETDENTS = 0" >> ${OUT} @@ -676,6 +688,11 @@ grep '^type _tms ' gen-sysinfo.go | \ # The stat type. # Prefer largefile variant if available. +# Special treatment of st_dev for GNU/Hurd +# /usr/include/i386-gnu/bits/stat.h: #define st_dev st_fsid +if grep 'define st_dev st_fsid' gen-sysinfo.go > /dev/null 2>&1; then + sed -i -e 's/; st_fsid/; st_dev/' gen-sysinfo.go +fi stat=`grep '^type _stat64 ' gen-sysinfo.go || true` if test "$stat" != ""; then grep '^type _stat64 ' gen-sysinfo.go Index: gcc-8-8-20171108/src/libgo/configure.ac === --- gcc-8-8-20171108.orig/src/libgo/configure.ac +++ gcc-8-8-20171108/src/libgo/configure.ac @@ -154,7 +154,7 @@ AC_SUBST(go_include) # All known GOOS values. This is the union of all operating systems # supported by the gofrontend and all operating systems supported by # the gc toolchain. -ALLGOOS="aix android darwin dragonfly freebsd irix linux netbsd openbsd plan9 rtems solaris windows" +ALLGOOS="aix android darwin dragonfly freebsd irix gnu linux netbsd openbsd plan9 rtems solaris windows" is_darwin=no is_freebsd=no @@ -166,6 +166,7 @@ is_dragonfly=no is_rtems=no is_solaris=no is_aix=no +is_gnu=no GOOS=unknown case ${host} in *-*-darwin*) is_darwin=yes; GOOS=darwin ;; @@ -178,6 +179,7 @@ case ${host} in *-*-rtems*)is_rtems=yes; GOOS=rtems ;; *-*-solaris2*) is_solaris=yes; GOOS=solaris ;; *-*-aix*) is_aix=yes; GOOS=aix ;; + *-*-gnu*) is_gnu=yes; GOOS=gnu ;; esac AM_CONDITIONAL(LIBGO_IS_DARWIN, test $is_darwin = yes) AM_CONDITIONAL(LIBGO_IS_FREEBSD, test $is_freebsd = yes) @@ -189,6 +191,7 @@ AM_CONDITIONAL(LIBGO_IS_DRAGONFLY, test AM_CONDITIONAL(LIBGO_IS_RTEMS, test $is_rtems = yes) AM_CONDITIONAL(LIBGO_IS_SOLARIS, test $is_solaris = yes) AM_CONDITIONAL(LIBGO_IS_AIX, test $is_aix = yes) +AM_CONDITIONAL(LIBGO_IS_GNU, test $is_gnu = yes) AM_CONDITIONAL(LIBGO_IS_BSD, test $is_darwin = yes -o $is_dragonfly = yes -o $is_freebsd = yes -o $is_netbsd = yes -o $is_openbsd = yes) AC_SUBST(GOOS) AC_SUBST(ALLGOOS) @@ -853,6 +856,13 @@ main () CFLAGS="$CFLAGS_hold" LIBS="$LIBS_hold" ]) +case ${host} in + *-*-gnu*) + LIBS="$LIBS -lpthread" + AC_SUBST(LIBS) + ;; +esac + dnl overwrite for the mips* 64bit multilibs, fails on some buildds if test "$libgo_cv_lib_setcontext_clobbers_tls" = "yes"; then case "$target" in Index: gcc-8-8-20171108/src/libgo/Makefile.am === ---
Re: SIGILL problems with Hurd port of GO in gcc-8, and rpctrace bugs.
On Thu, Nov 16, 2017 at 12:39 PM, Samuel Thibaultwrote: > Hello, > > Brent W. Baccala, on jeu. 16 nov. 2017 12:25:23 -0500, wrote: > > This isn't in the main Hurd repository because I wouldn't sign the FSF > > copyright assignment. They insisted on a clause that said I assign > copyright > > on "all past and future works of Developer that constitute changes and > > enhancements to the Program" and I wouldn't agree to it, because I was > only > > willing to assign copyright on specific changes. > > Rather, there is disagreement over what the assignment means. I really > believe that FSF intends "changes and enhancements to the Program" to > mean what was actually *committed*, and not changes you could have in > your own private repository. Meaning: you only have to say what should > be commited to decide what is covered by the assignment. > > That was their claim. I asked them to write it into the agreement and they wouldn't do it. Me (15 Nov 2016): OK, so can you modify 1 (b) in the contract to clarify this point? I am > not assigning "all past and future works", but only the ones that I > submit. "Anything not contributed is not assigned". Fine. Donald Robertson (16 Nov 2016): There's no need to modify it; that's already how it works. Any > modification to our forms has to be approved by legal counsel, which is > a resource we have in quite limited amounts, so I hope you will sign the > assignment as is. ...and I did not sign it agape brent
Re: SIGILL problems with Hurd port of GO in gcc-8, and rpctrace bugs.
Hello, Brent W. Baccala, on jeu. 16 nov. 2017 12:25:23 -0500, wrote: > This isn't in the main Hurd repository because I wouldn't sign the FSF > copyright assignment. They insisted on a clause that said I assign copyright > on "all past and future works of Developer that constitute changes and > enhancements to the Program" and I wouldn't agree to it, because I was only > willing to assign copyright on specific changes. Rather, there is disagreement over what the assignment means. I really believe that FSF intends "changes and enhancements to the Program" to mean what was actually *committed*, and not changes you could have in your own private repository. Meaning: you only have to say what should be commited to decide what is covered by the assignment. I also believe it is so because FSF does not need more than that, so I don't see why it would ask for more than that. Samuel
Re: SIGILL problems with Hurd port of GO in gcc-8, and rpctrace bugs.
On Wed, Nov 15, 2017 at 11:53 AM, Svante Signellwrote: > > Additionally the rpctrace output hangs hard at gsync_wait() both for the > ./index0-out-reduced_OK.x and ./index0-out-reduced_nOK.x files. > Has rpctrace been thoroughly tested on multi-thread applications? > > Please, give feedback on this if you have possibility, specifically the > rpctrace > bug(s). > > rpctrace has a known problem interacting with system RPCs that block the sender. See the discussion thread starting here: http://lists.gnu.org/archive/html/bug-hurd/2016-09/msg2.html My guess is that you're seeing the same problem with gsync_wait() that I saw with vm_map(). I've got patches to rpctrace to fix this problem, here: https://github.com/BrentBaccala/hurd For those of you who've seen this before, note that I've renamed the github repository. This isn't in the main Hurd repository because I wouldn't sign the FSF copyright assignment. They insisted on a clause that said I assign copyright on "all past and future works of Developer that constitute changes and enhancements to the Program" and I wouldn't agree to it, because I was only willing to assign copyright on specific changes. So, I've started keeping my own repository. I just double-checked those patches, and they apply cleanly again the current Savannah repository (just warnings about offset and fuzz). Perhaps you could try those patches and see if they fix your problem? If not, then it's something else that should be investigated further. agape brent
Re: Hurd port for gcc-7 go PATCH 1-3(15)
On Wed, 2017-11-15 at 21:54 +0100, Svante Signell wrote: > On Wed, 2017-11-15 at 21:40 +0100, Matthias Klose wrote: > > On 06.11.2017 16:36, Svante Signell wrote: > > > Hi, > > > > > > Attached are patches to enable gccgo to build properly on Debian > > > GNU/Hurd on gcc-7 (7-7.2.0-12). > > > > sysinfo.go:6744:7: error: redefinition of 'SYS_IOCTL' > > const SYS_IOCTL = _SYS_ioctl > > ^ > > sysinfo.go:6403:7: note: previous definition of 'SYS_IOCTL' was here > > const SYS_IOCTL = 0 > > ^ > > the patches break the build on any Linux architecture. Please could you > > test > > your patches against a linux target as well? > > I'm really sorry. I regularly do that, but missed this one for gcc-7. Do you > mean the patches against gcc-8 you asked me for? You wrote that gcc-7 is not > of > interest and I should concentrate on gcc-8. > > Again, I'm really sorry. Will fix this tomorrow hopefully. > > Thanks! Attached is an updated patch for gcc-7. An updated patch for gcc-8 will follow shortly when I have build tested gcc-8 go on both Linux and Hurd. The patch for src/libgo/mksysinfo.sh worked fine in gcc-5 and gcc-6. The problem is that in gcc-7 and gcc-8 generation of build//libgo/sysinfo.go is made differently. The Hurd-specific entry about SYS_IOCTL had to be moved after: # The syscall numbers. We force the names to upper case. grep '^const _SYS_' gen-sysinfo.go | \ sed -e 's/const _\(SYS_[^= ]*\).*$/\1/' | \ while read sys; do sup=`echo $sys | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ` echo "const $sup = _$sys" >> ${OUT} done Thanks!Index: gcc-7-7.2.0/src/libgo/configure.ac === --- gcc-7-7.2.0.orig/src/libgo/configure.ac +++ gcc-7-7.2.0/src/libgo/configure.ac @@ -146,7 +146,7 @@ AC_SUBST(go_include) # All known GOOS values. This is the union of all operating systems # supported by the gofrontend and all operating systems supported by # the gc toolchain. -ALLGOOS="android darwin dragonfly freebsd irix linux netbsd openbsd plan9 rtems solaris windows" +ALLGOOS="android darwin dragonfly freebsd irix gnu linux netbsd openbsd plan9 rtems solaris windows" is_darwin=no is_freebsd=no @@ -157,6 +157,7 @@ is_openbsd=no is_dragonfly=no is_rtems=no is_solaris=no +is_gnu=no GOOS=unknown case ${host} in *-*-darwin*) is_darwin=yes; GOOS=darwin ;; @@ -168,6 +169,7 @@ case ${host} in *-*-dragonfly*) is_dragonfly=yes; GOOS=dragonfly ;; *-*-rtems*)is_rtems=yes; GOOS=rtems ;; *-*-solaris2*) is_solaris=yes; GOOS=solaris ;; + *-*-gnu*) is_gnu=yes; GOOS=gnu ;; esac AM_CONDITIONAL(LIBGO_IS_DARWIN, test $is_darwin = yes) AM_CONDITIONAL(LIBGO_IS_FREEBSD, test $is_freebsd = yes) @@ -178,6 +180,7 @@ AM_CONDITIONAL(LIBGO_IS_OPENBSD, test $i AM_CONDITIONAL(LIBGO_IS_DRAGONFLY, test $is_dragonfly = yes) AM_CONDITIONAL(LIBGO_IS_RTEMS, test $is_rtems = yes) AM_CONDITIONAL(LIBGO_IS_SOLARIS, test $is_solaris = yes) +AM_CONDITIONAL(LIBGO_IS_GNU, test $is_gnu = yes) AM_CONDITIONAL(LIBGO_IS_BSD, test $is_darwin = yes -o $is_dragonfly = yes -o $is_freebsd = yes -o $is_netbsd = yes -o $is_openbsd = yes) AC_SUBST(GOOS) AC_SUBST(ALLGOOS) @@ -838,6 +841,14 @@ main () CFLAGS="$CFLAGS_hold" LIBS="$LIBS_hold" ]) + +case ${host} in + *-*-gnu*) + LIBS="$LIBS -lpthread" + AC_SUBST(LIBS) + ;; +esac + dnl overwrite for the mips* 64bit multilibs, fails on some buildds if test "$libgo_cv_lib_setcontext_clobbers_tls" = "yes"; then case "$target" in Index: gcc-7-7.2.0/src/libgo/Makefile.am === --- gcc-7-7.2.0.orig/src/libgo/Makefile.am +++ gcc-7-7.2.0/src/libgo/Makefile.am @@ -420,10 +420,14 @@ else if LIBGO_IS_NETBSD runtime_getncpu_file = runtime/getncpu-bsd.c else +if LIBGO_IS_GNU +runtime_getncpu_file = runtime/getncpu-gnu.c +else runtime_getncpu_file = runtime/getncpu-none.c endif endif endif +endif endif endif endif Index: gcc-7-7.2.0/src/libgo/Makefile.in === --- gcc-7-7.2.0.orig/src/libgo/Makefile.in +++ gcc-7-7.2.0/src/libgo/Makefile.in @@ -183,7 +183,8 @@ libgo_llgo_la_DEPENDENCIES = $(am__DEPEN @LIBGO_IS_LINUX_FALSE@am__objects_2 = thread-sema.lo @LIBGO_IS_LINUX_TRUE@am__objects_2 = thread-linux.lo @LIBGO_IS_RTEMS_TRUE@am__objects_3 = rtems-task-variable-add.lo -@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_4 = getncpu-none.lo +@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_GNU_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_4 = getncpu-none.lo +@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_GNU_TRUE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_4 = getncpu-gnu.lo
Re: boot the Hurd with Guix
Hello everyone, On 11/16/2017 12:13 PM, Ludovic Courtès wrote: > Hi Samuel, :-) > > Samuel Thibaultskribis: > >> Ludovic Courtès, on lun. 13 nov. 2017 11:42:01 +0100, wrote: >>> PS: guix-daemon no longer depends on ‘lsof’, but it still depends on /proc. >> >> Does our procfs have everything it needs already? > > It needs /proc/PID/{exe,cwd,fd,maps,environ}: > > > https://git.savannah.gnu.org/cgit/guix.git/tree/nix/scripts/list-runtime-roots.in > > That said, it’s quite optional: the worst that can happen if one of > these things is missing is that something can be reclaimed “prematurely” > from /gnu/store. I say “prematurely” with quotes because users are > supposed to register “real” GC roots anyway, as with ‘guix package -i’ > or ‘guix build --root’. That reminds me, Rene have you tried running 'guix gc -C' ? What is the output? Because I have a problem with this on Guix on Hurd and I haven't managed to fix it yet.
Re: boot the Hurd with Guix
Hi Samuel, :-) Samuel Thibaultskribis: > Ludovic Courtès, on lun. 13 nov. 2017 11:42:01 +0100, wrote: >> PS: guix-daemon no longer depends on ‘lsof’, but it still depends on /proc. > > Does our procfs have everything it needs already? It needs /proc/PID/{exe,cwd,fd,maps,environ}: https://git.savannah.gnu.org/cgit/guix.git/tree/nix/scripts/list-runtime-roots.in That said, it’s quite optional: the worst that can happen if one of these things is missing is that something can be reclaimed “prematurely” from /gnu/store. I say “prematurely” with quotes because users are supposed to register “real” GC roots anyway, as with ‘guix package -i’ or ‘guix build --root’. Thanks, Ludo’.