This enables building packages in a 64bit childhurd. It will not enable
offloading to a childhurd.
* guix/utils.scm (host-hurd?, host-x86-64, host-hurd64?): New procedures.
* gnu/packages/commencement.scm (gcc-toolchain): Use them to determine if the
host is a 64bit Hurd, and use gcc-toolchain-14.
* gnu/packages/gcc.scm (gcc): Likewise, to use gcc-14.
Change-Id: I55e43fdc61e3ea5fc13065fc7ca854b951c94930
This also updates comments and removes the comment about a very old
`bootstrap-profile' hack.
* gnu/system/examples/devel-hurd.tmpl (hurd-packages): New variable
(%hurd-devel-os): Use it.
* gnu/system/examples/devel-hurd64.tmpl: New file.
Change-Id: I54b6b0843f0dd635d89cca483ae43d23b20d21e8
On the 64bit Hurd, glibc-2.39's libm.so is also a linker script. This fixes
having it refer to
/gnu/store/eee...-glibc-cross-x86_64-pc-gnu-2.39/lib/libm.so.6
/gnu/store/eee...-glibc-cross-x86_64-pc-gnu-2.39/lib/libmvec.so.1
* gnu/packages/bootstrap.scm (%bootstrap-glibc)[arguments]: When building for
the 64bit Hurd, also substitute libm.so linker script. Update the regexp to
also cater for libh[urduser] and libm[achuser].
Change-Id: I878e63d18f1012b6e186e90eb68cb97bec5ae94c
* gnu/packages/patches/gdb-hurd64.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/gdb.scm (gdb-15): Use it in new variable.
(gdb-minmal-15): New variable.
(gdb/pinned): When building for the 64bit Hurd, set #:configure-flags to
"--enable-targets=i586-pc-gnu,x86_64-pc-gnu".
Change-Id: I52d28092be6c415b8668bb5a77d41c87df841351
This fixes running autopoint from a cross-built gettext[-minimal].
* gnu/packages/gettext.scm (gettext-minimal): When cross-building, add stage
"patch-cross-shebangs".
Change-Id: I5029a3be0b5cee3c173de66d8f0b027b02c3bc47
* gnu/packages/base.scm (grep)[arguments]: When building for the 64bit Hurd,
add patch-sigsegv.h stage.
Change-Id: I82993ebde268867348893556a9476faa5c4e9453
* gnu/packages/patches/grub-hurd64.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/bootloaders.scm (grub)[arguments]: When building for the 64bit
Hurd, use it in new "apply-hurd64-patch" stage.
Change-Id: I780f6a92418b49e5fe0d23eb1c90e155216f1428
* gnu/packages/patches/inetutils-hurd64.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/admin.scm (inetutils)[arguments]: When building for the 64bit
Hurd, use it in new "apply-hurd64-patch" stage.
Change-Id: I780f6a92418b49e5fe0d23eb1c90e155216f1428
* gnu/packages/patches/hurd-64bit.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/hurd.scm (hurd)[source]: Use it.
[arguments]: When building for the 64bit Hurd, add "create-machine-symlink"
phase. In phases "build-libdde-linux" and "install-goodies", do not assume
x86, rather use actual ARCH, and follow upstream's "amd64" symlinking voodoo.
Change-Id: If264a91b2433add13f9121c482f0abe67ae5f1e9
* gnu/packages/hurd.scm (rumpkernel)[argument]: In stage "build", follow
Debian upstream to use -DPAE disable the DTRACE and ZFS builds.
Change-Id: I534da31eefb378c72b4896d64a51a73109e38aa6
* gnu/packages/patches/netdde-csum.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/hurd.scm (netdde)[source]: Use it.
[arguments]: Do not assume x86, rather use actual ARCH in #:make-flags, and
follow upstream's "amd64" symlinking voodoo.
Change-Id: Ie825e56779dae2f489066569dc3c4405bac778c1
* gnu/packages/patches/libpciaccess-hurd64.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/xorg.scm (libpciaccess) [arguments]: Use g-expressions. When
building for the 64bit Hurd, use it in new "apply-hurd64-patch" phase.
Change-Id: I8936377da726681b748cc010e1fbae3fb19dee05
* gnu/packages/patches/pciutils-hurd64.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/pciutils.scm (pciutils)[arguments]: Use g-expressions. When
building for the 64bit Hurd, use it in new "apply-hurd64-patch" phase.
Change-Id: I8936377da726681b748cc010e1fbae3fb19dee05
* gnu/packages/patches/openssl-hurd64.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/tls.scm (openssl-3.0)[arguments]: When building for the 64bit
Hurd, use it in new "apply-hurd-patch" phase. In #:configure-flags use
"hurd-x86_64" for the 64bit Hurd.
Change-Id: I8936377da726681b748cc010e1fbae3fb19dee05
* gnu/packages/patches/libgpg-error-hurd64.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/gnupg.scm (libgpg-error)[arguments]: Use it when building for
the 64bit Hurd.
Change-Id: Icabb7cd7bb5bcc771ccee5b8a7f57f52b9b58183
* gnu/packages/make-bootstrap.scm (%gcc-static): Use gcc-14. Update to use
G-Expressions.
[inputs]: Remove libstdc++ and libstdc++-headers.
(%gcc-stripped): Use gcc-14.
[inputs, native-inputs]: Clear fields.
Change-Id: I4e6d779cb457b256d80d1882f182b72a6f7d2be2
This fixes findutil's gnulib-tests's test-sigaction's raise call, by working
around an alleged gcc-14.2 optimization bug. See
<https://lists.gnu.org/archive/html/bug-hurd/2024-11/msg00143.html>.
* gnu/packages/patches/glibc-hurd64-gcc-14.2-tls-bug.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/base.scm (glibc/hurd): Use it.
Change-Id: I11e683f521f34dedeb7f739a2545f5d1d866922a
* gnu/packages/patches/guile-lzlib-hurd64.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/guile.scm (guile-lzlib)[arguments]: Use G-expressions. When
building for the 64bit Hurd, or cross-compiling, use it in new
"apply-hurd64-patch" stage.
Change-Id: Id03f71baa80e2f4f967f54037ce7d9f1c5dc4bb6
* gnu/packages/ssh.scm (libssh)[arguments]: When cross-compiling to a
32bit host, add CFLAGS to #:configure-flags to disable a breaking warning.
Change-Id: Ibab7332af162aed38158a50e9b4fc288b4286922
* gnu/packages/libedit.scm (libedit)[arguments]: When cross-compiling to a
32bit host, add CFLAGS to #:configure-flags to disable a breaking warning.
Change-Id: Ibab7332af162aed38158a50e9b4fc288b4286922
* gnu/packages/hurd.scm (netdde)[arguments]: Disable some warnings breaking
the build, using "WARNINGS=..." in #:make-flags.
Change-Id: I39f577c51eaa3d86abf80a54f7c172324cf56749
* gnu/packages/hurd.scm (hurd)[arguments]: In phase "build-libdde-linux",
disable some warnings breaking the build, using "WARNINGS=...".
Change-Id: Ib70926a90e1d37080c5b9dd333f19636cdae3013
* gnu/packages/texinfo.scm (texinfo-4): When building for the 64bit Hurd, or
cross-compiling, add "-Wno-incompatible-pointer-types" to #:configure-flags.
Change-Id: Ia0503e3f5c7aa5354a949b69035a1be6f93ec85f
* gnu/packages/libffi.scm (libffi)[arguments]: When building for the 64bit
Hurd, or cross-building, add "CFLAGS" to #:configure-flags to disable breaking
warning.
Change-Id: I05bf3f460f3e292626de1894b7a3cf381cb07702
* gnu/packages/flex.scm (flex): When building for the 64bit Hurd, or
cross-compiling, add "-Wno-int-conversion "-Wno-implicit-function-declaration"
to #:configure-flags.
Change-Id: Ia0503e3f5c7aa5354a949b69035a1be6f93ec85f
* gnu/packages/version-control.scm (git-minimal)[arguments]: When building for
the 64bit Hurd, or cross-compiling, use "-Wno-implicit-function-declaration"
in #:make-flags. Use target-hurd? instead of comparing with "i586-pc-gnu" in
"use-host-uname_S" phase.
Change-Id: Ib9836be8a1e389a82c8a89adf22aaeac0d85bd14
For example, without this patch bash hangs while configuring diffutils.
Reproducer:
cat >x.awk <<EOF
x... repeat 16384 (the actual pipe size) times
EOF
* gnu/packages/bash.scm (bash): When cross-building for the Hurd, add new
"create-pipesize.h" stage.
Change-Id: I02c1dcf2d63849626ba3448cd52766db822dc77c
These patches fix:
* Statically linked tar to hang/segfault upon issuing the "--mtime=@1"
warning; this is also applicable for the 32bit Hurd using glibc-2.39!
See <https://lists.gnu.org/archive/html/bug-hurd/2024-11/msg00115.html>.
* Shell replacement problems for the 64bit Hurd.
See <https://lists.debian.org/debian-hurd/2024/07/msg00063.html>.
* Findutil's gnulib-tests/test-sigaction failure.
* gnu/packages/patches/glibc-hurd-pthread_setcancelstate.patch,
gnu/packages/patches/glibc-hurd64-fault.patch,
gnu/packages/patches/glibc-hurd64-intr-msg-clobber.patch,
gnu/packages/patches/glibc-hurd64-sgms-context.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register them.
* gnu/packages/base.scm (glibc/hurd): Use them.
Change-Id: I9ee65983876cd22ad1dc01aabb41a34074631599
* gnu/packages/gcc.scm (make-libstdc++)[arguments]: When building for the
64bit Hurd, add stage patch-hurd64.
Change-Id: I795a591ef8282ee5b760fec43bd4ad849007f602
* gnu/packages/patches/libxcrypt-hurd64.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/crypto.scm (libxcrypt)[arguments]: When building for the 64bit
Hurd, use it in new phase `apply-hurd64-patch'.
Change-Id: I795a591ef8282ee5b760fec43bd4ad849007f602
* gnu/packages/base.scm (patch)[arguments]: When building for the 64bit Hurd,
set #:configure-flags.
Change-Id: I795a591ef8282ee5b760fec43bd4ad849007f602
* gnu/packages/base.scm (grep)[arguments]: When building for the 64bit Hurd,
add patch-sigsegv.h stage.
Change-Id: I795a591ef8282ee5b760fec43bd4ad849007f602
* gnu/packages/bash-minimal.scm (bash)[arguments]: When building for the 64bit
hurd, or cross-building, use "CFLAGS=-g -O2 -Wno-implicit-function-declaration".
Change-Id: I1356c0aeac303bdf0254c28815716c83884008a0
* gnu/packages/base.scm (glibc)[arguments]: When building for the Hurd, in
phase "create-machine-symlink", do not assume CPU is i386, also cater for
x86_64.
* gnu/packages/cross-base.scm (cross-libc*)[arguments]: Likewise.
Change-Id: Ib009b7bd301b543b8629382330cca9d963b7a812
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Update comment on where
to find shared linker name.
(make-raw-bag): Also use raw-build-guile3 when building for the 64bit Hurd.
* gnu/packages/cross-base.scm (cross-kernel-headers*): Use target-hurd?
instead of custom "i586..." matching to also use xhurd-core-headers for
target-hurd64.
* gnu/packages/make-bootstrap.scm (package-with-relocatable-glibc)
[native-inputs]: Move final-inputs before cross-packages.
(%binutils-static)[arguments]: When building for the 64bit Hurd, add
"lt_cv_prog_compiler_static_works=yes", "lt_cv_prog_compiler_static_works_CXX=yes"
to #:make-flags to convince to actually link the binaries statically.
(make-guile-static)[arguments]: When building for the 64bit Hurd, add
"lt_cv_prog_compiler_static_works=yes" to #:configure-flags to convince
libtool to actually link guile statically.
* guix/platforms/x86.scm (x86_64-gnu): New exported variable.
* guix/utils.scm (target-hurd64? system-hurd64?): New procedures.
* gnu/packages/hurd.scm (hurd-headers): Update to 0.9.git20240714.
(hurd)[arguments]: Remove rumpdisk build hack from "prepare-addons" stage.
Instead, when cross-compiling, add stage "fixup-cross-configure" to enable
rumpdisk.
* gnu/system.scm (hurd-multiboot-modules): Remove
"--x-xattr-translator-records" option that has been removed and is now the
default.
Change-Id: I4609b5a959c1ece98e2fe1aedbb1d31d6edadcca