Message ID | 20190213211827.20300-1-thomas.petazzoni@bootlin.com |
---|---|
State | New |
Headers | show |
Series | configure: improve usbfs check | expand |
On 2019-02-13 22:18, Thomas Petazzoni wrote: > 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@bootlin.com> > --- > configure | 19 +++++++++++++++++-- > 1 file changed, 17 insertions(+), 2 deletions(-) > > diff --git a/configure b/configure > index 3d89870d99..799c8e3b08 100755 > --- a/configure > +++ b/configure > @@ -4266,10 +4266,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 Reviewed-by: Thomas Huth <thuth@redhat.com>
On 14/02/2019 08:00, Thomas Huth wrote: > On 2019-02-13 22:18, Thomas Petazzoni wrote: >> 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@bootlin.com> >> --- >> configure | 19 +++++++++++++++++-- >> 1 file changed, 17 insertions(+), 2 deletions(-) >> >> diff --git a/configure b/configure >> index 3d89870d99..799c8e3b08 100755 >> --- a/configure >> +++ b/configure >> @@ -4266,10 +4266,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 > > Reviewed-by: Thomas Huth <thuth@redhat.com> > Applied to my trivial-patches branch. Thanks, Laurent
diff --git a/configure b/configure index 3d89870d99..799c8e3b08 100755 --- a/configure +++ b/configure @@ -4266,10 +4266,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
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@bootlin.com> --- configure | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-)