all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Thiago Jung Bauermann via Guix-patches via <guix-patches@gnu.org>
To: "Jan (janneke) Nieuwenhuizen" <janneke@gnu.org>
Cc: 55227@debbugs.gnu.org
Subject: [bug#55227] [PATCH core-updates 2/8] commencement: Add stage0-posix.
Date: Mon, 09 May 2022 00:49:44 -0300	[thread overview]
Message-ID: <87ee13nyho.fsf@kolabnow.com> (raw)
In-Reply-To: <20220502182434.32130-2-janneke@gnu.org>


Hello Jan,

This is great work! This is not an area I have experience in, so I
didn't read it closely, at least as of yet. I have only one minor
comment:

"Jan (janneke) Nieuwenhuizen" <janneke@gnu.org> writes:

> Stage0-posix is a skeleton for bootstrapping all of Stage0 for POSIX systems.
> On x86-linux, from the 357-byte hex0-seed binary from the bootstrap-seeds, it
> builds hex0, kaem, hex1, catm, hex2, M0, cc_x86, M1, M2,
> get_machine, (mescc-tools), and M2-Planet.
>
> * gnu/packages/commencement.scm (stage0-posix): New variable.
> ---
>  gnu/packages/commencement.scm | 109 ++++++++++++++++++++++++++++++++++
>  1 file changed, 109 insertions(+)
>
> diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
> index 663ffacd56..24e1e6ec8c 100644
> --- a/gnu/packages/commencement.scm
> +++ b/gnu/packages/commencement.scm
> @@ -306,6 +306,115 @@ (define bootstrap-seeds
>  M1, and M2-Planet.")
>      (license license:gpl3+)))
>  
> +(define stage0-posix
> +  ;; The initial bootstrap package: no binary inputs except those from
> +  ;; `bootstrap-seeds, for x86 a 357 byte binary seed: `x86/hex0-seed'.
> +  (let ((mescc-tools-version "1.4.0")
> +        (m2-planet-version "1.9.0"))
> +    (package
> +      (name "stage0-posix")
> +      (version "1.4")
> +      (source (bootstrap-origin
> +               (origin
> +                 (method url-fetch)
> +                 (uri (string-append
> +                       "https://lilypond.org/janneke/guix/20220502/"
> +                       "stage0-posix-" version ".tar.gz"))
> +                 (sha256
> +                  (base32
> +                   "1ammifkj33205qrpfm84yb1c99lwgbn4jsl1hd08aab8c9ffz6p4")))))
> +      (native-inputs
> +       `(("bootstrap-seeds" ,bootstrap-seeds)
> +         ("mescc-tools"
> +          ,(bootstrap-origin
> +            (origin
> +              (method url-fetch)
> +              (uri (string-append
> +                    "https://lilypond.org/janneke/guix/20220502/"
> +                    "mescc-tools-" mescc-tools-version ".tar.gz"))
> +              (sha256
> +               (base32
> +                "1xi6f48pf5bhajhfis189gpizxij7nbp1vzvsb1aafhz4skkiqvg")))))
> +         ("m2-planet"
> +          ,(bootstrap-origin
> +            (origin
> +              (method url-fetch)
> +              (uri (string-append
> +                    "https://lilypond.org/janneke/guix/20220502/"
> +                    "M2-Planet-" m2-planet-version ".tar.gz"))
> +              (sha256
> +               (base32
> +                "1xrn69sc5nz4hwaishqyrcidp1ncxwib9zswl45x378ddz3mmk7g")))))
> +         ,@(%boot-gash-inputs)))
> +      (build-system trivial-build-system)
> +      (arguments
> +       `(#:guile ,%bootstrap-guile
> +         #:modules ((guix build utils))
> +         #:builder
> +         (begin
> +           (use-modules (guix build utils))
> +           (let* ((bootstrap-seeds (assoc-ref %build-inputs "bootstrap-seeds"))
> +                  (mescc-tools (assoc-ref %build-inputs "mescc-tools"))
> +                  (m2-planet (assoc-ref %build-inputs "m2-planet"))
> +                  (source (assoc-ref %build-inputs "source"))
> +                  (tar (assoc-ref %build-inputs "bootar"))
> +                  (bash (assoc-ref %build-inputs "bash"))
> +                  (coreutils (assoc-ref %build-inputs "coreutils"))
> +                  (guile (assoc-ref %build-inputs "guile"))
> +                  (out (assoc-ref %outputs "out"))
> +                  (bindir (string-append out "/bin"))
> +                  (target (or ,(%current-target-system)
> +                              ,(%current-system)))
> +                  (stage0-cpu
> +                   (cond
> +                    ((or (string-prefix? "x86_64-linux" target)

IMHO the code is clearer and less error prone if the (guix utils)
convenience functions are used to test the target rather than directly
doing string pattern matching.

In this case, ‘target-x86-64?’ is the one. There's no need to even pass
an argument to it since the default is what you need.

The check for Linux could be done separately in the body of the builder
with ‘target-linux?’. What do you think?

> +                         (string-prefix? "i686-linux" target))

Here it would be ‘target-x86-32?’.

> +                     "x86")
> +                    ((or (string-prefix? "aarch64-linux" target)
> +                         (string-prefix? "armhf-linux" target))

This is a good case in point. There's a bug above: “armhf-linux” matches
32-bit ARM when building natively because that's what's in
%current-target, but when cross-building %current-target-system will
contain “arm-unknown-linux-gnueabihf” and this branch won't be taken.

Using ‘target-arm32?’ avoids the bug.

> +                     "armv7l")
> +                    (else
> +                     (error "stage0-posix: system not supported" target))))

-- 
Thanks
Thiago




  reply	other threads:[~2022-05-09  4:06 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-02 18:21 [bug#55227] [PATCH core-updates 0/8] The Full Source Bootstrap Jan (janneke) Nieuwenhuizen
2022-05-02 18:24 ` [bug#55227] [PATCH core-updates 1/8] commencement: Add bootstrap-seeds Jan (janneke) Nieuwenhuizen
2022-05-02 18:24   ` [bug#55227] [PATCH core-updates 2/8] commencement: Add stage0-posix Jan (janneke) Nieuwenhuizen
2022-05-09  3:49     ` Thiago Jung Bauermann via Guix-patches via [this message]
2022-05-09  8:14       ` Jan Nieuwenhuizen
2022-05-12 10:45         ` [bug#55227] [PATCH core-updates 0/8] The Full Source Bootstrap Ludovic Courtès
2022-05-02 18:24   ` [bug#55227] [PATCH core-updates 3/8] commencement: mes-boot: Update to 0.24, build with M2-Planet Jan (janneke) Nieuwenhuizen
2022-05-12 10:46     ` [bug#55227] [PATCH core-updates 0/8] The Full Source Bootstrap Ludovic Courtès
2022-05-02 18:24   ` [bug#55227] [PATCH core-updates 4/8] commencement: tcc-boot0: Use NYACC-1.00.2 Jan (janneke) Nieuwenhuizen
2022-05-12 10:47     ` [bug#55227] [PATCH core-updates 0/8] The Full Source Bootstrap Ludovic Courtès
2022-05-02 18:24   ` [bug#55227] [PATCH core-updates 5/8] commencement: tcc-boot0: Update to 0.9.26-1136-g0fbeb2dd Jan (janneke) Nieuwenhuizen
2022-05-12 10:50     ` [bug#55227] [PATCH core-updates 0/8] The Full Source Bootstrap Ludovic Courtès
2022-05-02 18:24   ` [bug#55227] [PATCH core-updates 6/8] bootstrap: Remove %bootstrap-mescc-tools, %bootstrap-mes Jan (janneke) Nieuwenhuizen
2022-05-12 10:50     ` [bug#55227] [PATCH core-updates 0/8] The Full Source Bootstrap Ludovic Courtès
2022-05-02 18:24   ` [bug#55227] [PATCH core-updates 7/8] commencement: Remove %bootstrap-mes-rewired Jan (janneke) Nieuwenhuizen
2022-05-12 10:50     ` [bug#55227] [PATCH core-updates 0/8] The Full Source Bootstrap Ludovic Courtès
2022-05-02 18:24   ` [bug#55227] [PATCH core-updates 8/8] doc: Add the "Full Source Bootstrap" Jan (janneke) Nieuwenhuizen
2022-05-12 11:03     ` [bug#55227] [PATCH core-updates 0/8] The Full Source Bootstrap Ludovic Courtès
2022-05-12 10:38   ` Ludovic Courtès
2022-05-13  8:08     ` Jan Nieuwenhuizen
2022-05-22  4:42   ` [bug#55227] [PATCH core-updates 1/8] commencement: Add bootstrap-seeds Maxim Cournoyer
2022-05-22  6:05     ` Jan Nieuwenhuizen
2022-05-12 11:09 ` [bug#55227] [PATCH core-updates 0/8] The Full Source Bootstrap Ludovic Courtès
2022-05-13  8:07   ` Jan Nieuwenhuizen
2022-05-13  8:09 ` Jan Nieuwenhuizen
2022-05-13  8:09 ` Jan Nieuwenhuizen
2022-05-13  8:09 ` Jan Nieuwenhuizen
2022-05-13  8:09 ` Jan Nieuwenhuizen
2022-05-13 13:56   ` Ludovic Courtès
2022-05-13 15:39     ` Jan Nieuwenhuizen
2022-05-13  8:10 ` Jan Nieuwenhuizen
2022-05-13 15:36 ` [bug#55227] [PATCH core-updates v3 1/8] gnu: commencement: Add bootstrap-seeds Jan (janneke) Nieuwenhuizen
2022-05-13 15:36   ` [bug#55227] [PATCH core-updates v3 2/8] gnu: commencement: Add stage0-posix Jan (janneke) Nieuwenhuizen
2022-05-14 14:09     ` [bug#55227] [PATCH core-updates 0/8] The Full Source Bootstrap Ludovic Courtès
2022-05-15  6:31       ` Jan Nieuwenhuizen
2022-05-13 15:36   ` [bug#55227] [PATCH core-updates v3 3/8] gnu: commencement: mes-boot: Update to 0.24, build with M2-Planet Jan (janneke) Nieuwenhuizen
2022-05-13 15:36   ` [bug#55227] [PATCH core-updates v3 4/8] gnu: commencement: tcc-boot0: Use nyacc-1.00.2 Jan (janneke) Nieuwenhuizen
2022-05-13 15:36   ` [bug#55227] [PATCH core-updates v3 5/8] gnu: commencement: tcc-boot0: Update to 0.9.26-1136-g0fbeb2dd Jan (janneke) Nieuwenhuizen
2022-05-13 15:36   ` [bug#55227] [PATCH core-updates v3 6/8] gnu: bootstrap: Remove %bootstrap-mescc-tools, %bootstrap-mes Jan (janneke) Nieuwenhuizen
2022-05-13 15:36   ` [bug#55227] [PATCH core-updates v3 7/8] gnu: commencement: Remove %bootstrap-mes-rewired Jan (janneke) Nieuwenhuizen
2022-05-13 15:36   ` [bug#55227] [PATCH core-updates v3 8/8] doc: Add the "Full-source Bootstrap" Jan (janneke) Nieuwenhuizen
2022-05-14 14:10     ` [bug#55227] [PATCH core-updates 0/8] The Full Source Bootstrap Ludovic Courtès
2022-05-14 20:36       ` Jan Nieuwenhuizen
2022-05-14 14:11   ` Ludovic Courtès
2022-05-14 20:38     ` Jan Nieuwenhuizen
2022-05-16  4:58 ` Maxim Cournoyer
2022-05-16  5:17   ` Jan Nieuwenhuizen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87ee13nyho.fsf@kolabnow.com \
    --to=guix-patches@gnu.org \
    --cc=55227@debbugs.gnu.org \
    --cc=bauermann@kolabnow.com \
    --cc=janneke@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.