mbox series

[bug#49025,v5,00/20] Support cross-compilation with Meson

Message ID 20210711114723.27568-1-maximedevos@telenet.be
Headers show
Series Support cross-compilation with Meson | expand

Message

M July 11, 2021, 11:47 a.m. UTC
The following changes were made since the v4:

  * As %build-inputs has been re-introduced when cross-compiling,
    I have removed the patches replacing (assoc-ref %build-inputs ...)
    with G-exp machinery.  (Packages: net-base, libgcrypt, wrap-python3,
    openssl, readline, fontconfig, bash)

  * The cross-compilation fixes for libelf were simplified by always
    regenerating the 'configure' script and updating 'config.guess'
    and 'config.sub'.

  * I modified 'make-machine-alist' such that it recognises the
    'aarch64' architecture.  Meson also wants a 'CPU type', so
    I choosed 'armv8-a'.  Not sure if that's always correct,
    but ‘1.2 GNU Distribution’ notes:

    ‘Packages are currently available on the following platforms:
    [...]
    aarch64-linux: little-endian 64 ARMv8-A processors, [..]’

    so it should be good for supported targets in Guix at least.

  * I removed the usage of 'canonical-package' in the inputs of 'glib'.
    Apparently, canonical packages are not supposed to appear in the reference
    graph (<https://lists.gnu.org/archive/html/guix-devel/2020-06/msg00133.html>).

Maxime Devos (20):
  utils: Define target-linux? predicate.
  utils: Define a target-x86-32? and target-x86-64? predicate.
  packages: Define this-package-input and this-package-native-input.
  net-base: Don't cross-compile.
  tzdata: Don't bother with cross-compiling.
  libgpg-error: Remove trailing #f from phases.
  libgpg-error: Prevent silent miscompilation some systems.
  libgpg-error: Fix cross-compilation error.
  python: Fix reference to input when cross-compiling.
  openssl: Remove trailing #t from phases.
  openssl: Make the #:phases argument a G-expression.
  openssl: Use G-exp machinery for referring to outputs.
  openssl: Move documentation instead of copying and deleting it.
  openssl: Move all man pages to separate output, not only man3.
  openssl: Extract logic for computing CONFIGURE_TARGET_ARCH.
  glib: Use a correct python in scripts when cross-compiling.
  glib: Verify the cross-compiled python is used in installed scripts.
  glib: Look up "tzdata" in 'native-inputs', not 'inputs'.
  libelf: Update configure script and config.guess and config.sub.
  meson: Support cross-compilation.

 Makefile.am                        |   1 +
 gnu/packages/admin.scm             |   5 +
 gnu/packages/base.scm              |   9 ++
 gnu/packages/elf.scm               |  44 ++++---
 gnu/packages/glib.scm              |  34 ++++-
 gnu/packages/gnupg.scm             |  48 ++++---
 gnu/packages/python.scm            |   5 +-
 gnu/packages/tls.scm               | 136 +++++++++----------
 guix/build-system/meson.scm        | 201 ++++++++++++++++++++++++++---
 guix/build/meson-configuration.scm |  71 ++++++++++
 guix/packages.scm                  |  29 +++++
 guix/utils.scm                     |  26 ++++
 tests/packages.scm                 |  34 +++++
 tests/utils.scm                    |  40 ++++++
 14 files changed, 561 insertions(+), 122 deletions(-)
 create mode 100644 guix/build/meson-configuration.scm