unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Maxime Devos <maximedevos@telenet.be>
To: 49025@debbugs.gnu.org
Cc: Maxime Devos <maximedevos@telenet.be>
Subject: [bug#49025] [PATCH v5 20/20] meson: Support cross-compilation.
Date: Sun, 11 Jul 2021 13:47:23 +0200	[thread overview]
Message-ID: <20210711114723.27568-21-maximedevos@telenet.be> (raw)
In-Reply-To: <20210711114723.27568-1-maximedevos@telenet.be>

For cross-compilation, meson needs to be passed a
‘cross file’ with information on the architecture,
CPU type, endianness and operating system, and the
name of the cross-compiler binaries.

The new module (guix build meson-configuration) has
some utilities for writing these cross files, used
by 'make-cross-file' in a G-exp.  The values for
the cross file are generated by 'make-machine-alist'
and 'make-binaries-alist'.

'make-machine-alist' and 'make-binaries-alist' live
on the host side, such that new architectures and operating
systems can be added without causing rebuilds for old
architectures.

Currently, only GNU/Hurd, GNU/Linux, MinGW, x86-32 and
x86-64 are supported by 'make-machine-alist'. For other
architectures, someone needs to figure out what to
use as ‘CPU type’ first.  Only i686-linux-gnu and
aarch64-linux-gnu have been tested.  The first target
is only tested in a previous version of this patch
series.

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.’

* guix/build/meson-configuration.scm
  (configuration-port): New parameter.
  (write-section-header): New procedure.
  (write-assignment): New procedure.
  (write-assignments): New procedure.
* guix/build-system/meson.scm
  (target-hurd?): New predicate.
  (make-machine-alist): New procedure.
  (make-binaries-alist): New procedure.
  (make-cross-file): New procedure.
  (meson-cross-build): New procedure.
  (lower)[build-inputs]: Add standard cross packages when cross-compiling.
  Do not include regular 'inputs' when cross-compiling.
  (lower)[host-inputs]: Include 'inputs' when cross-compiling.
  (lower)[target-inputs]: Add cross packages when cross-compiling.
  (lower)[build]: Call 'meson-cross-build' instead of 'cross-build'
  when cross-compiling.
  (lower)[target]: Set it.
  (lower)[private-keywords]: Do not remove #:target when cross-compiling.
---
 Makefile.am                        |   1 +
 guix/build-system/meson.scm        | 201 ++++++++++++++++++++++++++---
 guix/build/meson-configuration.scm |  71 ++++++++++
 3 files changed, 254 insertions(+), 19 deletions(-)
 create mode 100644 guix/build/meson-configuration.scm

diff --git a/Makefile.am b/Makefile.am
index 05f013e3c2..6c17ab8492 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -234,6 +234,7 @@ MODULES =					\
   guix/build/emacs-utils.scm			\
   guix/build/java-utils.scm			\
   guix/build/lisp-utils.scm			\
+  guix/build/meson-configuration.scm		\
   guix/build/maven/java.scm			\
   guix/build/maven/plugin.scm			\
   guix/build/maven/pom.scm			\
diff --git a/guix/build-system/meson.scm b/guix/build-system/meson.scm
index 5adc0f92c8..55311f85f0 100644
--- a/guix/build-system/meson.scm
+++ b/guix/build-system/meson.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
 ;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,7 +31,8 @@
   #:use-module (guix packages)
   #:use-module (ice-9 match)
   #:export (%meson-build-system-modules
-            meson-build-system))
+            meson-build-system
+            make-cross-file))
 
 ;; Commentary:
 ;;
@@ -40,6 +42,66 @@
 ;;
 ;; Code:
 
