diff mbox series

gitlab-CI: Test 32-bit builds with the fedora-i386-cross container

Message ID 20201127181025.472458-1-thuth@redhat.com
State New
Headers show
Series gitlab-CI: Test 32-bit builds with the fedora-i386-cross container | expand

Commit Message

Thomas Huth Nov. 27, 2020, 6:10 p.m. UTC
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.

While we're at it, update it 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.

I also had to remove the gnutls-devel package since linking then
failed due to its dependency libtasn1 not being recognized (even
if I explicitely installed it into the container).

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 Test runs can be seen here:
  https://gitlab.com/huth/qemu/-/jobs/877519207
 and here:
  https://gitlab.com/huth/qemu/-/jobs/877519208

 .gitlab-ci.d/crossbuilds.yml                     | 16 ++++++++++++++--
 .../docker/dockerfiles/fedora-i386-cross.docker  | 14 ++++++++++++--
 2 files changed, 26 insertions(+), 4 deletions(-)

Comments

Thomas Huth Nov. 27, 2020, 6:15 p.m. UTC | #1
On 27/11/2020 19.10, 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.
> 
> While we're at it, update it 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.
> 
> I also had to remove the gnutls-devel package since linking then
> failed due to its dependency libtasn1 not being recognized (even
> if I explicitely installed it into the container).

In case anybody is interested, the failure can be seen here:

 https://gitlab.com/huth/qemu/-/jobs/876977206#L4799

... which is very strange, since in line 259, meson claimed to have found
libtasn1 ... anybody got an idea what's going wrong here?

 Thomas


> ---
>  Test runs can be seen here:
>   https://gitlab.com/huth/qemu/-/jobs/877519207
>  and here:
>   https://gitlab.com/huth/qemu/-/jobs/877519208
> 
>  .gitlab-ci.d/crossbuilds.yml                     | 16 ++++++++++++++--
>  .../docker/dockerfiles/fedora-i386-cross.docker  | 14 ++++++++++++--
>  2 files changed, 26 insertions(+), 4 deletions(-)
> 
> diff --git a/.gitlab-ci.d/crossbuilds.yml b/.gitlab-ci.d/crossbuilds.yml
> index 03ebfabb3f..283c42b100 100644
> --- a/.gitlab-ci.d/crossbuilds.yml
> +++ b/.gitlab-ci.d/crossbuilds.yml
> @@ -11,7 +11,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
>  
>  .cross_user_build_job_template: &cross_user_build_job_definition
>    stage: build
> @@ -21,7 +21,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:
>    <<: *cross_system_build_job_definition
> @@ -53,6 +53,18 @@ cross-arm64-user:
>    variables:
>      IMAGE: debian-arm64-cross
>  
> +cross-i386-system:
> +  <<: *cross_system_build_job_definition
> +  variables:
> +    IMAGE: fedora-i386-cross
> +    MAKE_CHECK_ARGS: check
> +
> +cross-i386-user:
> +  <<: *cross_user_build_job_definition
> +  variables:
> +    IMAGE: fedora-i386-cross
> +    MAKE_CHECK_ARGS: check
> +
>  cross-mips-system:
>    <<: *cross_system_build_job_definition
>    variables:
> diff --git a/tests/docker/dockerfiles/fedora-i386-cross.docker b/tests/docker/dockerfiles/fedora-i386-cross.docker
> index cd16cd1bfa..7824cc0da3 100644
> --- a/tests/docker/dockerfiles/fedora-i386-cross.docker
> +++ b/tests/docker/dockerfiles/fedora-i386-cross.docker
> @@ -1,14 +1,24 @@
> -FROM fedora:30
> +FROM fedora:31
>  ENV PACKAGES \
> +    bzip2 \
> +    diffutils \
> +    findutils \
>      gcc \
> +    git \
> +    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
>  
> +ENV QEMU_CONFIGURE_OPTS --extra-cflags=-m32
> +ENV PKG_CONFIG_PATH /usr/lib/pkgconfig
> +
>  RUN dnf install -y $PACKAGES
>  RUN rpm -q $PACKAGES | sort > /packages.txt
>
Paolo Bonzini Nov. 27, 2020, 6:24 p.m. UTC | #2
On 27/11/20 19:15, Thomas Huth wrote:
> On 27/11/2020 19.10, 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.
>>
>> While we're at it, update it 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.
>>
>> I also had to remove the gnutls-devel package since linking then
>> failed due to its dependency libtasn1 not being recognized (even
>> if I explicitely installed it into the container).
> 
> In case anybody is interested, the failure can be seen here:
> 
>   https://gitlab.com/huth/qemu/-/jobs/876977206#L4799
> 
> ... which is very strange, since in line 259, meson claimed to have found
> libtasn1 ... anybody got an idea what's going wrong here?

