diff mbox

[v1] configure: require glib-2.24

Message ID 20180418123838.3511-1-olaf@aepfle.de (mailing list archive)
State New, archived
Headers show

Commit Message

Olaf Hering April 18, 2018, 12:38 p.m. UTC
Since usage of g_realloc_n was introduced, glib-2.22 can not be used anymore.
Fixes commit 418026ca43 ("util: Introduce vfio helpers")

Signed-off-by: Olaf Hering <olaf@aepfle.de>
---
 configure | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Cornelia Huck April 18, 2018, 12:45 p.m. UTC | #1
On Wed, 18 Apr 2018 14:38:37 +0200
Olaf Hering <olaf@aepfle.de> wrote:

> Since usage of g_realloc_n was introduced, glib-2.22 can not be used anymore.
> Fixes commit 418026ca43 ("util: Introduce vfio helpers")
> 
> Signed-off-by: Olaf Hering <olaf@aepfle.de>
> ---
>  configure | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/configure b/configure
> index 6e9b994f21..81760ef45a 100755
> --- a/configure
> +++ b/configure
> @@ -3369,7 +3369,7 @@ fi
>  if test "$mingw32" = yes; then
>      glib_req_ver=2.30
>  else
> -    glib_req_ver=2.22
> +    glib_req_ver=2.24
>  fi
>  glib_modules=gthread-2.0
>  if test "$modules" = yes; then
> 

Are we ready to give up support for whatever distro is still on 2.22?
(If yes, can we bump to an even newer glib version?) Or should we
rather solve this by adding a g_realloc_n implementation for that case?
Daniel P. Berrangé April 18, 2018, 12:47 p.m. UTC | #2
On Wed, Apr 18, 2018 at 02:38:37PM +0200, Olaf Hering wrote:
> Since usage of g_realloc_n was introduced, glib-2.22 can not be used anymore.
> Fixes commit 418026ca43 ("util: Introduce vfio helpers")

Normally we expect ./include/glib-compat.h to be changed in this scenario
to add compat for the missing symbol.

IIRC, one of Peters desired build targets required 2.22, but I guess we
missed this bug because that platform would not enable vfio functionality ?



> 
> Signed-off-by: Olaf Hering <olaf@aepfle.de>
> ---
>  configure | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/configure b/configure
> index 6e9b994f21..81760ef45a 100755
> --- a/configure
> +++ b/configure
> @@ -3369,7 +3369,7 @@ fi
>  if test "$mingw32" = yes; then
>      glib_req_ver=2.30
>  else
> -    glib_req_ver=2.22
> +    glib_req_ver=2.24
>  fi



>  glib_modules=gthread-2.0
>  if test "$modules" = yes; then
> 

Regards,
Daniel
no-reply@patchew.org April 18, 2018, 12:53 p.m. UTC | #3
Hi,

This series failed docker-build@min-glib build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

Type: series
Message-id: 20180418123838.3511-1-olaf@aepfle.de
Subject: [Qemu-devel] [PATCH v1] configure: require glib-2.24

=== TEST SCRIPT BEGIN ===
#!/bin/bash
set -e
git submodule update --init dtc
# Let docker tests dump environment info
export SHOW_ENV=1
export J=8
time make docker-test-build@min-glib
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
2784234fbd configure: require glib-2.24

=== OUTPUT BEGIN ===
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-a8zl_nzx/src/dtc'...
Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42'
  BUILD   min-glib
make[1]: Entering directory '/var/tmp/patchew-tester-tmp-a8zl_nzx/src'
  GEN     /var/tmp/patchew-tester-tmp-a8zl_nzx/src/docker-src.2018-04-18-08.53.17.20057/qemu.tar
Cloning into '/var/tmp/patchew-tester-tmp-a8zl_nzx/src/docker-src.2018-04-18-08.53.17.20057/qemu.tar.vroot'...
done.
Your branch is up-to-date with 'origin/test'.
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-a8zl_nzx/src/docker-src.2018-04-18-08.53.17.20057/qemu.tar.vroot/dtc'...
Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42'
Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb'
Cloning into '/var/tmp/patchew-tester-tmp-a8zl_nzx/src/docker-src.2018-04-18-08.53.17.20057/qemu.tar.vroot/ui/keycodemapdb'...
Submodule path 'ui/keycodemapdb': checked out '6b3d716e2b6472eb7189d3220552280ef3d832ce'
  COPY    RUNNER
    RUN test-build in qemu:min-glib 
Environment variables:
HOSTNAME=c8dc3f36b746
MAKEFLAGS= -j8
J=8
CCACHE_DIR=/var/tmp/ccache
EXTRA_CONFIGURE_OPTS=
V=
SHOW_ENV=1
PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
TARGET_LIST=
SHLVL=1
HOME=/root
TEST_DIR=/tmp/qemu-test
FEATURES= dtc
DEBUG=
_=/usr/bin/env

Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/tmp/qemu-test/install

ERROR: glib-2.24 gthread-2.0 is required to compile QEMU

