From: Christopher Covington Date: Wed, 28 Dec 2016 15:04:33 -0500 Subject: [Qemu-devel] [PATCH v3] build: include sys/sysmacros.h for major() and minor()a The definition of the major() and minor() macros are moving within glibc to . Include this header when it is available to avoid the following sorts of build-stopping messages: qga/commands-posix.c: In function ‘dev_major_minor’: qga/commands-posix.c:656:13: error: In the GNU C Library, "major" is defined by . For historical compatibility, it is currently defined by as well, but we plan to remove this soon. To use "major", include directly. If you did not intend to use a system-defined macro "major", you should undefine it after including . [-Werror] *devmajor = major(st.st_rdev); ^~~~~~~~~~~~~~~~~~~~~~~~~~ qga/commands-posix.c:657:13: error: In the GNU C Library, "minor" is defined by . For historical compatibility, it is currently defined by as well, but we plan to remove this soon. To use "minor", include directly. If you did not intend to use a system-defined macro "minor", you should undefine it after including . [-Werror] *devminor = minor(st.st_rdev); ^~~~~~~~~~~~~~~~~~~~~~~~~~ The additional include allows the build to complete on Fedora 26 (Rawhide) with glibc version 2.24.90. Signed-off-by: Christopher Covington Signed-off-by: Martin Jansa Upstream-Status: Submitted https://lists.gnu.org/archive/html/qemu-devel/2016-12/msg03548.html diff -uNr qemu-2.8.0.orig/configure qemu-2.8.0/configure --- qemu-2.8.0.orig/configure 2017-02-21 19:05:13.180094708 +0100 +++ qemu-2.8.0/configure 2017-02-21 19:08:53.114087084 +0100 @@ -4727,6 +4727,20 @@ then fi ########################################## +# check for sysmacros.h + +have_sysmacros=no +cat > $TMPC << EOF +#include +int main(void) { + return makedev(0, 0); +} +EOF +if compile_prog "" "" ; then + have_sysmacros=yes +fi + +########################################## # End of CC checks # After here, no more $cc or $ld runs diff -uNr qemu-2.8.0.orig/configure qemu-2.8.0/configure --- qemu-2.8.0.orig/configure 2017-02-21 19:05:13.180094708 +0100 +++ qemu-2.8.0/configure 2017-02-21 19:08:53.114087084 +0100 @@ -5695,6 +5709,10 @@ echo "CONFIG_AF_VSOCK=y" >> $config_host_mak fi +if test "$have_sysmacros" = "yes" ; then + echo "CONFIG_SYSMACROS=y" >> $config_host_mak +fi + # Hold two types of flag: # CONFIG_THREAD_SETNAME_BYTHREAD - we've got a way of setting the name on # a thread we have a handle to