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

Reply via email to