Re: [Qemu-devel] [PATCH v3] build: include sys/sysmacros.h for major() and minor()
On 28 December 2016 at 21:04, Christopher Covingtonwrote: > 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 > --- Applied to master, thanks. -- PMM
Re: [Qemu-devel] [PATCH v3] build: include sys/sysmacros.h for major() and minor()
On 12/29/2016 08:03 AM, Eric Blake wrote: > 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 >> . > > Or more precisely, major() and minor() have ALWAYS been in > under glibc, but are now being removed from > . But your patch is the correct fix: if > 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 . For historical compatibility, it is ... >> The additional include allows the build to complete on Fedora 26 (Rawhide) >> with glibc version 2.24.90. >> >> Signed-off-by: Christopher Covington>> --- >> configure | 18 ++ >> include/sysemu/os-posix.h | 4 >> 2 files changed, 22 insertions(+) > > Reviewed-by: Eric Blake > Ping - can we get this applied to master to fix broken builds on rawhide? -- Eric Blake eblake redhat com+1-919-301-3266 Libvirt virtualization library http://libvirt.org signature.asc Description: OpenPGP digital signature
Re: [Qemu-devel] [PATCH v3] build: include sys/sysmacros.h for major() and minor()
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 > . Or more precisely, major() and minor() have ALWAYS been in under glibc, but are now being removed from . But your patch is the correct fix: if 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 . 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> --- > configure | 18 ++ > include/sysemu/os-posix.h | 4 > 2 files changed, 22 insertions(+) Reviewed-by: Eric Blake -- Eric Blake eblake redhat com+1-919-301-3266 Libvirt virtualization library http://libvirt.org signature.asc Description: OpenPGP digital signature
[Qemu-devel] [PATCH v3] build: include sys/sysmacros.h for major() and minor()
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--- configure | 18 ++ include/sysemu/os-posix.h | 4 2 files changed, 22 insertions(+) diff --git a/configure b/configure index 218df87d21..58a33c71ad 100755 --- a/configure +++ b/configure @@ -4746,6 +4746,20 @@ if test "$modules" = "yes" && test "$LD_REL_FLAGS" = ""; 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 @@ -5721,6 +5735,10 @@ if test "$have_af_vsock" = "yes" ; then 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 diff --git a/include/sysemu/os-posix.h b/include/sysemu/os-posix.h index b0a6c0695b..900bdcb45a 100644 --- a/include/sysemu/os-posix.h +++ b/include/sysemu/os-posix.h @@ -34,6 +34,10 @@ #include #include +#ifdef CONFIG_SYSMACROS +#include +#endif + void os_set_line_buffering(void); void os_set_proc_name(const char *s); void os_setup_signal_handling(void); -- Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc. Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.