From: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxx> The current check to test if usbfs support should be compiled or not solely relies on the presence of <linux/usbdevice_fs.h>, without actually checking that all definition used by Qemu are provided by this header file. With sufficiently old kernel headers, <linux/usbdevice_fs.h> may be present, but some of the definitions needed by Qemu may not be available. This commit improves the check by building a small program that actually tests whether the necessary definitions are available. In addition, it fixes a bug where have_usbfs was set to "yes" regardless of the result of the test. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxx> Reviewed-by: Thomas Huth <thuth@xxxxxxxxxx> Message-Id: <20190213211827.20300-1-thomas.petazzoni@xxxxxxxxxxx> Signed-off-by: Laurent Vivier <laurent@xxxxxxxxx> --- configure | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/configure b/configure index c0f278141823..90b9e2fa3c05 100755 --- a/configure +++ b/configure @@ -4262,10 +4262,25 @@ fi # check for usbfs have_usbfs=no if test "$linux_user" = "yes"; then - if check_include linux/usbdevice_fs.h; then + cat > $TMPC << EOF +#include <linux/usbdevice_fs.h> + +#ifndef USBDEVFS_GET_CAPABILITIES +#error "USBDEVFS_GET_CAPABILITIES undefined" +#endif + +#ifndef USBDEVFS_DISCONNECT_CLAIM +#error "USBDEVFS_DISCONNECT_CLAIM undefined" +#endif + +int main(void) +{ + return 0; +} +EOF + if compile_prog "" ""; then have_usbfs=yes fi - have_usbfs=yes fi # check for fallocate -- 2.20.1