build: include sys/sysmacros.h for major() and minor()
The definition of the major() and minor() macros are moving within glibc to <sys/sysmacros.h>. 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 <cov@codeaurora.org> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
5bac3c39c8
commit
4d04351f4c
18
configure
vendored
18
configure
vendored
@ -4710,6 +4710,20 @@ if test "$modules" = "yes" && test "$LD_REL_FLAGS" = ""; then
|
|||||||
feature_not_found "modules" "Cannot find how to build relocatable objects"
|
feature_not_found "modules" "Cannot find how to build relocatable objects"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# check for sysmacros.h
|
||||||
|
|
||||||
|
have_sysmacros=no
|
||||||
|
cat > $TMPC << EOF
|
||||||
|
#include <sys/sysmacros.h>
|
||||||
|
int main(void) {
|
||||||
|
return makedev(0, 0);
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
if compile_prog "" "" ; then
|
||||||
|
have_sysmacros=yes
|
||||||
|
fi
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
# End of CC checks
|
# End of CC checks
|
||||||
# After here, no more $cc or $ld runs
|
# After here, no more $cc or $ld runs
|
||||||
@ -5676,6 +5690,10 @@ if test "$have_af_vsock" = "yes" ; then
|
|||||||
echo "CONFIG_AF_VSOCK=y" >> $config_host_mak
|
echo "CONFIG_AF_VSOCK=y" >> $config_host_mak
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test "$have_sysmacros" = "yes" ; then
|
||||||
|
echo "CONFIG_SYSMACROS=y" >> $config_host_mak
|
||||||
|
fi
|
||||||
|
|
||||||
# Hold two types of flag:
|
# Hold two types of flag:
|
||||||
# CONFIG_THREAD_SETNAME_BYTHREAD - we've got a way of setting the name on
|
# CONFIG_THREAD_SETNAME_BYTHREAD - we've got a way of setting the name on
|
||||||
# a thread we have a handle to
|
# a thread we have a handle to
|
||||||
|
@ -34,6 +34,10 @@
|
|||||||
#include <netdb.h>
|
#include <netdb.h>
|
||||||
#include <sys/un.h>
|
#include <sys/un.h>
|
||||||
|
|
||||||
|
#ifdef CONFIG_SYSMACROS
|
||||||
|
#include <sys/sysmacros.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
void os_set_line_buffering(void);
|
void os_set_line_buffering(void);
|
||||||
void os_set_proc_name(const char *s);
|
void os_set_proc_name(const char *s);
|
||||||
void os_setup_signal_handling(void);
|
void os_setup_signal_handling(void);
|
||||||
|
Loading…
Reference in New Issue
Block a user