Message ID | 20201127181025.472458-1-thuth@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | gitlab-CI: Test 32-bit builds with the fedora-i386-cross container | expand |
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 >
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
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 --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
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(-)