# QEMU configure log Wed Apr 18 12:53:36 UTC 2018
# Configured with: '/tmp/qemu-test/src/configure' '--enable-werror' '--target-list=x86_64-softmmu,aarch64-softmmu' '--prefix=/tmp/qemu-test/install'
#
cc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
cc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
config-temp/qemu-conf.c:2:2: error: #error __i386__ not defined
cc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
cc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
config-temp/qemu-conf.c:2:2: error: #error __ILP32__ not defined
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
cc -Werror -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc -Werror -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Werror -Werror=address-of-packed-member -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc1: error: -Werror=address-of-packed-member: No option -Waddress-of-packed-member
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Werror -Wstring-plus-int -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc1: error: unrecognized command line option "-Wstring-plus-int"
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Werror -Winitializer-overrides -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc1: error: unrecognized command line option "-Winitializer-overrides"
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Werror -Wexpansion-to-defined -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc1: error: unrecognized command line option "-Wexpansion-to-defined"
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Werror -Wendif-labels -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Werror -Wshift-negative-value -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc1: error: unrecognized command line option "-Wshift-negative-value"
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Werror -Wmissing-include-dirs -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Werror -Wempty-body -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Werror -Wnested-externs -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Werror -Wformat-security -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Werror -Wformat-y2k -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Werror -Winit-self -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Werror -Wignored-qualifiers -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Werror -Wold-style-declaration -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Werror -Wold-style-definition -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Werror -Wtype-limits -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -Werror -fstack-protector-strong -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
cc1: error: unrecognized command line option "-fstack-protector-strong"
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -Werror -fstack-protector-all -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -Werror -fstack-protector-all -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Werror -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
cc1: warnings being treated as errors
config-temp/qemu-conf.c:3: error: missing braces around initializer
config-temp/qemu-conf.c:3: error: (near initialization for 'x.a')
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -Werror -fno-gcse -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
config-temp/qemu-conf.c:4:2: error: #error No bug in this compiler.
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -Werror -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
cc -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -fPIE -DPIE -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g -pie
cc -Werror -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -fPIE -DPIE -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g -pie
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -pie -m64 -g -Wl,-z,relro -Wl,-z,now
cc -Werror -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -pie -m64 -g -Wl,-z,relro -Wl,-z,now
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -Werror -fno-pie -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -nopie
cc: unrecognized option '-nopie'
/usr/bin/ld: /tmp/ccJ7Gfdy.o: relocation R_X86_64_PC32 against undefined symbol `__stack_chk_fail@@GLIBC_2.4' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: ld returned 1 exit status
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
cc -Werror -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -Werror -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g
cc -Werror -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
cc -Werror -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lz
cc -Werror -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lz
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -llzo2
config-temp/qemu-conf.c:1:23: error: lzo/lzo1x.h: No such file or directory
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:2: warning: implicit declaration of function 'lzo_version'
config-temp/qemu-conf.c:2: warning: nested extern declaration of 'lzo_version'
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lsnappy
config-temp/qemu-conf.c:1:22: error: snappy-c.h: No such file or directory
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:2: warning: implicit declaration of function 'snappy_max_compressed_length'
config-temp/qemu-conf.c:2: warning: nested extern declaration of 'snappy_max_compressed_length'
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lbz2
config-temp/qemu-conf.c:1:19: error: bzlib.h: No such file or directory
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:2: warning: implicit declaration of function 'BZ2_bzlibVersion'
config-temp/qemu-conf.c:2: warning: nested extern declaration of 'BZ2_bzlibVersion'
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lxenstore -lxenctrl -lxenguest
config-temp/qemu-conf.c:1:21: error: xenctrl.h: No such file or directory
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
cc -Werror -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL -Wno-undef -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lSDL -lpthread
cc -Werror -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL -Wno-undef -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lSDL -lpthread
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL -Wno-undef -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lSDL -lpthread -lX11
cc -Werror -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL -Wno-undef -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lSDL -lpthread -lX11
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lrdmacm -libverbs -libumad
config-temp/qemu-conf.c:1:27: error: rdma/rdma_cma.h: No such file or directory
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lsasl2
config-temp/qemu-conf.c:1:23: error: sasl/sasl.h: No such file or directory
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:3: warning: implicit declaration of function 'sasl_server_init'
config-temp/qemu-conf.c:3: warning: nested extern declaration of 'sasl_server_init'
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -ljpeg
config-temp/qemu-conf.c:2:21: error: jpeglib.h: No such file or directory
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:3: error: storage size of 's' isn't known
config-temp/qemu-conf.c:3: warning: implicit declaration of function 'jpeg_create_compress'
config-temp/qemu-conf.c:3: warning: nested extern declaration of 'jpeg_create_compress'
config-temp/qemu-conf.c:3: warning: unused variable 's'
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lpng
config-temp/qemu-conf.c:2:17: error: png.h: No such file or directory
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:5: error: 'png_structp' undeclared (first use in this function)
config-temp/qemu-conf.c:5: error: (Each undeclared identifier is reported only once
config-temp/qemu-conf.c:5: error: for each function it appears in.)
config-temp/qemu-conf.c:5: error: expected ';' before 'png_ptr'
config-temp/qemu-conf.c:6: error: 'png_ptr' undeclared (first use in this function)
config-temp/qemu-conf.c:6: warning: implicit declaration of function 'png_create_write_struct'
config-temp/qemu-conf.c:6: warning: nested extern declaration of 'png_create_write_struct'
config-temp/qemu-conf.c:6: error: 'PNG_LIBPNG_VER_STRING' undeclared (first use in this function)
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g
cc -Werror -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g
config-temp/qemu-conf.c:2:21: error: xfs/xfs.h: No such file or directory
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:5: warning: implicit declaration of function 'xfsctl'
config-temp/qemu-conf.c:5: warning: nested extern declaration of 'xfsctl'
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lvdeplug
config-temp/qemu-conf.c:1:24: error: libvdeplug.h: No such file or directory
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:4: error: variable 'a' has initializer but incomplete type
config-temp/qemu-conf.c:4: warning: excess elements in struct initializer
config-temp/qemu-conf.c:4: warning: (near initialization for 'a')
config-temp/qemu-conf.c:4: warning: excess elements in struct initializer
config-temp/qemu-conf.c:4: warning: (near initialization for 'a')
config-temp/qemu-conf.c:4: warning: excess elements in struct initializer
config-temp/qemu-conf.c:4: warning: (near initialization for 'a')
config-temp/qemu-conf.c:4: error: storage size of 'a' isn't known
config-temp/qemu-conf.c:6: warning: implicit declaration of function 'vde_open'
config-temp/qemu-conf.c:6: warning: nested extern declaration of 'vde_open'
config-temp/qemu-conf.c:4: warning: unused variable 'a'
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lcap-ng
config-temp/qemu-conf.c:1:20: error: cap-ng.h: No such file or directory
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:4: warning: implicit declaration of function 'capng_capability_to_name'
config-temp/qemu-conf.c:4: warning: nested extern declaration of 'capng_capability_to_name'
config-temp/qemu-conf.c:4: error: 'CAPNG_EFFECTIVE' undeclared (first use in this function)
config-temp/qemu-conf.c:4: error: (Each undeclared identifier is reported only once
config-temp/qemu-conf.c:4: error: for each function it appears in.)
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lbrlapi
config-temp/qemu-conf.c:1:20: error: brlapi.h: No such file or directory
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:3: warning: implicit declaration of function 'brlapi__openConnection'
config-temp/qemu-conf.c:3: warning: nested extern declaration of 'brlapi__openConnection'
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -DNCURSES_WIDECHAR -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g
config-temp/qemu-conf.c:2:20: error: curses.h: No such file or directory
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:7: warning: implicit declaration of function 'resize_term'
config-temp/qemu-conf.c:7: warning: nested extern declaration of 'resize_term'
config-temp/qemu-conf.c:8: warning: implicit declaration of function 'addwstr'
config-temp/qemu-conf.c:8: warning: nested extern declaration of 'addwstr'
config-temp/qemu-conf.c:9: warning: implicit declaration of function 'addnwstr'
config-temp/qemu-conf.c:9: warning: nested extern declaration of 'addnwstr'
config-temp/qemu-conf.c:10: warning: implicit declaration of function 'add_wch'
config-temp/qemu-conf.c:10: warning: nested extern declaration of 'add_wch'
config-temp/qemu-conf.c:10: error: 'WACS_DEGREE' undeclared (first use in this function)
config-temp/qemu-conf.c:10: error: (Each undeclared identifier is reported only once
config-temp/qemu-conf.c:10: error: for each function it appears in.)
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -DNCURSES_WIDECHAR -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lncursesw
config-temp/qemu-conf.c:2:20: error: curses.h: No such file or directory
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:7: warning: implicit declaration of function 'resize_term'
config-temp/qemu-conf.c:7: warning: nested extern declaration of 'resize_term'
config-temp/qemu-conf.c:8: warning: implicit declaration of function 'addwstr'
config-temp/qemu-conf.c:8: warning: nested extern declaration of 'addwstr'
config-temp/qemu-conf.c:9: warning: implicit declaration of function 'addnwstr'
config-temp/qemu-conf.c:9: warning: nested extern declaration of 'addnwstr'
config-temp/qemu-conf.c:10: warning: implicit declaration of function 'add_wch'
config-temp/qemu-conf.c:10: warning: nested extern declaration of 'add_wch'
config-temp/qemu-conf.c:10: error: 'WACS_DEGREE' undeclared (first use in this function)
config-temp/qemu-conf.c:10: error: (Each undeclared identifier is reported only once
config-temp/qemu-conf.c:10: error: for each function it appears in.)
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -DNCURSES_WIDECHAR -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lcursesw
config-temp/qemu-conf.c:2:20: error: curses.h: No such file or directory
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:7: warning: implicit declaration of function 'resize_term'
config-temp/qemu-conf.c:7: warning: nested extern declaration of 'resize_term'
config-temp/qemu-conf.c:8: warning: implicit declaration of function 'addwstr'
config-temp/qemu-conf.c:8: warning: nested extern declaration of 'addwstr'
config-temp/qemu-conf.c:9: warning: implicit declaration of function 'addnwstr'
config-temp/qemu-conf.c:9: warning: nested extern declaration of 'addnwstr'
config-temp/qemu-conf.c:10: warning: implicit declaration of function 'add_wch'
config-temp/qemu-conf.c:10: warning: nested extern declaration of 'add_wch'
config-temp/qemu-conf.c:10: error: 'WACS_DEGREE' undeclared (first use in this function)
config-temp/qemu-conf.c:10: error: (Each undeclared identifier is reported only once
config-temp/qemu-conf.c:10: error: for each function it appears in.)
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -DNCURSES_WIDECHAR -I/usr/include/ncursesw -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g
config-temp/qemu-conf.c:2:20: error: curses.h: No such file or directory
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:7: warning: implicit declaration of function 'resize_term'
config-temp/qemu-conf.c:7: warning: nested extern declaration of 'resize_term'
config-temp/qemu-conf.c:8: warning: implicit declaration of function 'addwstr'
config-temp/qemu-conf.c:8: warning: nested extern declaration of 'addwstr'
config-temp/qemu-conf.c:9: warning: implicit declaration of function 'addnwstr'
config-temp/qemu-conf.c:9: warning: nested extern declaration of 'addnwstr'
config-temp/qemu-conf.c:10: warning: implicit declaration of function 'add_wch'
config-temp/qemu-conf.c:10: warning: nested extern declaration of 'add_wch'
config-temp/qemu-conf.c:10: error: 'WACS_DEGREE' undeclared (first use in this function)
config-temp/qemu-conf.c:10: error: (Each undeclared identifier is reported only once
config-temp/qemu-conf.c:10: error: for each function it appears in.)
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -DNCURSES_WIDECHAR -I/usr/include/ncursesw -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lncursesw
config-temp/qemu-conf.c:2:20: error: curses.h: No such file or directory
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:7: warning: implicit declaration of function 'resize_term'
config-temp/qemu-conf.c:7: warning: nested extern declaration of 'resize_term'
config-temp/qemu-conf.c:8: warning: implicit declaration of function 'addwstr'
config-temp/qemu-conf.c:8: warning: nested extern declaration of 'addwstr'
config-temp/qemu-conf.c:9: warning: implicit declaration of function 'addnwstr'
config-temp/qemu-conf.c:9: warning: nested extern declaration of 'addnwstr'
config-temp/qemu-conf.c:10: warning: implicit declaration of function 'add_wch'
config-temp/qemu-conf.c:10: warning: nested extern declaration of 'add_wch'
config-temp/qemu-conf.c:10: error: 'WACS_DEGREE' undeclared (first use in this function)
config-temp/qemu-conf.c:10: error: (Each undeclared identifier is reported only once
config-temp/qemu-conf.c:10: error: for each function it appears in.)
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -DNCURSES_WIDECHAR -I/usr/include/ncursesw -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g -lcursesw
config-temp/qemu-conf.c:2:20: error: curses.h: No such file or directory
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:7: warning: implicit declaration of function 'resize_term'
config-temp/qemu-conf.c:7: warning: nested extern declaration of 'resize_term'
config-temp/qemu-conf.c:8: warning: implicit declaration of function 'addwstr'
config-temp/qemu-conf.c:8: warning: nested extern declaration of 'addwstr'
config-temp/qemu-conf.c:9: warning: implicit declaration of function 'addnwstr'
config-temp/qemu-conf.c:9: warning: nested extern declaration of 'addnwstr'
config-temp/qemu-conf.c:10: warning: implicit declaration of function 'add_wch'
config-temp/qemu-conf.c:10: warning: nested extern declaration of 'add_wch'
config-temp/qemu-conf.c:10: error: 'WACS_DEGREE' undeclared (first use in this function)
config-temp/qemu-conf.c:10: error: (Each undeclared identifier is reported only once
config-temp/qemu-conf.c:10: error: for each function it appears in.)
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g
config-temp/qemu-conf.c:1:23: error: curl/curl.h: No such file or directory
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:2: warning: implicit declaration of function 'curl_easy_init'
config-temp/qemu-conf.c:2: warning: nested extern declaration of 'curl_easy_init'
config-temp/qemu-conf.c:2: warning: implicit declaration of function 'curl_multi_setopt'
config-temp/qemu-conf.c:2: warning: nested extern declaration of 'curl_multi_setopt'
cc -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -Wno-missing-braces -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g
config-temp/qemu-conf.c:1:33: error: bluetooth/bluetooth.h: No such file or directory
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:2: warning: implicit declaration of function 'bt_error'
config-temp/qemu-conf.c:2: warning: nested extern declaration of 'bt_error'
Failed to run 'configure'
Traceback (most recent call last):
  File "./tests/docker/docker.py", line 407, in <module>
    sys.exit(main())
  File "./tests/docker/docker.py", line 404, in main
    return args.cmdobj.run(args, argv)
  File "./tests/docker/docker.py", line 261, in run
    return Docker().run(argv, args.keep, quiet=args.quiet)
  File "./tests/docker/docker.py", line 229, in run
    quiet=quiet)
  File "./tests/docker/docker.py", line 147, in _do_check
    return subprocess.check_call(self._command + cmd, **kwargs)
  File "/usr/lib64/python2.7/subprocess.py", line 186, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['docker', 'run', '--label', 'com.qemu.instance.uuid=7fd05ecc430711e8a3fd52540069c830', '-u', '0', '--security-opt', 'seccomp=unconfined', '--rm', '--net=none', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=8', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/root/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-a8zl_nzx/src/docker-src.2018-04-18-08.53.17.20057:/var/tmp/qemu:z,ro', 'qemu:min-glib', '/var/tmp/qemu/run', 'test-build']' returned non-zero exit status 1
make[1]: *** [tests/docker/Makefile.include:129: docker-run] Error 1
make[1]: Leaving directory '/var/tmp/patchew-tester-tmp-a8zl_nzx/src'
make: *** [tests/docker/Makefile.include:163: docker-run-test-build@min-glib] Error 2

real	0m40.187s
user	0m4.058s
sys	0m3.666s
=== OUTPUT END ===

Test command exited with code: 2


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Daniel P. Berrangé April 18, 2018, 12:55 p.m. UTC | #4
On Wed, Apr 18, 2018 at 02:45:38PM +0200, Cornelia Huck wrote:
> On Wed, 18 Apr 2018 14:38:37 +0200
> Olaf Hering <olaf@aepfle.de> wrote:
> 
> > Since usage of g_realloc_n was introduced, glib-2.22 can not be used anymore.
> > Fixes commit 418026ca43 ("util: Introduce vfio helpers")
> > 
> > Signed-off-by: Olaf Hering <olaf@aepfle.de>
> > ---
> >  configure | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/configure b/configure
> > index 6e9b994f21..81760ef45a 100755
> > --- a/configure
> > +++ b/configure
> > @@ -3369,7 +3369,7 @@ fi
> >  if test "$mingw32" = yes; then
> >      glib_req_ver=2.30
> >  else
> > -    glib_req_ver=2.22
> > +    glib_req_ver=2.24
> >  fi
> >  glib_modules=gthread-2.0
> >  if test "$modules" = yes; then
> > 
> 
> Are we ready to give up support for whatever distro is still on 2.22?
> (If yes, can we bump to an even newer glib version?) Or should we
> rather solve this by adding a g_realloc_n implementation for that case?

Version 2.22 was released in Sep 2009, so coming up for 9 years old now.

At some point we should to declare that platforms shipping >= NNN year
old versions of software are not a desirable target for QEMU. What is
our desired NNN value - 9 years feels awfully long to me.

For libvirt we recently decided to become more aggressive[1] in culling old
distros as supportable targets, declaring we'll only support non-EOL
distros (for short life distros), or for long life distros (RHEL, LTS, etc)
the most recent version, and the recent minus-1 for 2 years overlap.

Should we formalize similar guidelines for QEMU to give developers a
guide for when it is reasonable to increase the min required version of
any 3rd party library ?  glib is a mandatory dep, but we've countless
other optional libraries we might wish to increase min versions for too,
and no guide on when it is reasonable todo so.

Regards,
Daniel

[1]   https://libvirt.org/platforms.html
Olaf Hering April 18, 2018, 1 p.m. UTC | #5
Am Wed, 18 Apr 2018 13:47:53 +0100
schrieb Daniel P. Berrangé <berrange@redhat.com>:

> IIRC, one of Peters desired build targets required 2.22, but I guess we
> missed this bug because that platform would not enable vfio functionality ?

Does the check in configure need a wrap "if Linux", just as the Makefile does?

Olaf
Olaf Hering April 18, 2018, 1:04 p.m. UTC | #6
Am Wed, 18 Apr 2018 05:53:58 -0700 (PDT)
schrieb no-reply@patchew.org:

> This series failed docker-build@min-glib build test.

I guess that test must be fixed either way because it does not test what it is supposed to test...

Olaf
Peter Maydell April 18, 2018, 1:29 p.m. UTC | #7
On 18 April 2018 at 13:47, Daniel P. Berrangé <berrange@redhat.com> wrote:
> On Wed, Apr 18, 2018 at 02:38:37PM +0200, Olaf Hering wrote:
>> Since usage of g_realloc_n was introduced, glib-2.22 can not be used anymore.
>> Fixes commit 418026ca43 ("util: Introduce vfio helpers")
>
> Normally we expect ./include/glib-compat.h to be changed in this scenario
> to add compat for the missing symbol.
>
> IIRC, one of Peters desired build targets required 2.22, but I guess we
> missed this bug because that platform would not enable vfio functionality ?

Yes, my OSX build system is on glib 2.22. It's using 'fink' for 3rd
party library installations, and they somehow seem to have got stuck
on 2.22. Looking at the website the project seems to have basically
stagnated, and I guess I need to move to homebrew at some point
(likely after we get 2.12 out the door). But for the moment this
patch would break my pullrequest testing builds.

thanks
-- PMM
Eric Blake April 18, 2018, 1:34 p.m. UTC | #8
On 04/18/2018 07:47 AM, Daniel P. Berrangé wrote:
> On Wed, Apr 18, 2018 at 02:38:37PM +0200, Olaf Hering wrote:
>> Since usage of g_realloc_n was introduced, glib-2.22 can not be used anymore.
>> Fixes commit 418026ca43 ("util: Introduce vfio helpers")
> 
> Normally we expect ./include/glib-compat.h to be changed in this scenario
> to add compat for the missing symbol.

Or rewrite the offending addition of g_realloc_n to use something like
g_renew that IS available in 2.22 (this is not the first time the issue
has appeared; see commit 071d405, for example).

> 
> IIRC, one of Peters desired build targets required 2.22, but I guess we
> missed this bug because that platform would not enable vfio functionality ?

Which platform?  CentOS 6 is at glib 2.28; we also require 2.30 for
building on mingw.  I'm not seeing an easy document that says which
distros we still actively support, and which culprit distro has the
oldest glib.
Cornelia Huck April 18, 2018, 2:41 p.m. UTC | #9
On Wed, 18 Apr 2018 13:55:45 +0100
Daniel P. Berrangé <berrange@redhat.com> wrote:

> On Wed, Apr 18, 2018 at 02:45:38PM +0200, Cornelia Huck wrote:
> > On Wed, 18 Apr 2018 14:38:37 +0200
> > Olaf Hering <olaf@aepfle.de> wrote:
> >   
> > > Since usage of g_realloc_n was introduced, glib-2.22 can not be used anymore.
> > > Fixes commit 418026ca43 ("util: Introduce vfio helpers")
> > > 
> > > Signed-off-by: Olaf Hering <olaf@aepfle.de>
> > > ---
> > >  configure | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/configure b/configure
> > > index 6e9b994f21..81760ef45a 100755
> > > --- a/configure
> > > +++ b/configure
> > > @@ -3369,7 +3369,7 @@ fi
> > >  if test "$mingw32" = yes; then
> > >      glib_req_ver=2.30
> > >  else
> > > -    glib_req_ver=2.22
> > > +    glib_req_ver=2.24
> > >  fi
> > >  glib_modules=gthread-2.0
> > >  if test "$modules" = yes; then
> > >   
> > 
> > Are we ready to give up support for whatever distro is still on 2.22?
> > (If yes, can we bump to an even newer glib version?) Or should we
> > rather solve this by adding a g_realloc_n implementation for that case?  
> 
> Version 2.22 was released in Sep 2009, so coming up for 9 years old now.
> 
> At some point we should to declare that platforms shipping >= NNN year
> old versions of software are not a desirable target for QEMU. What is
> our desired NNN value - 9 years feels awfully long to me.

The curse of the enterprise distro, I suppose... (And they might have
backported certain features without bumping the version number - I've
run into that problem in the past.)

> 
> For libvirt we recently decided to become more aggressive[1] in culling old
> distros as supportable targets, declaring we'll only support non-EOL
> distros (for short life distros), or for long life distros (RHEL, LTS, etc)
> the most recent version, and the recent minus-1 for 2 years overlap.

That does not seem unreasonable. What about things like the MacOS stuff
(like fink vs. homebrew, as Peter mentioned?) Other platforms?

> 
> Should we formalize similar guidelines for QEMU to give developers a
> guide for when it is reasonable to increase the min required version of
> any 3rd party library ?  glib is a mandatory dep, but we've countless
> other optional libraries we might wish to increase min versions for too,
> and no guide on when it is reasonable todo so.

If we decide on anything, we should definitely put it in writing :)
We've had this discussion way too often in the past...
Daniel P. Berrangé April 18, 2018, 2:43 p.m. UTC | #10
On Wed, Apr 18, 2018 at 04:41:39PM +0200, Cornelia Huck wrote:
> On Wed, 18 Apr 2018 13:55:45 +0100
> Daniel P. Berrangé <berrange@redhat.com> wrote:
> 
> > On Wed, Apr 18, 2018 at 02:45:38PM +0200, Cornelia Huck wrote:
> > > On Wed, 18 Apr 2018 14:38:37 +0200
> > > Olaf Hering <olaf@aepfle.de> wrote:
> > >   
> > > > Since usage of g_realloc_n was introduced, glib-2.22 can not be used anymore.
> > > > Fixes commit 418026ca43 ("util: Introduce vfio helpers")
> > > > 
> > > > Signed-off-by: Olaf Hering <olaf@aepfle.de>
> > > > ---
> > > >  configure | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > 
> > > > diff --git a/configure b/configure
> > > > index 6e9b994f21..81760ef45a 100755
> > > > --- a/configure
> > > > +++ b/configure
> > > > @@ -3369,7 +3369,7 @@ fi
> > > >  if test "$mingw32" = yes; then
> > > >      glib_req_ver=2.30
> > > >  else
> > > > -    glib_req_ver=2.22
> > > > +    glib_req_ver=2.24
> > > >  fi
> > > >  glib_modules=gthread-2.0
> > > >  if test "$modules" = yes; then
> > > >   
> > > 
> > > Are we ready to give up support for whatever distro is still on 2.22?
> > > (If yes, can we bump to an even newer glib version?) Or should we
> > > rather solve this by adding a g_realloc_n implementation for that case?  
> > 
> > Version 2.22 was released in Sep 2009, so coming up for 9 years old now.
> > 
> > At some point we should to declare that platforms shipping >= NNN year
> > old versions of software are not a desirable target for QEMU. What is
> > our desired NNN value - 9 years feels awfully long to me.
> 
> The curse of the enterprise distro, I suppose... (And they might have
> backported certain features without bumping the version number - I've
> run into that problem in the past.)
> 
> > 
> > For libvirt we recently decided to become more aggressive[1] in culling old
> > distros as supportable targets, declaring we'll only support non-EOL
> > distros (for short life distros), or for long life distros (RHEL, LTS, etc)
> > the most recent version, and the recent minus-1 for 2 years overlap.
> 
> That does not seem unreasonable. What about things like the MacOS stuff
> (like fink vs. homebrew, as Peter mentioned?) Other platforms?

For libvirt we will only support MacOS with whatever current homebrew
provides, and only support Windows via current mingw toolchain. If any
other scenario works it is just luck :-)


Regards,
Daniel
Daniel P. Berrangé April 18, 2018, 2:44 p.m. UTC | #11
On Wed, Apr 18, 2018 at 02:29:47PM +0100, Peter Maydell wrote:
> On 18 April 2018 at 13:47, Daniel P. Berrangé <berrange@redhat.com> wrote:
> > On Wed, Apr 18, 2018 at 02:38:37PM +0200, Olaf Hering wrote:
> >> Since usage of g_realloc_n was introduced, glib-2.22 can not be used anymore.
> >> Fixes commit 418026ca43 ("util: Introduce vfio helpers")
> >
> > Normally we expect ./include/glib-compat.h to be changed in this scenario
> > to add compat for the missing symbol.
> >
> > IIRC, one of Peters desired build targets required 2.22, but I guess we
> > missed this bug because that platform would not enable vfio functionality ?
> 
> Yes, my OSX build system is on glib 2.22. It's using 'fink' for 3rd
> party library installations, and they somehow seem to have got stuck
> on 2.22. Looking at the website the project seems to have basically
> stagnated, and I guess I need to move to homebrew at some point
> (likely after we get 2.12 out the door). But for the moment this
> patch would break my pullrequest testing builds.

Yeah that sounds reasonable as it would also align your build env with
what we are testing via travis too.

Regards,
Daniel
Olaf Hering April 18, 2018, 2:45 p.m. UTC | #12
Am Wed, 18 Apr 2018 14:45:38 +0200
schrieb Cornelia Huck <cohuck@redhat.com>:

> Are we ready to give up support for whatever distro is still on 2.22?

This is SLE11, in case it matters for this discussion.

Olaf
Markus Armbruster April 19, 2018, 7:19 a.m. UTC | #13
Daniel P. Berrangé <berrange@redhat.com> writes:

> On Wed, Apr 18, 2018 at 02:45:38PM +0200, Cornelia Huck wrote:
>
>> Are we ready to give up support for whatever distro is still on 2.22?
>> (If yes, can we bump to an even newer glib version?) Or should we
>> rather solve this by adding a g_realloc_n implementation for that case?
>
> Version 2.22 was released in Sep 2009, so coming up for 9 years old now.
>
> At some point we should to declare that platforms shipping >= NNN year
> old versions of software are not a desirable target for QEMU. What is
> our desired NNN value - 9 years feels awfully long to me.
>
> For libvirt we recently decided to become more aggressive[1] in culling old
> distros as supportable targets, declaring we'll only support non-EOL
> distros (for short life distros), or for long life distros (RHEL, LTS, etc)
> the most recent version, and the recent minus-1 for 2 years overlap.
>
> Should we formalize similar guidelines for QEMU to give developers a
> guide for when it is reasonable to increase the min required version of
> any 3rd party library ?  glib is a mandatory dep, but we've countless
> other optional libraries we might wish to increase min versions for too,
> and no guide on when it is reasonable todo so.

Yes, please.

>
> Regards,
> Daniel
>
> [1]   https://libvirt.org/platforms.html

This policy looks sensible to me
Olaf Hering April 19, 2018, 7:30 a.m. UTC | #14
Am Thu, 19 Apr 2018 09:19:28 +0200
schrieb Markus Armbruster <armbru@redhat.com>:

> > [1]   https://libvirt.org/platforms.html  
> This policy looks sensible to me

Unless I misinterpret that, noone cares about SLE11 anymore.
So, just wipe that single one developer system with glib-2.22 and move on.

Olaf
Daniel P. Berrangé April 19, 2018, 7:59 a.m. UTC | #15
On Thu, Apr 19, 2018 at 09:30:24AM +0200, Olaf Hering wrote:
> Am Thu, 19 Apr 2018 09:19:28 +0200
> schrieb Markus Armbruster <armbru@redhat.com>:
> 
> > > [1]   https://libvirt.org/platforms.html  
> > This policy looks sensible to me
> 
> Unless I misinterpret that, noone cares about SLE11 anymore.

I wouldn't say people don't care about SLE11 (or other similarly old distros
like RHEL-6). Rather the view in libvirt was that if a user is stuck on such
an old distro, they are likely doing that because they want the stability
inherant in running fixed software versions for years. IOW it is unlikely
that they want the stability of an old distro, combined with cutting edge
libvirt and/or QEMU.

Regards,
Daniel
Peter Maydell April 19, 2018, 8:54 a.m. UTC | #16
On 19 April 2018 at 08:59, Daniel P. Berrangé <berrange@redhat.com> wrote:
> I wouldn't say people don't care about SLE11 (or other similarly old distros
> like RHEL-6). Rather the view in libvirt was that if a user is stuck on such
> an old distro, they are likely doing that because they want the stability
> inherant in running fixed software versions for years. IOW it is unlikely
> that they want the stability of an old distro, combined with cutting edge
> libvirt and/or QEMU.

Well, it depends. You might be stuck with an old distro because
some software you want to run depends on it, but also want to run
newer versions of some programs like QEMU. If you're in that
boat you can probably live with having to also compile a newer
version of glib to go with your newer QEMU, though. I think the
policy as outlined in that libvirt page seems a good one (it's
basically a codification of what we've been doing already), with
a few tweaks -- I think we still believe we support some older
OSX releases, and would want to mention NetBSD/OpenBSD I guess.

thanks
-- PMM
Kamil Rytarowski April 19, 2018, 9:01 a.m. UTC | #17
On 19.04.2018 10:54, Peter Maydell wrote:
> On 19 April 2018 at 08:59, Daniel P. Berrangé <berrange@redhat.com> wrote:
>> I wouldn't say people don't care about SLE11 (or other similarly old distros
>> like RHEL-6). Rather the view in libvirt was that if a user is stuck on such
>> an old distro, they are likely doing that because they want the stability
>> inherant in running fixed software versions for years. IOW it is unlikely
>> that they want the stability of an old distro, combined with cutting edge
>> libvirt and/or QEMU.
> 
> Well, it depends. You might be stuck with an old distro because
> some software you want to run depends on it, but also want to run
> newer versions of some programs like QEMU. If you're in that
> boat you can probably live with having to also compile a newer
> version of glib to go with your newer QEMU, though. I think the
> policy as outlined in that libvirt page seems a good one (it's
> basically a codification of what we've been doing already), with
> a few tweaks -- I think we still believe we support some older
> OSX releases, and would want to mention NetBSD/OpenBSD I guess.
> 

In NetBSD we don't really support pkgsrc branches more than quarterly
and keep using usually the recent releases.

> thanks
> -- PMM
>
Gerd Hoffmann April 19, 2018, 9:20 a.m. UTC | #18
Hi,

> Well, it depends. You might be stuck with an old distro because
> some software you want to run depends on it, but also want to run
> newer versions of some programs like QEMU. If you're in that
> boat you can probably live with having to also compile a newer
> version of glib to go with your newer QEMU, though.

Core libraries like glib might not be that easy, I've seen updating glib
breaking apps in the past.

For stuff like spice where qemu and spice clients are pretty much the
only users it is alot more reasonable to say "well, just update
$dependency too if you want run cutting edge qemu."

cheers,
  Gerd
Daniel P. Berrangé April 19, 2018, 9:23 a.m. UTC | #19
On Thu, Apr 19, 2018 at 11:20:17AM +0200, Gerd Hoffmann wrote:
>   Hi,
> 
> > Well, it depends. You might be stuck with an old distro because
> > some software you want to run depends on it, but also want to run
> > newer versions of some programs like QEMU. If you're in that
> > boat you can probably live with having to also compile a newer
> > version of glib to go with your newer QEMU, though.
> 
> Core libraries like glib might not be that easy, I've seen updating glib
> breaking apps in the past.

You would likely just have to build it all into /opt/qemu so it is
isolated from whatever the distro included. 

Regards,
Daniel
Peter Maydell April 26, 2018, 8:17 a.m. UTC | #20
On 18 April 2018 at 15:44, Daniel P. Berrangé <berrange@redhat.com> wrote:
> On Wed, Apr 18, 2018 at 02:29:47PM +0100, Peter Maydell wrote:
>> Yes, my OSX build system is on glib 2.22. It's using 'fink' for 3rd
>> party library installations, and they somehow seem to have got stuck
>> on 2.22. Looking at the website the project seems to have basically
>> stagnated, and I guess I need to move to homebrew at some point
>> (likely after we get 2.12 out the door). But for the moment this
>> patch would break my pullrequest testing builds.
>
> Yeah that sounds reasonable as it would also align your build env with
> what we are testing via travis too.

I've now made the switch to homebrew, and so my OSX build tests
will be using glib 2.56. NB that this means that none of my merge
testing will catch "glib version too old" for our current setting
of "too old" -- I'm not sure what my current oldest version is in
the test machine set.

I've also upgraded Xcode, which means I now have a machine with
a clang that emits all the -Waddress-of-packed-member complaints.
I have configured the test build so those aren't fatal
(via --extra-cflags='-Werror -Wno-error=address-of-packed-member
-Wno-error=deprecated-declarations') but I'm now more interested in
getting those cleaned up so they don't clutter up my logfiles :-)

thanks
-- PMM
Thomas Huth April 26, 2018, 9:19 a.m. UTC | #21
On 26.04.2018 10:17, Peter Maydell wrote:
> On 18 April 2018 at 15:44, Daniel P. Berrangé <berrange@redhat.com> wrote:
>> On Wed, Apr 18, 2018 at 02:29:47PM +0100, Peter Maydell wrote:
>>> Yes, my OSX build system is on glib 2.22. It's using 'fink' for 3rd
>>> party library installations, and they somehow seem to have got stuck
>>> on 2.22. Looking at the website the project seems to have basically
>>> stagnated, and I guess I need to move to homebrew at some point
>>> (likely after we get 2.12 out the door). But for the moment this
>>> patch would break my pullrequest testing builds.
>>
>> Yeah that sounds reasonable as it would also align your build env with
>> what we are testing via travis too.
> 
> I've now made the switch to homebrew, and so my OSX build tests
> will be using glib 2.56. NB that this means that none of my merge
> testing will catch "glib version too old" for our current setting
> of "too old" -- I'm not sure what my current oldest version is in
> the test machine set.
> 
> I've also upgraded Xcode, which means I now have a machine with
> a clang that emits all the -Waddress-of-packed-member complaints.
> I have configured the test build so those aren't fatal
> (via --extra-cflags='-Werror -Wno-error=address-of-packed-member
> -Wno-error=deprecated-declarations') but I'm now more interested in
> getting those cleaned up so they don't clutter up my logfiles :-)

Isn't the -Wno-error=address-of-packed-members flag added by Gerd's
patch already? See:

https://git.qemu.org/?p=qemu.git;a=commitdiff;h=0e39c4aa7ecc5699bc391fcb

 Thomas
Peter Maydell April 26, 2018, 9:54 a.m. UTC | #22
On 26 April 2018 at 10:19, Thomas Huth <thuth@redhat.com> wrote:
> On 26.04.2018 10:17, Peter Maydell wrote:
>> I've also upgraded Xcode, which means I now have a machine with
>> a clang that emits all the -Waddress-of-packed-member complaints.
>> I have configured the test build so those aren't fatal
>> (via --extra-cflags='-Werror -Wno-error=address-of-packed-member
>> -Wno-error=deprecated-declarations') but I'm now more interested in
>> getting those cleaned up so they don't clutter up my logfiles :-)
>
> Isn't the -Wno-error=address-of-packed-members flag added by Gerd's
> patch already? See:
>
> https://git.qemu.org/?p=qemu.git;a=commitdiff;h=0e39c4aa7ecc5699bc391fcb

So it is -- I guess the compile failed because of the deprecation
warning, and I just assumed I needed to add both -Wno-error=
settings.

thanks
-- PMM
Paolo Bonzini April 26, 2018, 11:52 a.m. UTC | #23
On 26/04/2018 10:17, Peter Maydell wrote:
> I've now made the switch to homebrew, and so my OSX build tests
> will be using glib 2.56. NB that this means that none of my merge
> testing will catch "glib version too old" for our current setting
> of "too old" -- I'm not sure what my current oldest version is in
> the test machine set.

The min-glib Dockerfile is using glib 2.22 (on CentOS 6).  The CentOS 6
build is using 2.28.

Paolo
Olaf Hering April 26, 2018, 12:08 p.m. UTC | #24
Am Thu, 26 Apr 2018 13:52:04 +0200
schrieb Paolo Bonzini <pbonzini@redhat.com>:

> min-glib Dockerfile is using glib 2.22

Why did it not prevent the bad commit from entering 2.12?

Olaf
Daniel P. Berrangé April 26, 2018, 12:10 p.m. UTC | #25
On Thu, Apr 26, 2018 at 02:08:07PM +0200, Olaf Hering wrote:
> Am Thu, 26 Apr 2018 13:52:04 +0200
> schrieb Paolo Bonzini <pbonzini@redhat.com>:
> 
> > min-glib Dockerfile is using glib 2.22
> 
> Why did it not prevent the bad commit from entering 2.12?

Presumably the min-glib docker job didn't enable the vfio feature, which
is what contained the bad code.

Regards,
Daniel
Olaf Hering April 26, 2018, 12:11 p.m. UTC | #26
Am Thu, 26 Apr 2018 13:10:02 +0100
schrieb Daniel P. Berrangé <berrange@redhat.com>:

> Presumably the min-glib docker job didn't enable the vfio feature, which
> is what contained the bad code.

It is Linux=y, every following commit would have failed too.
I suggest to revisit that testcase.

Olaf
Peter Maydell April 26, 2018, 12:12 p.m. UTC | #27
On 26 April 2018 at 13:08, Olaf Hering <olaf@aepfle.de> wrote:
> Am Thu, 26 Apr 2018 13:52:04 +0200
> schrieb Paolo Bonzini <pbonzini@redhat.com>:
>
>> min-glib Dockerfile is using glib 2.22
>
> Why did it not prevent the bad commit from entering 2.12?

Most immediately, because I don't use that as part of
my per-merge testing.

thanks
-- PMM
Paolo Bonzini April 26, 2018, 12:39 p.m. UTC | #28
On 26/04/2018 14:11, Olaf Hering wrote:
> Am Thu, 26 Apr 2018 13:10:02 +0100
> schrieb Daniel P. Berrangé <berrange@redhat.com>:
> 
>> Presumably the min-glib docker job didn't enable the vfio feature, which
>> is what contained the bad code.
> 
> It is Linux=y, every following commit would have failed too.
> I suggest to revisit that testcase.

That's because Red Hat backported g_realloc_n into RHEL6 :) probably
because it's used for security reasons and they expected users to appear
in the next 10-ish years.

https://bugzilla.redhat.com/show_bug.cgi?id=573966

Thanks,

Paolo
Paolo Bonzini April 26, 2018, 12:42 p.m. UTC | #29
On 26/04/2018 14:39, Paolo Bonzini wrote:
> On 26/04/2018 14:11, Olaf Hering wrote:
>> Am Thu, 26 Apr 2018 13:10:02 +0100
>> schrieb Daniel P. Berrangé <berrange@redhat.com>:
>>
>>> Presumably the min-glib docker job didn't enable the vfio feature, which
>>> is what contained the bad code.
>>
>> It is Linux=y, every following commit would have failed too.
>> I suggest to revisit that testcase.
> 
> That's because Red Hat backported g_realloc_n into RHEL6 :) probably
> because it's used for security reasons and they expected users to appear
> in the next 10-ish years.
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=573966

Almost.  It's because the g_*alloc_n was introduced in order to fix
overflows in g_*new.  When Red Hat fixed the overflows, that implicitly
added those functions.

Paolo
Olaf Hering April 26, 2018, 12:42 p.m. UTC | #30
Am Thu, 26 Apr 2018 14:39:04 +0200
schrieb Paolo Bonzini <pbonzini@redhat.com>:

> On 26/04/2018 14:11, Olaf Hering wrote:
> > I suggest to revisit that testcase.  
> That's because Red Hat backported g_realloc_n into RHEL6 :)

So the testcase does not test what it is supposed to test.
Time for a SLE11 docker image.


Olaf
diff mbox

Patch

diff --git a/configure b/configure
index 6e9b994f21..81760ef45a 100755
--- a/configure
+++ b/configure
@@ -3369,7 +3369,7 @@  fi
 if test "$mingw32" = yes; then
     glib_req_ver=2.30
 else
-    glib_req_ver=2.22
+    glib_req_ver=2.24
 fi
 glib_modules=gthread-2.0
 if test "$modules" = yes; then