Source: qemu Version: 1:2.11+dfsg-1 Severity: important Tags: patch User: debian-gl...@lists.debian.org Usertags: 2.27
qemu 1:2.11+dfsg-1 fails to build with glibc 2.27 (2.27-0experimental0 from experimental): | cc -I/<<BUILDDIR>>/qemu-2.11+dfsg/qemu-build/util -Iutil -I/<<BUILDDIR>>/qemu-2.11+dfsg/tcg -I/<<BUILDDIR>>/qemu-2.11+dfsg/tcg/i386 -I/<<BUILDDIR>>/qemu-2.11+dfsg/linux-headers -I/<<BUILDDIR>>/qemu-2.11+dfsg/qemu-build/linux-headers -I. -I/<<BUILDDIR>>/qemu-2.11+dfsg -I/<<BUILDDIR>>/qemu-2.11+dfsg/accel/tcg -I/<<BUILDDIR>>/qemu-2.11+dfsg/include -I/usr/include/pixman-1 -DHAS_LIBSSH2_SFTP_FSYNC -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -DNCURSES_WIDECHAR -D_GNU_SOURCE -D_DEFAULT_SOURCE -I/usr/include/ncursesw -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 -g -O2 -fdebug-prefix-map=/<<BUILDDIR>>/qemu-2.11+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DCONFIG_QEMU_DATAPATH='"/usr/share/qemu:/usr/share/seabios:/usr/lib/ipxe/qemu"' -DVENDOR_DEBIAN -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -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-strong -I/usr/include/p11-kit-1 -I/usr/include/libpng16 -I/usr/include/spice-server -I/usr/include/spice-1 -I/<<BUILDDIR>>/qemu-2.11+dfsg/tests -I qga/qapi-generated -MMD -MP -MT util/memfd.o -MF util/memfd.d -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g -c -o util/memfd.o /<<BUILDDIR>>/qemu-2.11+dfsg/util/memfd.c [...] | /<<BUILDDIR>>/qemu-2.11+dfsg/util/memfd.c:40:12: error: static declaration of 'memfd_create' follows non-static declaration | static int memfd_create(const char *name, unsigned int flags) [...] | In file included from /usr/include/x86_64-linux-gnu/bits/mman-linux.h:115:0, | from /usr/include/x86_64-linux-gnu/bits/mman.h:45, | from /usr/include/x86_64-linux-gnu/sys/mman.h:41, | from /<<BUILDDIR>>/qemu-2.11+dfsg/include/sysemu/os-posix.h:29, | from /<<BUILDDIR>>/qemu-2.11+dfsg/include/qemu/osdep.h:104, | from /<<BUILDDIR>>/qemu-2.11+dfsg/util/memfd.c:28: | /usr/include/x86_64-linux-gnu/bits/mman-shared.h:46:5: note: previous declaration of 'memfd_create' was here | int memfd_create (const char *__name, unsigned int __flags) __THROW; | ^~~~~~~~~~~~ | /<<BUILDDIR>>/qemu-2.11+dfsg/rules.mak:66: recipe for target 'util/memfd.o' failed | make[1]: *** [util/memfd.o] Error 1 | make[1]: *** Waiting for unfinished jobs.... | make[1]: Leaving directory '/<<BUILDDIR>>/qemu-2.11+dfsg/qemu-build' | debian/rules:119: recipe for target 'build-stamp' failed | make: *** [build-stamp] Error 2 | dpkg-buildpackage: error: debian/rules build-arch subprocess returned exit status 2 | | A full build log is available there: | http://aws-logs.debian.net/2018/02/07/glibc-exp/qemu_2.11+dfsg-1_unstable_glibc-exp.log glibc 2.27 added support for memfd_create. Unfortunately qemu also has such a function to wrap the corresponding syscall. The configure script tries to detect that, but fail to do so due to a wrong test. This is fixed by the following upstream commit: https://git.qemu.org/?p=qemu.git;a=commit;h=75e5b70e6b5dcc4f2219992d7cffa462aa406af0