+(define (target-hurd? triplet)
+  (and (string-suffix? "-gnu" triplet)
+       (not (string-contains triplet "linux"))))
+
+(define (make-machine-alist triplet)
+  "Make an association list describing what should go into
+the ‘host_machine’ section of the cross file when cross-compiling
+for TRIPLET."
+  `((system . ,(cond ((target-hurd? triplet) "gnu")
+                     ((target-linux? triplet) "linux")
+                     ((target-mingw? triplet) "windows")
+                     (#t (error "meson: unknown operating system"))))
+    (cpu_family . ,(cond ((target-x86-32? triplet) "x86")
+                         ((target-x86-64? triplet) "x86_64")
+                         ((target-arm32? triplet) "arm")
+                         ((target-aarch64? triplet) "aarch64")
+                         ((target-powerpc? triplet)
+                          (if (target-64bit? triplet)
+                              "ppc64"
+                              "ppc"))
+                         (#t (error "meson: unknown architecture"))))
+    (cpu . ,(cond ((target-x86-32? triplet) ; i386, ..., i686
+                   (substring triplet 0 4))
+                  ((target-x86-64? triplet) "x86_64")
+                  ((target-aarch64? triplet) "armv8-a")
+                  (#t (error "meson: unknown CPU"))))
+    (endian . ,(cond ((string-prefix? "powerpc64le-" triplet) "little")
+                     ((string-prefix? "mips64el-" triplet) "little")
+                     ((target-x86-32? triplet) "little")
+                     ((target-x86-64? triplet) "little")
+                     ;; At least in Guix.  Aarch64 has a big-endian
+                     ;; mode as well.
+                     ((target-aarch64? triplet) "little")
+                     (#t (error "meson: unknown architecture"))))))
+
+(define (make-binaries-alist triplet)
+  "Make an associatoin list describing what should go into
+the ‘binaries’ section of the cross file when cross-compiling for
+TRIPLET."
+  `((c . ,(cc-for-target triplet))
+    (cpp . ,(cxx-for-target triplet))
+    (pkgconfig . ,(pkg-config-for-target triplet))
+    (objcopy . ,(string-append triplet "-objcopy"))
+    (ar . ,(string-append triplet "-ar"))
+    (ld . ,(string-append triplet "-ld"))
+    (strip . ,(string-append triplet "-strip"))))
+
+(define (make-cross-file triplet)
+  (computed-file "cross-file"
+    (with-imported-modules '((guix build meson-configuration))
+      #~(begin
+          (use-modules (guix build meson-configuration))
+          (call-with-output-file #$output
+            (lambda (f)
+              (parameterize ((configuration-port f))
+                (write-section-header "host_machine")
+                (write-assignments '#$(make-machine-alist triplet))
+                (write-section-header "binaries")
+                (write-assignments '#$(make-binaries-alist triplet)))))))))
+
 (define %meson-build-system-modules
   ;; Build-side modules imported by default.
   `((guix build meson-build-system)
@@ -68,24 +130,34 @@
                 #:rest arguments)
   "Return a bag for NAME."
   (define private-keywords
-    `(#:meson #:ninja #:inputs #:native-inputs #:outputs #:target))
-
-  (and (not target) ;; TODO: add support for cross-compilation.
-       (bag
-         (name name)
-         (system system)
-         (build-inputs `(("meson" ,meson)
-                         ("ninja" ,ninja)
-                         ,@native-inputs
-                         ,@inputs
-                         ;; Keep the standard inputs of 'gnu-build-system'.
-                         ,@(standard-packages)))
-         (host-inputs (if source
-                          `(("source" ,source))
-                          '()))
-         (outputs outputs)
-         (build meson-build)
-         (arguments (strip-keyword-arguments private-keywords arguments)))))
+    `(#:meson #:ninja #:inputs #:native-inputs #:outputs
+      ,@(if target
+            '()
+            '(#:target))))
+
+  (bag
+    (name name)
+    (system system) (target target)
+    (build-inputs `(("meson" ,meson)
+                    ("ninja" ,ninja)
+                    ,@native-inputs
+                    ,@(if target '() inputs)
+                    ;; Keep the standard inputs of 'gnu-build-system'.
+                    ,@(if target
+                          (standard-cross-packages target 'host)
+                          '())
+                    ,@(standard-packages)))
+    (host-inputs `(,@(if source
+                         `(("source" ,source))
+                         '())
+                   ,@(if target inputs '())))
+    ;; Keep the standard inputs of 'gnu-buid-system'.
+    (target-inputs (if target
+                       (standard-cross-packages target 'target)
+                       '()))
+    (outputs outputs)
+    (build (if target meson-cross-build meson-build))
+    (arguments (strip-keyword-arguments private-keywords arguments))))
 
 (define* (meson-build name inputs
                       #:key
@@ -161,6 +233,97 @@ has a 'meson.build' file."
                       #:disallowed-references disallowed-references
                       #:guile-for-build guile)))
 
+(define* (meson-cross-build name
+                            #:key
+                            target
+                            build-inputs host-inputs target-inputs
+                            guile source
+                            (outputs '("out"))
+                            (configure-flags ''())
+                            (search-paths '())
+                            (native-search-paths '())
+
+                            (build-type "debugoptimized")
+                            (tests? #f)
+                            (test-target "test")
+                            (glib-or-gtk? #f)
+                            (parallel-build? #t)
+                            (parallel-tests? #f)
+                            (validate-runpath? #t)
+                            (patch-shebangs? #t)
+                            (strip-binaries? #t)
+                            (strip-flags ''("--strip-debug"))
+                            (strip-directories ''("lib" "lib64" "libexec"
+                                                  "bin" "sbin"))
+                            (elf-directories ''("lib" "lib64" "libexec"
+                                                "bin" "sbin"))
+                            (phases '%standard-phases)
+                            (system (%current-system))
+                            (imported-modules %meson-build-system-modules)
+                            (modules '((guix build meson-build-system)
+                                       (guix build utils)))
+                            allowed-references
+                            disallowed-references)
+  "Cross-build SOURCE for TARGET using MESON, and with INPUTS, assuming that
+SOURCE has a 'meson.build' file."
+  (define cross-file
+    (make-cross-file target))
+  (define inputs
+    (if (null? target-inputs)
+        (input-tuples->gexp host-inputs)
+        #~(append #$(input-tuples->gexp host-inputs)
+                  #+(input-tuples->gexp target-inputs))))
+  (define builder
+    (with-imported-modules imported-modules
+      #~(begin
+          (use-modules #$@(sexp->gexp modules))
+
+          (define build-phases
+            #$(let ((phases (if (pair? phases) (sexp->gexp phases) phases)))
+                (if glib-or-gtk?
+                    phases
+                    #~(modify-phases #$phases
+                        (delete 'glib-or-gtk-compile-schemas)
+                        (delete 'glib-or-gtk-wrap)))))
+
+          ;; Do not use 'with-build-variables', as there should be
+          ;; no reason to use %build-inputs and friends.
+          (meson-build #:source #+source
+                       #:system #$system
+                       #:outputs #$(outputs->gexp outputs)
+                       #:inputs #$inputs
+                       #:native-inputs #+(input-tuples->gexp build-inputs)
+                       #:search-paths '#$(sexp->gexp
+                                          (map search-path-specification->sexp
+                                                     search-paths))
+                       #:native-search-paths '#$(sexp->gexp
+                                                 (map search-path-specification->sexp
+                                                      native-search-paths))
+                       #:phases build-phases
+                       #:configure-flags `("--cross-file" #+cross-file
+                                           ,@#$(sexp->gexp configure-flags))
+                       #:build-type #$build-type
+                       #:tests? #$tests?
+                       #:test-target #$test-target
+                       #:parallel-build? #$parallel-build?
+                       #:parallel-tests? #$parallel-tests?
+                       #:validate-runpath? #$validate-runpath?
+                       #:patch-shebangs? #$patch-shebangs?
+                       #:strip-binaries? #$strip-binaries?
+                       #:strip-flags #$(sexp->gexp strip-flags)
+                       #:strip-directories #$(sexp->gexp strip-directories)
+                       #:elf-directories #$(sexp->gexp elf-directories)))))
+
+  (mlet %store-monad ((guile (package->derivation (or guile (default-guile))
+                                                  system #:graft? #f)))
+    (gexp->derivation name builder
+                      #:system system
+                      #:target target
+                      #:substitutable? substitutable?
+                      #:allowed-references allowed-references
+                      #:disallowed-references disallowed-references
+                      #:guile-for-build guile)))
+
 (define meson-build-system
   (build-system
     (name 'meson)
diff --git a/guix/build/meson-configuration.scm b/guix/build/meson-configuration.scm
new file mode 100644
index 0000000000..81b4eaa7e1
--- /dev/null
+++ b/guix/build/meson-configuration.scm
@@ -0,0 +1,71 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix build meson-configuration)
+  #:use-module (ice-9 match)
+  #:export (write-section-header write-assignment
+            write-assignments make-machine-alist
+            configuration-port))
+
+;; Commentary:
+;;
+;; Utilities for generating a ‘Cross build definition file’ for
+;; the Meson build system.  Configuration values are currently
+;; never escaped.  In practice this is unlikely to be a problem
+;; in the build environment.
+;;
+;; Code:
+
+(define configuration-port
+  (fluid->parameter (make-unbound-fluid)))
+
+(define (write-section-header section-name)
+  "Write a section header for section named SECTION-NAME
+to the configuration port."
+  (format (configuration-port) "[~a]~%" section-name))
+
+(define (write-assignment key value)
+  "Write an assignment of VALUE to KEY to the configuration
+port.  VALUE must be a string (without any special characters
+such as quotes), a boolean or an integer.  Lists are currently
+not supported"
+  (define port (configuration-port))
+  (match value
+    ((? string?)
+     (format port "~a = '~a'~%" key value))
+    ((? integer?)
+     (format port "~a = ~a~%" key value))
+    (#f
+     (format port "~a = true~%" key))
+    (#t
+     (format port "~a = false~%" key))))
+
+(define* (write-assignments alist)
+  "Write the assignments in ALIST, an association list,
+to the configuration port."
+  (for-each (match-lambda
+              ((key . value)
+               (write-assignment key value)))
+            alist))
+
+(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)))
-- 
2.32.0





  parent reply	other threads:[~2021-07-11 11:49 UTC|newest]

Thread overview: 175+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-14 15:22 [bug#49025] [PATCH core-updates 00/37] Support cross-compilation with meson Maxime Devos
2021-06-14 16:04 ` Maxime Devos
2021-06-18  7:55 ` Mathieu Othacehe
2021-06-18  8:01   ` Mathieu Othacehe
2021-06-18 12:32   ` Ludovic Courtès
2021-06-18 14:58   ` Maxime Devos
2021-06-18 16:09 ` [bug#49025] [[PATCH v2 core-updates] 01/37] utils: Define target-linux? predicate Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 02/37] utils: Define a target-x86-32? and target-x86-64? predicate Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 03/37] packages: Define this-package-input and this-package-native-input Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 04/37] net-base: Make #:builder argument a G-expression Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 05/37] net-base: Fix cross-compilation, eliminating %build-inputs & friends Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 06/37] net-base: Don't cross-compile Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 07/37] tzdata: Don't bother with cross-compiling Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 08/37] libgpg-error: Remove trailing #f from phases Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 09/37] libgpg-error: Prevent silent miscompilation some systems Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 10/37] libgpgerror: Maybe fix a cross-compilation bug Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 11/37] libgpg-error: Fix cross-compilation error Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 12/37] libgcrypt: Fix cross-compilation build error Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 13/37] wrap-python3: Make #:builder a G-exp instead of a raw S-exp Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 14/37] wrap-python3: Fix cross-compilation Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 15/37] python: Fix reference to input when cross-compiling Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 16/37] openssl: Remove trailing #t from phases Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 17/37] openssl: Make the #:phases argument a G-expression Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 18/37] openssl: Use G-exp machinery for referring to outputs Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 19/37] openssl: Move documentation instead of copying and deleting it Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 20/37] openssl: Move all man pages to separate output, not only man3 Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 21/37] openssl: Find bin/env when cross-compiling Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 22/37] openssl: Extract logic for computing CONFIGURE_TARGET_ARCH Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 23/37] readline: Make #:configure-flags a G-expression Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 24/37] readline: Fix build error when cross-compiling Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 25/37] bash: Make #:configure-flags a G-expression Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 26/37] bash: Fix cross-compilation build error Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 27/37] fontconfig: Make the #:configure-flags argument a G-expression Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 28/37] fontconfig: Fix build error when cross-compiling Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 29/37] glib: Use a correct python in scripts " Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 30/37] glib: Verify the cross-compiled python is used in installed scripts Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 31/37] glib: Look up "tzdata" in 'native-inputs', not 'inputs' Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 32/37] tk: Make #:configure-flags a G-expression Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 33/37] tk: Do not use %build-inputs when cross-compiling Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 34/37] libelf: Use the cross-compiler " Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 35/37] opendht: Correct 'nettle' variable name in inputs Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 36/37] cross-base: Fix cross-compiler for i686-linux-gnu Maxime Devos
2021-06-18 16:09   ` [bug#49025] [[PATCH v2 core-updates] 37/37] meson: Support cross-compilation Maxime Devos
2021-06-18 16:18   ` [bug#49025] [[PATCH v2 core-updates] 01/37] utils: Define target-linux? predicate Maxime Devos
2021-06-18 17:15 ` [bug#49025] [PATCH v3 core-updates " Maxime Devos
2021-06-18 17:15   ` [bug#49025] [PATCH v3 core-updates 02/37] utils: Define a target-x86-32? and target-x86-64? predicate Maxime Devos
2021-06-18 17:15   ` [bug#49025] [PATCH v3 core-updates 03/37] packages: Define this-package-input and this-package-native-input Maxime Devos
2021-06-18 17:15   ` [bug#49025] [PATCH v3 core-updates 04/37] net-base: Make #:builder argument a G-expression Maxime Devos
2021-06-18 17:15   ` [bug#49025] [PATCH v3 core-updates 05/37] net-base: Fix cross-compilation, eliminating %build-inputs & friends Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 06/37] net-base: Don't cross-compile Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 07/37] tzdata: Don't bother with cross-compiling Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 08/37] libgpg-error: Remove trailing #f from phases Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 09/37] libgpg-error: Prevent silent miscompilation some systems Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 10/37] libgpgerror: Maybe fix a cross-compilation bug Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 11/37] libgpg-error: Fix cross-compilation error Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 12/37] libgcrypt: Fix cross-compilation build error Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 13/37] wrap-python3: Make #:builder a G-exp instead of a raw S-exp Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 14/37] wrap-python3: Fix cross-compilation Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 15/37] python: Fix reference to input when cross-compiling Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 16/37] openssl: Remove trailing #t from phases Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 17/37] openssl: Make the #:phases argument a G-expression Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 18/37] openssl: Use G-exp machinery for referring to outputs Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 19/37] openssl: Move documentation instead of copying and deleting it Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 20/37] openssl: Move all man pages to separate output, not only man3 Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 21/37] openssl: Find bin/env when cross-compiling Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 22/37] openssl: Extract logic for computing CONFIGURE_TARGET_ARCH Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 23/37] readline: Make #:configure-flags a G-expression Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 24/37] readline: Fix build error when cross-compiling Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 25/37] bash: Make #:configure-flags a G-expression Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 26/37] bash: Fix cross-compilation build error Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 27/37] fontconfig: Make the #:configure-flags argument a G-expression Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 28/37] fontconfig: Fix build error when cross-compiling Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 29/37] glib: Use a correct python in scripts " Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 30/37] glib: Verify the cross-compiled python is used in installed scripts Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 31/37] glib: Look up "tzdata" in 'native-inputs', not 'inputs' Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 32/37] tk: Make #:configure-flags a G-expression Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 33/37] tk: Do not use %build-inputs when cross-compiling Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 34/37] libelf: Use the cross-compiler " Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 35/37] opendht: Correct 'nettle' variable name in inputs Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 36/37] cross-base: Fix cross-compiler for i686-linux-gnu Maxime Devos
2021-06-19  7:43     ` Maxime Devos
2021-06-18 17:16   ` [bug#49025] [PATCH v3 core-updates 37/37] meson: Support cross-compilation Maxime Devos
2021-06-19 15:04 ` [bug#49025] [PATCH v4 core-updates 00/36] Support cross-compilation with meson Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 01/36] utils: Define target-linux? predicate Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 02/36] utils: Define a target-x86-32? and target-x86-64? predicate Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 03/36] packages: Define this-package-input and this-package-native-input Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 04/36] net-base: Make #:builder argument a G-expression Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 05/36] net-base: Fix cross-compilation, eliminating %build-inputs & friends Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 06/36] net-base: Don't cross-compile Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 07/36] tzdata: Don't bother with cross-compiling Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 08/36] libgpg-error: Remove trailing #f from phases Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 09/36] libgpg-error: Prevent silent miscompilation some systems Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 10/36] libgpgerror: Maybe fix a cross-compilation bug Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 11/36] libgpg-error: Fix cross-compilation error Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 12/36] libgcrypt: Fix cross-compilation build error Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 13/36] wrap-python3: Make #:builder a G-exp instead of a raw S-exp Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 14/36] wrap-python3: Fix cross-compilation Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 15/36] python: Fix reference to input when cross-compiling Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 16/36] openssl: Remove trailing #t from phases Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 17/36] openssl: Make the #:phases argument a G-expression Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 18/36] openssl: Use G-exp machinery for referring to outputs Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 19/36] openssl: Move documentation instead of copying and deleting it Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 20/36] openssl: Move all man pages to separate output, not only man3 Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 21/36] openssl: Find bin/env when cross-compiling Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 22/36] openssl: Extract logic for computing CONFIGURE_TARGET_ARCH Maxime Devos
2021-07-03 15:47     ` Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 23/36] readline: Make #:configure-flags a G-expression Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 24/36] readline: Fix build error when cross-compiling Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 25/36] bash: Make #:configure-flags a G-expression Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 26/36] bash: Fix cross-compilation build error Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 27/36] fontconfig: Make the #:configure-flags argument a G-expression Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 28/36] fontconfig: Fix build error when cross-compiling Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 29/36] glib: Use a correct python in scripts " Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 30/36] glib: Verify the cross-compiled python is used in installed scripts Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 31/36] glib: Look up "tzdata" in 'native-inputs', not 'inputs' Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 32/36] tk: Make #:configure-flags a G-expression Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 33/36] tk: Do not use %build-inputs when cross-compiling Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 34/36] libelf: Use the cross-compiler " Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 35/36] cross-base: Fix cross-compiler for i686-linux-gnu Maxime Devos
2021-06-19 15:04   ` [bug#49025] [PATCH v4 core-updates 36/36] meson: Support cross-compilation Maxime Devos
2021-07-08 13:07   ` [bug#49025] [PATCH core-updates 00/37] Support cross-compilation with meson Mathieu Othacehe
2021-07-11 11:47 ` [bug#49025] [PATCH v5 00/20] Support cross-compilation with Meson Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 01/20] utils: Define target-linux? predicate Maxime Devos
2021-07-12 12:35     ` Mathieu Othacehe
2021-07-13 13:33       ` Maxime Devos
2021-07-14 10:46         ` Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 02/20] utils: Define a target-x86-32? and target-x86-64? predicate Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 03/20] packages: Define this-package-input and this-package-native-input Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 04/20] net-base: Don't cross-compile Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 05/20] tzdata: Don't bother with cross-compiling Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 06/20] libgpg-error: Remove trailing #f from phases Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 07/20] libgpg-error: Prevent silent miscompilation some systems Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 08/20] libgpg-error: Fix cross-compilation error Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 09/20] python: Fix reference to input when cross-compiling Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 10/20] openssl: Remove trailing #t from phases Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 11/20] openssl: Make the #:phases argument a G-expression Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 12/20] openssl: Use G-exp machinery for referring to outputs Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 13/20] openssl: Move documentation instead of copying and deleting it Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 14/20] openssl: Move all man pages to separate output, not only man3 Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 15/20] openssl: Extract logic for computing CONFIGURE_TARGET_ARCH Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 16/20] glib: Use a correct python in scripts when cross-compiling Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 17/20] glib: Verify the cross-compiled python is used in installed scripts Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 18/20] glib: Look up "tzdata" in 'native-inputs', not 'inputs' Maxime Devos
2021-07-11 11:47   ` [bug#49025] [PATCH v5 19/20] libelf: Update configure script and config.guess and config.sub Maxime Devos
2021-07-11 11:47   ` Maxime Devos [this message]
2021-07-12 12:42     ` [bug#49025] [PATCH v5 20/20] meson: Support cross-compilation Mathieu Othacehe
2021-07-13 13:36       ` Maxime Devos
2021-07-14 11:12 ` [bug#49025] [PATCH v6 00/22] Support cross-compilation with meson Maxime Devos
2021-07-14 11:12   ` [bug#49025] [PATCH v6 01/22] utils: Define 'target-linux?' predicate Maxime Devos
2021-07-14 11:12   ` [bug#49025] [PATCH v6 02/22] utils: Define 'target-hurd?' predicate Maxime Devos
2021-07-14 11:12   ` [bug#49025] [PATCH v6 03/22] utils: Give 'target-mingw?' a docstring Maxime Devos
2021-07-14 11:12   ` [bug#49025] [PATCH v6 04/22] utils: Define a target-x86-32? and target-x86-64? predicate Maxime Devos
2021-07-14 11:12   ` [bug#49025] [PATCH v6 05/22] packages: Define this-package-input and this-package-native-input Maxime Devos
2021-07-18 17:42     ` [bug#49025] [PATCH core-updates 00/37] Support cross-compilation with meson Ludovic Courtès
2021-07-19  9:40       ` Maxime Devos
2021-07-23  8:53         ` Ludovic Courtès
2021-07-14 11:12   ` [bug#49025] [PATCH v6 06/22] net-base: Don't cross-compile Maxime Devos
2021-07-14 11:12   ` [bug#49025] [PATCH v6 07/22] tzdata: Don't bother with cross-compiling Maxime Devos
2021-07-14 11:12   ` [bug#49025] [PATCH v6 08/22] libgpg-error: Remove trailing #f from phases Maxime Devos
2021-07-14 11:12   ` [bug#49025] [PATCH v6 09/22] libgpg-error: Prevent silent miscompilation some systems Maxime Devos
2021-07-14 11:12   ` [bug#49025] [PATCH v6 10/22] libgpg-error: Fix cross-compilation error Maxime Devos
2021-07-14 11:22     ` Maxime Devos
2021-07-14 11:12   ` [bug#49025] [PATCH v6 11/22] python: Fix reference to input when cross-compiling Maxime Devos
2021-07-14 11:12   ` [bug#49025] [PATCH v6 12/22] openssl: Remove trailing #t from phases Maxime Devos
2021-07-14 11:12   ` [bug#49025] [PATCH v6 13/22] openssl: Make the #:phases argument a G-expression Maxime Devos
2021-07-14 11:12   ` [bug#49025] [PATCH v6 14/22] openssl: Use G-exp machinery for referring to outputs Maxime Devos
2021-07-14 11:13   ` [bug#49025] [PATCH v6 15/22] openssl: Move documentation instead of copying and deleting it Maxime Devos
2021-07-14 11:13   ` [bug#49025] [PATCH v6 16/22] openssl: Move all man pages to separate output, not only man3 Maxime Devos
2021-07-14 11:13   ` [bug#49025] [PATCH v6 17/22] openssl: Extract logic for computing CONFIGURE_TARGET_ARCH Maxime Devos
2021-07-14 11:13   ` [bug#49025] [PATCH v6 18/22] glib: Use a correct python in scripts when cross-compiling Maxime Devos
2021-07-14 11:13   ` [bug#49025] [PATCH v6 19/22] glib: Verify the cross-compiled python is used in installed scripts Maxime Devos
2021-07-14 11:13   ` [bug#49025] [PATCH v6 20/22] glib: Look up "tzdata" in 'native-inputs', not 'inputs' Maxime Devos
2021-07-14 11:13   ` [bug#49025] [PATCH v6 21/22] libelf: Update configure script and config.guess and config.sub Maxime Devos
2021-07-14 11:13   ` [bug#49025] [PATCH v6 22/22] build-system/meson: Support cross-compilation Maxime Devos
2021-07-14 17:28     ` bug#49025: " Mathieu Othacehe

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

  List information: https://guix.gnu.org/

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

  git send-email \
    --in-reply-to=20210711114723.27568-21-maximedevos@telenet.be \
    --to=maximedevos@telenet.be \
    --cc=49025@debbugs.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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).