This is a follow-up to commit
4d9c5984fe
gnu: bootstrap: Add support for x86_64-gnu, aka the 64bit Hurd.
where it was inadvertently changed.
Reported by fanquake via IRC.
* gnu/packages/bootstrap.scm (bootstrap-guile-hash)[aarch64-linux]: Revert to
1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r.
Change-Id: I26176b192e43ebe05bbd575414a7173583c6d5b6
Fixes a regression introduced in
53bec65c51 that would cause gsl to be
built without optimizations and without debugging symbols (equivalent to
“-O0 -g0”).
* gnu/packages/maths.scm (gsl)[arguments]: Remove #:make-flags.
Change-Id: I5297e3602bffbb7655d655622cc3d7595f82b25a
* gnu/packages/m4.scm (m4)[arguments]: When building on the 64bit Hurd,
add CFLAGS to #:configure-flags.
Change-Id: Iab16194f4cd2911b4610dddd855064ddc4958dd9
* gnu/packages/base.scm (grep)[arguments]: When building on the 64bit
Hurd, skip the "stack-overflow" test.
Change-Id: Iab16194f4cd2911b4610dddd855064ddc4958dd9
* gnu/packages/commencement.scm (gcc-final)[arguments]: When building for the
64bit Hurd, create a gcc wrapper in phase "create-stage-wrapper", use it
by adding STAGE_CC_WRAPPER to #:make-flags, and CC to #:configure-flags
to convince configure gmp that gcc and g++ work.
Change-Id: I939c03c6c0fd9698efc4b293e59cf576249e3b77
Asking gcc to "--disable-shared" is overridden for libcc1 by the build system,
which lateron fails with
install: cannot stat '.libs/libcc1.so.0.0.0': No such file or directory
because no shared libcc1.so.0.0.0 could actually be built.
* gnu/packages/commencement.scm (gcc-boot0)[arguments]: When building for the
64bit Hurd, add CC_FOR_BUILD to #:make-flags to convince gmp's configure that
gcc works. Also, add phase "patch-libcc1-static" to avoid attempting a shared
libcc1.
* gnu/packages/commencement.scm (make-libstdc++-boot0)[arguments]: When
creating libstdc++-boot0 for the 64bit Hurd, add disable options similar to
libstdc++ to #:configure-flags.
Change-Id: I00636fa48e38823b00ede7dcbd0c1c23544d898c
* gnu/packages/bootstrap.scm (%bootstrap-gcc)[arguments] When building for
thee 64bit Hurd have the #:builder also wrap g++.
Co-authored-by: Efraim Flashner <efraim@flashner.co.il>
Change-Id: I2cdbc6837e1c451f108b309f2608240a7f57b82c
See <https://logs.guix.gnu.org/hurd/2024-11-20.log#082237>.
* gnu/packages/patches/hurd-refcounts-assert.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/hurd.scm (hurd): Use it.
Change-Id: I51ee319f1b7e26a7ed0f4e9f69755aa596ea6877
* gnu/packages/commencement.scm (kernel-headers-boot0): Match using
target-hurd? rather than "i586-gnu".
Change-Id: I3c05f110674e55c97d6712202da9d9af6c1d953f
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