guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#49025] [PATCH v5 20/20] meson: Support cross-compilation.


From: Mathieu Othacehe
Subject: [bug#49025] [PATCH v5 20/20] meson: Support cross-compilation.
Date: Mon, 12 Jul 2021 14:42:03 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)

Hey,

> This has been tested with:
>
> $ ./pre-inst-env guix build glib --target=aarch64-linux-gnu
>
> on a x86_64-linux system.  ‘If it compiles, it should work.’

Nice you added aarch64 support :).

> +(define (target-hurd? triplet)
> +  (and (string-suffix? "-gnu" triplet)
> +       (not (string-contains triplet "linux"))))

Maybe it should go in the (guix utils) module.

> +    (cpu . ,(cond ((target-x86-32? triplet) ; i386, ..., i686
> +                   (substring triplet 0 4))
> +                  ((target-x86-64? triplet) "x86_64")
> +                  ((target-aarch64? triplet) "armv8-a")

We could add:

--8<---------------cut here---------------start------------->8---
((target-arm32? triplet) "armv7")
--8<---------------cut here---------------end--------------->8---

for arm32 support.

> +          (call-with-output-file #$output
> +            (lambda (f)
> +              (parameterize ((configuration-port f))

Why don't you pass the port parameter to the build side procedures like
so:

--8<---------------cut here---------------start------------->8---
(call-with-output-file #$output
  (lambda (port)
    (write-section-header port "host_machine")
    ...
--8<---------------cut here---------------end--------------->8---

> +(define* (make-machine-alist #:key system cpu-family cpu endian)
> +  "Make an association list for the [host_machine] section."
> +  `((system . ,system)
> +    (cpu-family . ,cpu-family)
> +    (cpu . ,cpu)
> +    (endian . ,endian)))

This one is unused, right?

Thanks,

Mathieu





reply via email to

[Prev in Thread] Current Thread [Next in Thread]