[PATCH v2] gitlab-CI: Test 32-bit builds with the fedora-i386-cross container

Thomas Huth posted 1 patch 3 years, 4 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20201215083451.92322-1-thuth@redhat.com
Maintainers: Wainer dos Santos Moschetta <wainersm@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org>, "Philippe Mathieu-Daudé" <philmd@redhat.com>, Fam Zheng <fam@euphon.net>, Thomas Huth <thuth@redhat.com>
.gitlab-ci.d/crossbuilds.yml                   | 16 ++++++++++++++--
.../dockerfiles/fedora-i386-cross.docker       | 18 +++++++++++++++---
2 files changed, 29 insertions(+), 5 deletions(-)
[PATCH v2] gitlab-CI: Test 32-bit builds with the fedora-i386-cross container
Posted by Thomas Huth 3 years, 4 months ago
After adding some missing packages, it's possible to check 32-bit
builds and tests with the fedora-i386-cross container in the gitlab-CI,
too. Unfortunately, the code in subprojects/ ignores the --extra-cflags
(on purpose), so the vhost-user part has to be disabled for this.

While we're at it, update the container to Fedora 31. Unfortunately the
gcc from the later versions emits some very dubious format-truncation
warnings, so Fedora 32 and 33 are currently unsuitable for this job.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 .gitlab-ci.d/crossbuilds.yml                   | 16 ++++++++++++++--
 .../dockerfiles/fedora-i386-cross.docker       | 18 +++++++++++++++---
 2 files changed, 29 insertions(+), 5 deletions(-)

diff --git a/.gitlab-ci.d/crossbuilds.yml b/.gitlab-ci.d/crossbuilds.yml
index bd6473a75a..2da92e4a6f 100644
--- a/.gitlab-ci.d/crossbuilds.yml
+++ b/.gitlab-ci.d/crossbuilds.yml
@@ -10,7 +10,7 @@
         --target-list-exclude="aarch64-softmmu i386-softmmu microblaze-softmmu
           mips-softmmu mipsel-softmmu mips64-softmmu ppc64-softmmu sh4-softmmu
           xtensa-softmmu"
-    - make -j$(expr $(nproc) + 1) all check-build
+    - make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS
 
 # Job to cross-build specific accelerators.
 #
@@ -37,7 +37,7 @@
     - cd build
     - PKG_CONFIG_PATH=$PKG_CONFIG_PATH
       ../configure --enable-werror $QEMU_CONFIGURE_OPTS --disable-system
-    - make -j$(expr $(nproc) + 1) all check-build
+    - make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS
 
 cross-armel-system:
   extends: .cross_system_build_job
@@ -69,6 +69,18 @@ cross-arm64-user:
   variables:
     IMAGE: debian-arm64-cross
 
+cross-i386-system:
+  extends: .cross_system_build_job
+  variables:
+    IMAGE: fedora-i386-cross
+    MAKE_CHECK_ARGS: check-qtest
+
+cross-i386-user:
+  extends: .cross_user_build_job
+  variables:
+    IMAGE: fedora-i386-cross
+    MAKE_CHECK_ARGS: check
+
 cross-mips-system:
   extends: .cross_system_build_job
   variables:
diff --git a/tests/docker/dockerfiles/fedora-i386-cross.docker b/tests/docker/dockerfiles/fedora-i386-cross.docker
index cd16cd1bfa..a6e411291b 100644
--- a/tests/docker/dockerfiles/fedora-i386-cross.docker
+++ b/tests/docker/dockerfiles/fedora-i386-cross.docker
@@ -1,14 +1,26 @@
-FROM fedora:30
+FROM fedora:31
 ENV PACKAGES \
+    bzip2 \
+    diffutils \
+    findutils \
     gcc \
+    git \
+    libtasn1-devel.i686 \
+    libzstd-devel.i686 \
+    make \
+    meson \
+    ninja-build \
     glib2-devel.i686 \
     glibc-devel.i686 \
     glibc-static.i686 \
     gnutls-devel.i686 \
     nettle-devel.i686 \
+    perl-Test-Harness \
     pixman-devel.i686 \
-    zlib-devel.i686 \
-    libzstd-devel.i686
+    zlib-devel.i686
+
+ENV QEMU_CONFIGURE_OPTS --extra-cflags=-m32 --disable-vhost-user
+ENV PKG_CONFIG_PATH /usr/lib/pkgconfig
 
 RUN dnf install -y $PACKAGES
 RUN rpm -q $PACKAGES | sort > /packages.txt
-- 
2.27.0


Re: [PATCH v2] gitlab-CI: Test 32-bit builds with the fedora-i386-cross container
Posted by Alex Bennée 3 years, 4 months ago
Thomas Huth <thuth@redhat.com> writes:

