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
next prev 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).