qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3] build: include sys/sysmacros.h for major() a


From: Eric Blake
Subject: Re: [Qemu-devel] [PATCH v3] build: include sys/sysmacros.h for major() and minor()
Date: Thu, 29 Dec 2016 08:03:41 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1

On 12/28/2016 02:04 PM, Christopher Covington wrote:

It's best when posting a v3 to do so as a new thread, rather than buried
in-reply-to an earlier thread, as some maintainers' tools overlook
deeply-threaded patches.  Probably won't matter too much in this case,
but it's useful information for future submissions; other tips can be
found here:
http://wiki.qemu.org/Contribute/SubmitAPatch


> The definition of the major() and minor() macros are moving within glibc to
> <sys/sysmacros.h>.

Or more precisely, major() and minor() have ALWAYS been in
<sys/sysmacros.h> under glibc, but are now being removed from
<sys/types.h>.  But your patch is the correct fix: if <sys/sysmacros.h>
exists, include it.

> 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 <sys/sysmacros.h>. For historical compatibility, it is
>  currently defined by <sys/types.h> as well, but we plan to
>  remove this soon. To use "major", include <sys/sysmacros.h>
>  directly. If you did not intend to use a system-defined macro
>  "major", you should undefine it after including <sys/types.h>. [-Werror]
>          *devmajor = major(st.st_rdev);
>              ^~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> qga/commands-posix.c:657:13: error: In the GNU C Library, "minor" is defined
>  by <sys/sysmacros.h>. For historical compatibility, it is
>  currently defined by <sys/types.h> as well, but we plan to
>  remove this soon. To use "minor", include <sys/sysmacros.h>
>  directly. If you did not intend to use a system-defined macro
>  "minor", you should undefine it after including <sys/types.h>. [-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 <address@hidden>
> ---
>  configure                 | 18 ++++++++++++++++++
>  include/sysemu/os-posix.h |  4 ++++
>  2 files changed, 22 insertions(+)

Reviewed-by: Eric Blake <address@hidden>

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]