> After adding some missing packages, it's possible to check 32-bit
> builds and tests with the fedora-i386-cross container in the gitlab-CI,
> too. Unfortunately, the code in subprojects/ ignores the --extra-cflags
> (on purpose), so the vhost-user part has to be disabled for this.
>
> While we're at it, update the container to Fedora 31. Unfortunately the
> gcc from the later versions emits some very dubious format-truncation
> warnings, so Fedora 32 and 33 are currently unsuitable for this job.

Queued to pr/161220-testing-1, thanks.

-- 
Alex Bennée

Re: [PATCH v2] gitlab-CI: Test 32-bit builds with the fedora-i386-cross container
Posted by Wainer dos Santos Moschetta 3 years, 4 months ago
On 12/15/20 5:34 AM, Thomas Huth wrote:
> After adding some missing packages, it's possible to check 32-bit
> builds and tests with the fedora-i386-cross container in the gitlab-CI,
> too. Unfortunately, the code in subprojects/ ignores the --extra-cflags
> (on purpose), so the vhost-user part has to be disabled for this.
>
> While we're at it, update the container to Fedora 31. Unfortunately the
> gcc from the later versions emits some very dubious format-truncation
> warnings, so Fedora 32 and 33 are currently unsuitable for this job.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>   .gitlab-ci.d/crossbuilds.yml                   | 16 ++++++++++++++--
>   .../dockerfiles/fedora-i386-cross.docker       | 18 +++++++++++++++---
>   2 files changed, 29 insertions(+), 5 deletions(-)

Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>

>
> diff --git a/.gitlab-ci.d/crossbuilds.yml b/.gitlab-ci.d/crossbuilds.yml
> index bd6473a75a..2da92e4a6f 100644
> --- a/.gitlab-ci.d/crossbuilds.yml
> +++ b/.gitlab-ci.d/crossbuilds.yml
> @@ -10,7 +10,7 @@
>           --target-list-exclude="aarch64-softmmu i386-softmmu microblaze-softmmu
>             mips-softmmu mipsel-softmmu mips64-softmmu ppc64-softmmu sh4-softmmu
>             xtensa-softmmu"
> -    - make -j$(expr $(nproc) + 1) all check-build
> +    - make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS
>   
>   # Job to cross-build specific accelerators.
>   #
> @@ -37,7 +37,7 @@
>       - cd build
>       - PKG_CONFIG_PATH=$PKG_CONFIG_PATH
>         ../configure --enable-werror $QEMU_CONFIGURE_OPTS --disable-system
> -    - make -j$(expr $(nproc) + 1) all check-build
> +    - make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS
>   
>   cross-armel-system:
>     extends: .cross_system_build_job
> @@ -69,6 +69,18 @@ cross-arm64-user:
>     variables:
>       IMAGE: debian-arm64-cross
>   
> +cross-i386-system:
> +  extends: .cross_system_build_job
> +  variables:
> +    IMAGE: fedora-i386-cross
> +    MAKE_CHECK_ARGS: check-qtest
> +
> +cross-i386-user:
> +  extends: .cross_user_build_job
> +  variables:
> +    IMAGE: fedora-i386-cross
> +    MAKE_CHECK_ARGS: check
> +
>   cross-mips-system:
>     extends: .cross_system_build_job
>     variables:
> diff --git a/tests/docker/dockerfiles/fedora-i386-cross.docker b/tests/docker/dockerfiles/fedora-i386-cross.docker
> index cd16cd1bfa..a6e411291b 100644
> --- a/tests/docker/dockerfiles/fedora-i386-cross.docker
> +++ b/tests/docker/dockerfiles/fedora-i386-cross.docker
> @@ -1,14 +1,26 @@
> -FROM fedora:30
> +FROM fedora:31
>   ENV PACKAGES \
> +    bzip2 \
> +    diffutils \
> +    findutils \
>       gcc \
> +    git \
> +    libtasn1-devel.i686 \
> +    libzstd-devel.i686 \
> +    make \
> +    meson \
> +    ninja-build \
>       glib2-devel.i686 \
>       glibc-devel.i686 \
>       glibc-static.i686 \
>       gnutls-devel.i686 \
>       nettle-devel.i686 \
> +    perl-Test-Harness \
>       pixman-devel.i686 \
> -    zlib-devel.i686 \
> -    libzstd-devel.i686
> +    zlib-devel.i686
> +
> +ENV QEMU_CONFIGURE_OPTS --extra-cflags=-m32 --disable-vhost-user
> +ENV PKG_CONFIG_PATH /usr/lib/pkgconfig
>   
>   RUN dnf install -y $PACKAGES
>   RUN rpm -q $PACKAGES | sort > /packages.txt