On 28 December 2016 at 16:10, Eric Blake <ebl...@redhat.com> wrote: > On 12/28/2016 08:53 AM, Christopher Covington wrote: >> The definition of the major() and minor() macros are moving within glibc to >> <sys/sysmacros.h>. Include this header to avoid the following sorts of >> build-stopping messages: >> > >> The additional include allows the build to complete on Fedora 26 (Rawhide) >> with glibc version 2.24.90. >> >> Signed-off-by: Christopher Covington <c...@codeaurora.org> >> --- >> include/sysemu/os-posix.h | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/include/sysemu/os-posix.h b/include/sysemu/os-posix.h >> index b0a6c0695b..772d58f7ed 100644 >> --- a/include/sysemu/os-posix.h >> +++ b/include/sysemu/os-posix.h >> @@ -28,6 +28,7 @@ >> >> #include <sys/mman.h> >> #include <sys/socket.h> >> +#include <sys/sysmacros.h> > > I repeat what I said on v1: > > Works for glibc; but <sys/sysmacros.h> is non-standard and not present > on some other systems, so this may fail to build elsewhere. You'll > probably need a configure probe. Autoconf also says that some platforms > have <sys/mkdev.h> instead of <sys/sysmacros.h> (per its AC_HEADER_MAJOR > macro).
Also this seems straightforwardly like a bug in glibc: it shouldn't be making this kind of breaking change. makedev(3) on my Linux box says nothing about needing sysmacros.h for these. thanks -- PMM