You didn't install libtasn1-devel.i686.  So it looks like pkg-config 
could find an (x86_64) tasn1.pc was found, but neither of 
/usr/lib/libtasn1.{a,so} exists.

In general this points out an issue with the setup, in that pkg-config 
falls back to /usr/lib64/pkg-config.  Looking at the man page, it seems 
like you have to specify PKG_CONFIG_LIBDIR instead of PKG_CONFIG_PATH.

Paolo
Daniel P. Berrangé Nov. 27, 2020, 6:31 p.m. UTC | #3
On Fri, Nov 27, 2020 at 07:15:43PM +0100, Thomas Huth wrote:
> On 27/11/2020 19.10, 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.
> > 
> > While we're at it, update it 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.
> > 
> > I also had to remove the gnutls-devel package since linking then
> > failed due to its dependency libtasn1 not being recognized (even
> > if I explicitely installed it into the container).
> 
> In case anybody is interested, the failure can be seen here:
> 
>  https://gitlab.com/huth/qemu/-/jobs/876977206#L4799
> 
> ... which is very strange, since in line 259, meson claimed to have found
> libtasn1 ... anybody got an idea what's going wrong here?

It installed the 32-bit  tasn1 RPM, but the 64-bit tasn1-devel RPM


Regards,
Daniel
diff mbox series

Patch

diff --git a/.gitlab-ci.d/crossbuilds.yml b/.gitlab-ci.d/crossbuilds.yml
index 03ebfabb3f..283c42b100 100644
--- a/.gitlab-ci.d/crossbuilds.yml
+++ b/.gitlab-ci.d/crossbuilds.yml
@@ -11,7 +11,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
 
 .cross_user_build_job_template: &cross_user_build_job_definition
   stage: build
@@ -21,7 +21,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:
   <<: *cross_system_build_job_definition
@@ -53,6 +53,18 @@  cross-arm64-user:
   variables:
     IMAGE: debian-arm64-cross
 
+cross-i386-system:
+  <<: *cross_system_build_job_definition
+  variables:
+    IMAGE: fedora-i386-cross
+    MAKE_CHECK_ARGS: check
+
+cross-i386-user:
+  <<: *cross_user_build_job_definition
+  variables:
+    IMAGE: fedora-i386-cross
+    MAKE_CHECK_ARGS: check
+
 cross-mips-system:
   <<: *cross_system_build_job_definition
   variables:
diff --git a/tests/docker/dockerfiles/fedora-i386-cross.docker b/tests/docker/dockerfiles/fedora-i386-cross.docker
index cd16cd1bfa..7824cc0da3 100644
--- a/tests/docker/dockerfiles/fedora-i386-cross.docker
+++ b/tests/docker/dockerfiles/fedora-i386-cross.docker
@@ -1,14 +1,24 @@ 
-FROM fedora:30
+FROM fedora:31
 ENV PACKAGES \
+    bzip2 \
+    diffutils \
+    findutils \
     gcc \
+    git \
+    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
 
+ENV QEMU_CONFIGURE_OPTS --extra-cflags=-m32
+ENV PKG_CONFIG_PATH /usr/lib/pkgconfig
+
 RUN dnf install -y $PACKAGES
 RUN rpm -q $PACKAGES | sort > /packages.txt