[PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely

marcandre.lureau--- via Devel posted 27 patches 4 days, 2 hours ago
Failed in applying to current master (apply log)
Maintainers: "Alex Bennée" <alex.bennee@linaro.org>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Thomas Huth <thuth@redhat.com>, Yonggang Luo <luoyonggang@gmail.com>, Paolo Bonzini <pbonzini@redhat.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, Manos Pitsidianakis <manos.pitsidianakis@linaro.org>, Kohei Tokunaga <ktokunaga.mail@gmail.com>, Warner Losh <imp@bsdimp.com>, Kyle Evans <kevans@freebsd.org>, Ed Maste <emaste@freebsd.org>, Li-Wen Hsu <lwhsu@freebsd.org>
docs/about/build-platforms.rst                |  2 -
docs/about/deprecated.rst                     |  9 +--
configure                                     | 27 +++++++-
meson.build                                   | 34 +++++++---
.gitlab-ci.d/buildtest-template.yml           |  2 +-
.gitlab-ci.d/buildtest.yml                    | 66 +++++++++----------
.gitlab-ci.d/cirrus.yml                       |  4 +-
.gitlab-ci.d/crossbuilds.yml                  | 46 ++++++-------
.gitlab-ci.d/static_checks.yml                |  6 +-
.gitlab-ci.d/windows.yml                      |  8 ++-
rust/bql/meson.build                          |  1 +
rust/chardev/meson.build                      |  1 +
rust/hw/char/pl011/meson.build                |  1 +
rust/hw/core/meson.build                      |  1 +
rust/migration/meson.build                    |  3 +-
rust/qom/meson.build                          |  1 +
rust/system/meson.build                       |  1 +
rust/util/meson.build                         |  1 +
scripts/archive-source.sh                     | 33 +++++++---
.../ci/setup/ubuntu/ubuntu-2204-aarch64.yaml  |  5 +-
.../ci/setup/ubuntu/ubuntu-2204-s390x.yaml    |  5 +-
scripts/rust-to-clang-target-test.sh          | 43 ++++++++++++
scripts/rust-to-clang-target.sh               | 62 +++++++++++++++++
tests/docker/common.rc                        | 11 +++-
tests/docker/dockerfiles/alpine.docker        |  6 +-
tests/docker/dockerfiles/centos9.docker       |  4 ++
.../dockerfiles/debian-amd64-cross.docker     | 18 +++--
.../dockerfiles/debian-arm64-cross.docker     | 18 +++--
.../dockerfiles/debian-armhf-cross.docker     | 21 +++---
.../dockerfiles/debian-i686-cross.docker      | 20 ++++--
.../debian-legacy-test-cross.docker           |  9 ++-
.../dockerfiles/debian-mips64el-cross.docker  |  9 ++-
.../dockerfiles/debian-mipsel-cross.docker    |  9 ++-
.../dockerfiles/debian-ppc64el-cross.docker   | 18 +++--
.../dockerfiles/debian-riscv64-cross.docker   | 10 ++-
.../dockerfiles/debian-s390x-cross.docker     | 18 +++--
tests/docker/dockerfiles/debian.docker        | 18 +++--
.../dockerfiles/emsdk-wasm32-cross.docker     | 29 +++++++-
.../dockerfiles/fedora-rust-nightly.docker    | 18 +++--
.../dockerfiles/fedora-win64-cross.docker     | 15 +++--
tests/docker/dockerfiles/fedora.docker        | 18 +++--
tests/docker/dockerfiles/opensuse-leap.docker |  7 +-
tests/docker/dockerfiles/ubuntu2204.docker    |  7 +-
tests/docker/test-wasm                        | 12 ++++
tests/lcitool/libvirt-ci                      |  2 +-
tests/lcitool/projects/qemu.yml               |  3 +-
tests/lcitool/refresh                         | 48 +++++++++-----
tests/vm/freebsd                              |  4 +-
48 files changed, 531 insertions(+), 183 deletions(-)
create mode 100755 scripts/rust-to-clang-target-test.sh
create mode 100644 scripts/rust-to-clang-target.sh
create mode 100755 tests/docker/test-wasm
[PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely
Posted by marcandre.lureau--- via Devel 4 days, 2 hours ago
From: Marc-André Lureau <marcandre.lureau@redhat.com>

Hi,

This patch series fixes a number of issues with the build system and CI and
enable Rust for many of our jobs, getting us closer to enable Rust by default.

emscripten is difficult to enable, help welcome.

v2:
- add a rust-to-clang-target-test.sh configure script
- drop "RFC: configure: use the same machine as the host triple"
- replace "tests: move mips to debian-legacy-test-cross" with "RFC: build-sys: deprecate mips host"
- start tackling emscripten
- fix mis-placed submodule update
- other minor changes, commit message tweaks, bz links
- add r-b tags

Marc-André Lureau (27):
  build-sys: require -lrt when no shm_open() in std libs
  gitlab-ci: fix 'needs' property type must be array
  scripts/archive-source: speed up downloading subprojects
  scripts/archive-source: silence subprojects downloads
  scripts/archive-source: use a bash array
  configure: fix rust meson configuration
  configure: set the bindgen cross target
  tests/docker/common: print errors to stderr
  tests/docker: use fully qualified image name for emsdk
  tests/docker/common: print meson log on configure failure
  build-sys: cfi_debug and safe_stack are not compatible
  lcitool: update, switch to f41
  lcitool/qemu: include libclang-rt for TSAN
  lcitool/alpine: workaround bindgen issue
  tests/lcitool: add missing rust-std dep
  tests/lcitool: update to debian13
  tests/docker: add ENABLE_RUST environment
  tests/lcitool: enable rust & refresh
  configure: set the meson executable suffix/ext
  tests/freebsd: enable Rust
  meson: rust-bindgen limit allowlist-file to srcdir/include
  RFC: tests/docker: add rust to debian-legacy-test-cross
  WIP: gitlab-ci: enable rust for msys2-64bit
  WIP: cirrus/macos: enable Rust
  RFC: build-sys: deprecate mips host
  build-sys: pass -fvisibility=default for wasm bindgen
  WIP: enable rust for wasm/emscripten

 docs/about/build-platforms.rst                |  2 -
 docs/about/deprecated.rst                     |  9 +--
 configure                                     | 27 +++++++-
 meson.build                                   | 34 +++++++---
 .gitlab-ci.d/buildtest-template.yml           |  2 +-
 .gitlab-ci.d/buildtest.yml                    | 66 +++++++++----------
 .gitlab-ci.d/cirrus.yml                       |  4 +-
 .gitlab-ci.d/crossbuilds.yml                  | 46 ++++++-------
 .gitlab-ci.d/static_checks.yml                |  6 +-
 .gitlab-ci.d/windows.yml                      |  8 ++-
 rust/bql/meson.build                          |  1 +
 rust/chardev/meson.build                      |  1 +
 rust/hw/char/pl011/meson.build                |  1 +
 rust/hw/core/meson.build                      |  1 +
 rust/migration/meson.build                    |  3 +-
 rust/qom/meson.build                          |  1 +
 rust/system/meson.build                       |  1 +
 rust/util/meson.build                         |  1 +
 scripts/archive-source.sh                     | 33 +++++++---
 .../ci/setup/ubuntu/ubuntu-2204-aarch64.yaml  |  5 +-
 .../ci/setup/ubuntu/ubuntu-2204-s390x.yaml    |  5 +-
 scripts/rust-to-clang-target-test.sh          | 43 ++++++++++++
 scripts/rust-to-clang-target.sh               | 62 +++++++++++++++++
 tests/docker/common.rc                        | 11 +++-
 tests/docker/dockerfiles/alpine.docker        |  6 +-
 tests/docker/dockerfiles/centos9.docker       |  4 ++
 .../dockerfiles/debian-amd64-cross.docker     | 18 +++--
 .../dockerfiles/debian-arm64-cross.docker     | 18 +++--
 .../dockerfiles/debian-armhf-cross.docker     | 21 +++---
 .../dockerfiles/debian-i686-cross.docker      | 20 ++++--
 .../debian-legacy-test-cross.docker           |  9 ++-
 .../dockerfiles/debian-mips64el-cross.docker  |  9 ++-
 .../dockerfiles/debian-mipsel-cross.docker    |  9 ++-
 .../dockerfiles/debian-ppc64el-cross.docker   | 18 +++--
 .../dockerfiles/debian-riscv64-cross.docker   | 10 ++-
 .../dockerfiles/debian-s390x-cross.docker     | 18 +++--
 tests/docker/dockerfiles/debian.docker        | 18 +++--
 .../dockerfiles/emsdk-wasm32-cross.docker     | 29 +++++++-
 .../dockerfiles/fedora-rust-nightly.docker    | 18 +++--
 .../dockerfiles/fedora-win64-cross.docker     | 15 +++--
 tests/docker/dockerfiles/fedora.docker        | 18 +++--
 tests/docker/dockerfiles/opensuse-leap.docker |  7 +-
 tests/docker/dockerfiles/ubuntu2204.docker    |  7 +-
 tests/docker/test-wasm                        | 12 ++++
 tests/lcitool/libvirt-ci                      |  2 +-
 tests/lcitool/projects/qemu.yml               |  3 +-
 tests/lcitool/refresh                         | 48 +++++++++-----
 tests/vm/freebsd                              |  4 +-
 48 files changed, 531 insertions(+), 183 deletions(-)
 create mode 100755 scripts/rust-to-clang-target-test.sh
 create mode 100644 scripts/rust-to-clang-target.sh
 create mode 100755 tests/docker/test-wasm

-- 
2.51.0

Re: [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely
Posted by Alex Bennée 21 hours ago
marcandre.lureau@redhat.com writes:

> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> Hi,
>
> This patch series fixes a number of issues with the build system and CI and
> enable Rust for many of our jobs, getting us closer to enable Rust by default.
>
> emscripten is difficult to enable, help welcome.

Also I think:

  https://gitlab.com/stsquad/qemu/-/pipelines/2065603411

And the:
  debian-armhf-cross
  debian-i686-cross
  debian-mipsel-cross
  debian-mips64el-cross
  debian-ppc64el-cross
  debian-riscv64-cross

cross builds fail.

>
> v2:
> - add a rust-to-clang-target-test.sh configure script
> - drop "RFC: configure: use the same machine as the host triple"
> - replace "tests: move mips to debian-legacy-test-cross" with "RFC: build-sys: deprecate mips host"
> - start tackling emscripten
> - fix mis-placed submodule update
> - other minor changes, commit message tweaks, bz links
> - add r-b tags
>
> Marc-André Lureau (27):
>   build-sys: require -lrt when no shm_open() in std libs
>   gitlab-ci: fix 'needs' property type must be array
>   scripts/archive-source: speed up downloading subprojects
>   scripts/archive-source: silence subprojects downloads
>   scripts/archive-source: use a bash array
>   configure: fix rust meson configuration
>   configure: set the bindgen cross target
>   tests/docker/common: print errors to stderr
>   tests/docker: use fully qualified image name for emsdk
>   tests/docker/common: print meson log on configure failure
>   build-sys: cfi_debug and safe_stack are not compatible
>   lcitool: update, switch to f41
>   lcitool/qemu: include libclang-rt for TSAN
>   lcitool/alpine: workaround bindgen issue
>   tests/lcitool: add missing rust-std dep
>   tests/lcitool: update to debian13
>   tests/docker: add ENABLE_RUST environment
>   tests/lcitool: enable rust & refresh
>   configure: set the meson executable suffix/ext
>   tests/freebsd: enable Rust
>   meson: rust-bindgen limit allowlist-file to srcdir/include
>   RFC: tests/docker: add rust to debian-legacy-test-cross
>   WIP: gitlab-ci: enable rust for msys2-64bit
>   WIP: cirrus/macos: enable Rust
>   RFC: build-sys: deprecate mips host
>   build-sys: pass -fvisibility=default for wasm bindgen
>   WIP: enable rust for wasm/emscripten
>
>  docs/about/build-platforms.rst                |  2 -
>  docs/about/deprecated.rst                     |  9 +--
>  configure                                     | 27 +++++++-
>  meson.build                                   | 34 +++++++---
>  .gitlab-ci.d/buildtest-template.yml           |  2 +-
>  .gitlab-ci.d/buildtest.yml                    | 66 +++++++++----------
>  .gitlab-ci.d/cirrus.yml                       |  4 +-
>  .gitlab-ci.d/crossbuilds.yml                  | 46 ++++++-------
>  .gitlab-ci.d/static_checks.yml                |  6 +-
>  .gitlab-ci.d/windows.yml                      |  8 ++-
>  rust/bql/meson.build                          |  1 +
>  rust/chardev/meson.build                      |  1 +
>  rust/hw/char/pl011/meson.build                |  1 +
>  rust/hw/core/meson.build                      |  1 +
>  rust/migration/meson.build                    |  3 +-
>  rust/qom/meson.build                          |  1 +
>  rust/system/meson.build                       |  1 +
>  rust/util/meson.build                         |  1 +
>  scripts/archive-source.sh                     | 33 +++++++---
>  .../ci/setup/ubuntu/ubuntu-2204-aarch64.yaml  |  5 +-
>  .../ci/setup/ubuntu/ubuntu-2204-s390x.yaml    |  5 +-
>  scripts/rust-to-clang-target-test.sh          | 43 ++++++++++++
>  scripts/rust-to-clang-target.sh               | 62 +++++++++++++++++
>  tests/docker/common.rc                        | 11 +++-
>  tests/docker/dockerfiles/alpine.docker        |  6 +-
>  tests/docker/dockerfiles/centos9.docker       |  4 ++
>  .../dockerfiles/debian-amd64-cross.docker     | 18 +++--
>  .../dockerfiles/debian-arm64-cross.docker     | 18 +++--
>  .../dockerfiles/debian-armhf-cross.docker     | 21 +++---
>  .../dockerfiles/debian-i686-cross.docker      | 20 ++++--
>  .../debian-legacy-test-cross.docker           |  9 ++-
>  .../dockerfiles/debian-mips64el-cross.docker  |  9 ++-
>  .../dockerfiles/debian-mipsel-cross.docker    |  9 ++-
>  .../dockerfiles/debian-ppc64el-cross.docker   | 18 +++--
>  .../dockerfiles/debian-riscv64-cross.docker   | 10 ++-
>  .../dockerfiles/debian-s390x-cross.docker     | 18 +++--
>  tests/docker/dockerfiles/debian.docker        | 18 +++--
>  .../dockerfiles/emsdk-wasm32-cross.docker     | 29 +++++++-
>  .../dockerfiles/fedora-rust-nightly.docker    | 18 +++--
>  .../dockerfiles/fedora-win64-cross.docker     | 15 +++--
>  tests/docker/dockerfiles/fedora.docker        | 18 +++--
>  tests/docker/dockerfiles/opensuse-leap.docker |  7 +-
>  tests/docker/dockerfiles/ubuntu2204.docker    |  7 +-
>  tests/docker/test-wasm                        | 12 ++++
>  tests/lcitool/libvirt-ci                      |  2 +-
>  tests/lcitool/projects/qemu.yml               |  3 +-
>  tests/lcitool/refresh                         | 48 +++++++++-----
>  tests/vm/freebsd                              |  4 +-
>  48 files changed, 531 insertions(+), 183 deletions(-)
>  create mode 100755 scripts/rust-to-clang-target-test.sh
>  create mode 100644 scripts/rust-to-clang-target.sh
>  create mode 100755 tests/docker/test-wasm

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro