From b55310603f0df7d5ae02d47cb8d4be58bf1d41ca Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sat, 7 May 2022 16:45:40 +0200 Subject: linux: Remove system->linux-architecture procedure. * gnu/packages/linux.scm (system->linux-architecture): Remove it. (make-linux-libre-headers*, make-linux-libre*): Adapt them. * guix/build-system/linux-module.scm (system->arch): Adapt it. * gnu/packages/instrumentation.scm (uftrace): Ditto. * gnu/packages/cross-base.scm (cross-kernel-headers): Ditto. * gnu/packages/bioinformatics.scm (ncbi-vdb): Ditto. * doc/guix.texi (Porting to a new platform): Update it. --- doc/guix.texi | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'doc') diff --git a/doc/guix.texi b/doc/guix.texi index 761fceb9c3..df9cbf4851 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -40276,20 +40276,22 @@ one: guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs @end example -For this to work, the @code{glibc-dynamic-linker} procedure in -@code{(gnu packages bootstrap)} must be augmented to return the right -file name for libc's dynamic linker on that platform; likewise, -@code{system->linux-architecture} in @code{(gnu packages linux)} must be -taught about the new platform. - -Once these are built, the @code{(gnu packages bootstrap)} module needs -to be updated to refer to these binaries on the target platform. That -is, the hashes and URLs of the bootstrap tarballs for the new platform -must be added alongside those of the currently supported platforms. The -bootstrap Guile tarball is treated specially: it is expected to be -available locally, and @file{gnu/local.mk} has rules to download it for -the supported architectures; a rule for the new platform must be added -as well. +For this to work, it is first required to register a new platform as +defined in the @code{(gnu platform)} module. A platform is making the +connection between a GNU triplet (@pxref{Specifying Target Triplets, GNU +configuration triplets,, autoconf, Autoconf}), the equivalent +@var{system} in Nix notation, the name of the +@var{glibc-dynamic-linker}, and the corresponding Linux architecture +name if applicable. + +Once the bootstrap tarball are built, the @code{(gnu packages +bootstrap)} module needs to be updated to refer to these binaries on the +target platform. That is, the hashes and URLs of the bootstrap tarballs +for the new platform must be added alongside those of the currently +supported platforms. The bootstrap Guile tarball is treated specially: +it is expected to be available locally, and @file{gnu/local.mk} has +rules to download it for the supported architectures; a rule for the new +platform must be added as well. In practice, there may be some complications. First, it may be that the extended GNU triplet that specifies an ABI (like the @code{eabi} suffix -- cgit v1.2.3