Subject: [PATCH core-updates v2 00/20] Update Hurd and fix build failures

From: Ludovic Courtès <[email-masked]>
Date: Tue, 28 Mar 2023 16:28:32 +0200

Hello Guix!

I have good news and bad news.

The bad news is that an image built with:

  ./pre-inst-env guix system image -t hurd-qcow2 \
      gnu/system/examples/bare-hurd.tmpl

fails to boot: it hangs right at:

  (system* "/hurd/mach-defpager")

Basically, ‘system*’ doesn’t work at the early-boot REPL.  This
was not surprising given <https://issues.guix.gnu.org/61095>, but
it is now that I’ve fixed it.  I’ve also confirmed that the same
binary works on a “current” (master) childhurd, which means it
could be something with the new ‘exec’ server or anything in between.
I think we can keep investigating that separately.

The good news is that ‘--target=i586-pc-gnu’ is back to life.  :-)
Compared to Josselin’s initial patch set, I made the following changes:

  • MiG is built from a tarball (which I’ll upload to
    ftp.gnu.org/gnu/guix/mirror after review); building from
    Git introduces a circular dependency in native i586-gnu builds,
    hence the tarball.

  • The glibc ‘configure’ issue is worked around in a less invasive
    way as I proposed earlier.

  • The GCC/libstdc++ patch application is likewise simplified,
    without introducing a world rebuild.

  • ‘system*’ in Guile is fixed.

  • ‘linux-pam’ builds again on GNU/Hurd.

If there are no objections I’d like to push that soonish so we can
move on with the branch.

Thoughts?

Ludo’.

Josselin Poiret (12):
  gnu: gcc@11: Patch libpthread on GNU/Hurd.
  gnu: cross-base: Factor out cross-mig.
  gnu: cross-base: Add cross arguments to hurd derivatives.
  gnu: cross-base: Removed useless inputs to xhurd-core-headers.
  gnu: mig: Update to 1.8+git20220827.
  gnu: gnumach: Update to 1.8+git20220827.
  gnu: hurd: Update to 3ff7053.
  gnu: hurd: Remove useless glibc/hurd-headers input.
  gnu: gnumach, hurd-headers, hurd: Switch to using cross-mig.
  gnu: hurd: Update DDE and use libdde_linux26.
  gnu: mig/32-bit: Remove.
  system: hurd: Use shepherd-0.8 in the package list.

Ludovic Courtès (8):
  gnu: glibc: Work around broken GNU Mach header detection.
  gnu: cross-base: Use gexps for 'cross-gcc-arguments'.
  gnu: linux-pam: Switch to gexps.
  gnu: linux-pam: Allow compilation on GNU/Hurd.
  gnu: guile-static: Switch to gexps.
  gnu: guile: Switch to gexps.
  gnu: guile-readline: Switch to gexps.
  gnu: guile: Fix 'posix_spawn' usage for GNU/Hurd.

 gnu/local.mk                                  |   9 +-
 gnu/packages/base.scm                         |  19 +-
 gnu/packages/cross-base.scm                   | 217 +++--
 gnu/packages/gcc.scm                          |  13 +-
 gnu/packages/guile.scm                        | 190 ++--
 gnu/packages/hurd.scm                         | 307 +++---
 gnu/packages/linux.scm                        |  51 +-
 gnu/packages/make-bootstrap.scm               |  58 +-
 .../gcc-11-libstdc++-hurd-libpthread.patch    |  62 ++
 ...ng-const_mach_port_name_array_t-type.patch |  32 +
 .../patches/guile-hurd-posix-spawn.patch      |  44 +
 ...rd-add-without-rump-configure-option.patch |  82 ++
 gnu/packages/patches/hurd-cross.patch         |  33 -
 ...f-read-write-and-readables-methods-2.patch | 155 +++
 ...-of-read-write-and-readables-methods.patch | 891 ++++++++++++++++++
 gnu/packages/patches/hurd-xattr.patch         |  53 --
 .../patches/mig-cpu.h-generation.patch        |  16 +
 gnu/system/hurd.scm                           |   2 +-
 18 files changed, 1773 insertions(+), 461 deletions(-)
 create mode 100644 gnu/packages/patches/gcc-11-libstdc++-hurd-libpthread.patch
 create mode 100644 gnu/packages/patches/gnumach-add-missing-const_mach_port_name_array_t-type.patch
 create mode 100644 gnu/packages/patches/guile-hurd-posix-spawn.patch
 create mode 100644 gnu/packages/patches/hurd-add-without-rump-configure-option.patch
 delete mode 100644 gnu/packages/patches/hurd-cross.patch
 create mode 100644 gnu/packages/patches/hurd-fix-types-of-read-write-and-readables-methods-2.patch
 create mode 100644 gnu/packages/patches/hurd-fix-types-of-read-write-and-readables-methods.patch
 delete mode 100644 gnu/packages/patches/hurd-xattr.patch
 create mode 100644 gnu/packages/patches/mig-cpu.h-generation.patch

base-commit: 68793b702e4295d011c89e72826fd15ce18e0b95
-- 
2.39.2